Excluding unmatched entries from logwatch

Let’s say you’ve got a logwatch report and the report throws 100’s of lines that aren’t really important, say ftp sessions opened by a application you know and have configured yourself.

Well the way to exclude these from the report is to edit the /etc/logwatch/conf/ignore.conf file!

Simply enter the matching string (i.e. IP address) in this file and the 100’s of lines will be history.

Simple

Detecting printer from (k)ubuntu

Debian and Windows Shared Printing mini-HOWTO
Ian Ward
2005-07-01
Revision History
Revision 1.6           2005-07-01            Revised by: iw
Clarified hpijs requirement, added lpinfo and lpoptions commands
Revision 1.5           2005-06-19            Revised by: iw
Added note about becoming root to execute commands
Revision 1.4           2004-01-05            Revised by: iw
Wording corrections
Revision 1.3           2003-11-18            Revised by: iw
Removed incorrect lpadmin -h usage
Revision 1.2           2003-10-03            Revised by: iw
Note about woody and gs-esp, conflict with bash's enable command and
fix for XP/2000 clients
Revision 1.1           2003-06-26            Revised by: iw
Added passwords on windows shared printers, Corrections
Revision 1.0           2003-05-15            Revised by: tmm
Initial release, reviewed by LDP
Revision 0.8           2003-04-11            Revised by: iw
converted from LaTeX
----------------------------------------------------------------------
Table of Contents
1. Introduction
2. Getting Started
2.1. Linux Printing Components
2.2. Required Packages
2.3. CUPS Local Printer Configuration
2.4. Linux Printing Basics
3. Printing To Windows PCs
3.1. Connecting To Windows
3.2. CUPS Configuration
4. Sharing Printers With Windows PCs
4.1. Sharing Basics
4.2. Samba Configuration
4.3. CUPS Configuration
5. Troubleshooting
5.1. Failing To Connect To Windows Printers
5.2. Other Failures
6. License
1. Introduction
Debian GNU/Linux ([http://www.debian.org] http://www.debian.org) is
the premier volunteer-supported Linux distribution. Unfortunately,
setting up printers in Debian can be difficult. Also, simple
step-by-step instructions for sharing printers between Windows and
Linux using the latest tools are hard to find. This HOWTO was written
to address both problems.
This HOWTO will demonstrate how to use command-line tools to configure
your Debian system for printing. It will explain how to send documents
from Linux to Windows printers and how to share Linux printers with
Windows PCs. Some troubleshooting examples are also given.
The primary url for this document is [http://excess.org/docs/
linux_windows_printing.html]  http://excess.org/docs/
linux_windows_printing.html. The source Docbook/XML and EPS files for
this document may be downloaded from [http://excess.org/docs/src/]
http://excess.org/docs/src/. Please forward bug reports, corrections
and suggestions regarding this document to ian at excess dot org.
--------------------------------------------------------------------
2. Getting Started
2.1. Linux Printing Components
The main components we will be using include:
*  CUPS
The Common UNIX Printing System ([http://www.cups.org] http://
www.cups.org) is a print spooler and a set of support programs for
using and administering printers.
*  Samba
Samba ([http://www.samba.org] http://www.samba.org) is software that
allows non-Windows computers to act like Windows computers on a
network by implementing Windows file and printer sharing protocols.
*  Printer Drivers
LinuxPrinting.org ([http://www.linuxprinting.org] http://
www.linuxprinting.org) offers the largest number of printer drivers
and maintains a database of printers supported under Linux. You must
download a printer driver for each model of printer you want to use in
Linux. A printer driver consists of a PPD file and a filter program,
or only a PPD file for PostScript printers.
---------------------------------------------------------------------
2.2. Required Packages
All of the required programs and libraries are part of the standard
Debian archive. You may download and install these packages with the
usual Debian packaging tools. The following is a list of packages you
need:
cupsys
CUPS server
cupsys-bsd
CUPS BSD commands
cupsys-client
CUPS client programs
foomatic-bin
LinuxPrinting.org printer support programs
samba
Samba SMB/CIFS server for UNIX
smbclient
Samba SMB/CIFS client for UNIX
gs-esp
ESP Ghostscript ([http://www.cups.org/ghostscript.php]  http://
www.cups.org/ghostscript.php)
Not available as a Debian GNU/Linux 3.0 (a.k.a. woody) package, use
"gs" instead.
a2ps
GNU A2PS ([http://www.gnu.org/software/a2ps/]  http://www.gnu.org/
software/a2ps/)
The following commands will install these packages. You will have to
become root or use sudo to execute these commands:
apt-get update
apt-get install cupsys cupsys-bsd cupsys-client foomatic-bin samba
smbclient gs-esp a2ps
Additional packages may be required for specific printers. For
example, the hpijs package must be installed for many HP InkJet,
DeskJet and LaserJet printers to function properly. The PPD files for
these printers are identified by the string hpijs in their filenames.
----------------------------------------------------------------------
2.3. CUPS Local Printer Configuration
The lpadmin command is used to configure printers. The following is an
example of setting up a laser printer with CUPS. You will have to
become root or use sudo to execute these commands:
/usr/sbin/lpadmin -p Laser -v parallel:/dev/lp0 -P /root/laser.ppd
/usr/bin/enable Laser
/usr/sbin/accept Laser
/usr/sbin/lpadmin -d Laser
Please note that bash has a builtin command called enable, so bash
users must use the full path (/usr/bin/enable) to enable printers.
The first command creates a new printer called "Laser" that is
connected to the first parallel port and is using the PPD file
/root/laser.ppd. "Laser" is then enabled and told to accept jobs with
the enable and accept commands. The last command sets "Laser" as the
default printer.
If your printer is connected to a USB port or if you do not know the
correct device-uri for your printer try running /usr/sbin/lpinfo -v
to get a list of available printer devices.
Make sure your printer's page size and other options are set correctly
by running /usr/bin/lpoptions -l. More detailed information about
printer configuration is available in the CUPS documentation.
----------------------------------------------------------------------
2.4. Linux Printing Basics
Figure 1. Printing Locally
[printing_basics]
Documents are spooled by using either lpr or lp followed by the file
name.
You may view the printer queue and check the printer status with the
command lpstat -o or lpstat -p. To cancel a print job use either
cancel or lprm followed by the job id.
The CUPS spooler daemon is called cupsd. It converts documents to
PostScript, then converts them to a format native to the printer
Figure 1.
Printers that do not understand PostScript use a rasterized, or
bitmap, format for documents. Rasterized formats can be much larger
than the original PostScript, and will take longer to send to the
printer.
Filters are programs used to convert documents from one format to
another.
The CUPS spooler will do its best to find a suitable filter for the
documents you send. If no filter suitable for converting your document
is installed you will receive an error similar to lpr: unable to print
file:
client-error-document-format-not-supported.
Many applications do not include filters for their documents formats.
Documents created with these applications can only be printed from
within the application itself, unless the document is exported to
PostScript or another standard format.
---------------------------------------------------------------------
3. Printing To Windows PCs
3.1. Connecting To Windows
Figure 2. Network Printing
[to_windows]
SMB and CIFS are the Windows file and printer sharing protocols. We
use Samba to speak to the Windows PCs using these protocols. Before
configuring CUPS we should make sure we can connect to the Windows PC
with smbclient, the Samba SMB/CIFS client Figure 2.
The following is an example of creating a connection to a Windows PC:
/usr/bin/smbclient -L rice -U fred
added interface ip=10.6.7.234 bcast=10.6.7.255 nmask=255.255.255.0
Got a positive name query response from 10.6.7.8 ( 10.6.7.8 )
Password: (not shown)
Sharename  Type  Comment
PRINTER$   Disk
INKJET     Printer
STUFF      Disk
IPC$       IPC    Remote Inter Process Communication
The command shown asks for a list of shares on a Windows PC named
"rice", with the user id "fred". The result shows a printer named
"INKJET".
If Windows naming service is unavailable you will need to specify the
IP address of the Windows PC with the -I switch as in:
/usr/bin/smbclient -I 10.6.7.8 -L rice -N
For more information see the Samba documentation about smbclient
usage.
---------------------------------------------------------------------
3.2. CUPS Configuration
Once you have found a Windows printer you may configure CUPS. First
verify that your installation of CUPS has the smb backend with the
following command:
ls -l /usr/lib/cups/backend/smb
If this file does not exist create it by issuing the following:
ln -s `which smbspool` /usr/lib/cups/backend/smb
The following is an example of setting up the printer shown above.
You will have to become root or use sudo to execute these commands:
/usr/sbin/lpadmin -p RicePrinter -v smb://fred:mypass@rice/INKJET  \\
-P /root/inkjet.ppd
/usr/bin/enable RicePrinter
/usr/sbin/accept RicePrinter
/usr/sbin/lpadmin -d RicePrinter
As mentioned above, bash has a builtin command called enable, so bash
users must use the full path (/usr/bin/enable) to enable printers.
The "lpadmin" command sets up a the shared Windows printer by giving
the username, password, netbios name and printer name as a single
parameter. See Section 2.3 for a further explanation of the commands
above.
Your printer is now ready to test. Send a file to the printer with the
lp command followed by a filename, or by printing a document from
within an application.
---------------------------------------------------------------------
4. Sharing Printers With Windows PCs
4.1. Sharing Basics
Figure 3. Printer Sharing
[from_windows]
Samba uses nmbd and smbd daemons to share files and printers with
Windows PCs. nmbd acts as a Windows naming service, broadcasting your
computer's name to Windows PCs on the LAN. smbd accepts file and
printer requests from Windows PCs Figure 3.
You will need to download and install Windows printer drivers for each
Linux printer you are sharing. Windows printer drivers can be found by
searching the web site of your printer manufacturer.
---------------------------------------------------------------------
4.2. Samba Configuration
If you are allowing anonymous access to your printer you will need to
create a user account for remote print jobs:
/usr/sbin/adduser --system --disabled-password smbprint
This command adds a user called "smbprint" to your system. Make sure
there is enough disk space in /home/smbprint, the "smbprint" user's
home directory, to spool files. Check that the "smbprint" user does
not have permission on your system to read or modify sensitive files
and directories. If you have configured CUPS to restrict printing to
certain users on your system, you must allow the "smbprint" user to
access printers you want to share.
The Samba configuration file is /etc/samba/smb.conf. The following is
an example configuration file set up to use CUPS with the "smbprint"
user:
[global]
printcap name = cups
printing = cups
security = share
[printers]
browseable = yes
printable = yes
public = yes
create mode = 0700
guest only = yes
use client driver = yes
guest account = smbprint
path = /home/smbprint
Please note that this configuration will allow printing by anyone that
can make a network connection to your computer and is not recommended
for computers on untrusted networks, such as computers with direct
Internet connections. If you need to implement access control, set
 security = user or security = domain and read the Samba man pages for
further information.

Once you have added the above settings to your Samba configuration
file you must restart Samba with the command:
/etc/init.d/samba restart
---------------------------------------------------------------------
4.3. CUPS Configuration
Windows printer drivers format their output for the printer before
sending it across the network. You must configure CUPS to accept the
pre-formatted output by uncommenting the following line from
/etc/cups/mime.convs:
application/octet-stream   application/vnd.cups-raw   0   -
Also uncomment the following line from /etc/cups/mime.types:
application/octet-stream
Now CUPS must be told to allow connections from other machines on the
network. Add these lines to /etc/cups/cupsd.conf:
AuthType None
Order Deny,Allow
Deny From None
Allow From All
As in the Samba configuration, this configuration allows any computer
to connect to your printers and is not recommended for computers on
untrusted networks. For information about tightening access control to
your printers, see the cupsd.conf man page and the CUPS documentation.
Finally, restart cups with the following command:
/etc/init.d/cupsys restart
Your Linux printers should now be shared to Windows PCs on the LAN.
Follow the usual steps for adding a network printer to your Windows
PCs, and remember to print a test page.
---------------------------------------------------------------------
5. Troubleshooting
5.1. Failing To Connect To Windows Printers
When smbspool, the smbclient utility CUPS uses, fails to connect
properly it emits error messages that are humorous but not very
helpful. One such message is Unable to connect to SAMBA host: Success.
Another sign of connection failures is when documents seem to get
stuck on the queue when printing to Windows printers.
View the most recent entries in the CUPS log with the following
command:
/usr/bin/tail /var/log/cups/error_log
If you see a message similar to cli_connect() failed... then smbspool
could not find the Windows PC you are trying to connect to. Check the
spelling of the Windows PC's host name. Check that the Windows PC is
turned on and that its network connection is functioning properly.
Make sure you can connect to it using smbclient as shown in Section
3.1.
If you see a message similar to SMB tree connect failed: ERRSRV -
ERRinvnetname then smbclient connected to the Windows PC but could not
connect to the printer you requested. Check the spelling of the shared
printer using smbclient as shown in Section 3.1.
----------------------------------------------------------------------
5.2. Other Failures
Other failures include being unable to print to a local printer and
having your print jobs disappear from the queue without being printed.
You may also see vague error messages such as Child process 2384
exited with status 32.
Increase CUPS' logging level to "debug" to see more messages about
what happened before the print job failed.
1.  Open the main CUPS configuration file /etc/cups/cupsd.conf in a
text editor.
2.  Change the line that reads "LogLevel warn" to "LogLevel debug".
3.  Save the configuration file and exit the text editor.
4. Restart the CUPS server with the command:
/etc/init.d/cupsys restart
You can follow the CUPS log with the following command:
/usr/bin/tail -f /var/log/cups/error_log
You should see a line that reads Scheduler shutting down due to
SIGTERM.
This indicates that the CUPS server was stopped successfully.
Send your print job again and watch for useful debug messages that
appear.
One example of a useful debug message is GNU Ghostscript 7.05: Can't
start ijs server 'hpijs'. In this case the solution is to install the
"hpijs" package.
If you cannot determine the cause of the failure, do an Internet
search for key terms in error messages you see; it is likely that
someone has solved your problem before. You may also try upgrading the
packages listed in Section 2.2 to their latest versions.
---------------------------------------------------------------------
6. License
Copyright © 2003 Ian Ward.
This manual is free software; you may redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This is distributed in the hope that it will be useful, but without
any warranty; without even the implied warranty of merchantability or
fitness for a particular purpose. See the GNU General Public License
for more details.
A copy of the GNU General Public License is available as /usr/share/
common-licenses/GPL in the Debian GNU/Linux distribution or on the
World Wide Web at http://www.gnu.org/copyleft/gpl.html. You can also
obtain it by writing to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307, USA.

HotSanic – Thumbnail generation problem

My new server has never been able to show the main HotSanic index page with thumbnails images, all I got was resized images. This problem had never happened on the old server.

I eventually gave up, then I really wanted to find out why I could not get these thumbnails, I had ImageMagick installed after all and the log files were not showing any errors, and no specific resources are available on the web about this problem.

After some investigating I found out the cause.

In the main HotSanic settings file, there is a CONVERTMETHOD variable.

The options available are explained above this variable.

My settings was CONVERTMETHOD=”HTML” all I had to do is change it to CONVERTMETHOD=”ImgMgck”

Simple.

After that I ran the makeindex.pl and convert.pl and presto, my thumbnails were there.

http://www.scothorse.net/HotSanic/

Backup strategy – off site backups

The various elements of the backup strategy having been defined and documented earlier, the last step involves the off site backup of the local backups.

This is done using the rsync command to mirror the entire content of the local backups directory as all backups are stored under this directory.

In case of disaster the off site backup could either be burned on a series of DVD’s and posted to the DC to have them restored or sent back to the dedicated server via ftp or other, this is where it is important to have a good backup server capable of coping well with large files.

If I were to rsync all the backup content on my own internal network backup server, this would be quite fast to pull, however ADSL push would need a serious amount of time to upload the content back, even though it is probably the safest way to keep data. And having over 500GB of available space it makes sense.

So I might very well do that as a disaster recovery option…

Have yet to decide. It’ll probably a combination of local network and other remote backup site…

Backup strategy – Websites

Each individual websites are now backed up within Plesk’s schedule once a week and stored on the local backups/dumps/* directory ( Note that this path has been linked from the default Plesk path to increase disk space)

All the sites have a rolling backup where 2 backups are kept, except for a few very large website generating several GigaBytes backups.

Backup strategy – Databases

The mysql database is backed up on a seven days rolling dump. these files are stored under the local backups/mysql directory.

In addition, the classifieds database is backed up weekly and stored for ever… Just in case we’re facing problem with past advertisers, legal challenges etc…

These backups are performed via a Plesk root scheduled cron and the Perl script invoked handles the database sanitation and backup on the fly. The Perl script is stored within the sharpnet private area so it’s self contained and will work out of the box in case of a restore…

AOL and emails not getting through

Okay, this problem always seems to happen every time I move to a new server, so if I document it I might actually get it sorted before it starts happening

My server cannot send emails to AOL. The problems comes from the fact that the IP address seen by AOL when receiving emails is apparently xxx.xxx.xxx.xxx (obfuscated to protect address, throughout this post)

I use the instructions from this URL:

http://postmaster.aol.com/Postmaster.Troubleshooting.html#vrfIP

and the email I get back from AOL using webmail on my dedi is:

Your connecting IP is: xxx.xxx.xxx.xxx

Please visit our web page at: http://postmaster.aol.com for more information about AOL Email Policies and methods to fix delivery issues.

Postmaster Group
America Online, Inc.

If I test this IP on this page:

http://postmaster.aol.com/cgi-bin/plugh/rdns.pl

I get an error

Here is the email I receive on my AOL email address (after several hours and having added the sender’s email address in my list of contacts, as AOL seems to tell to do that):

Return-Path:
Received: from mtain-mb03.r1000.mx.aol.com (mtain-mb03.r1000.mx.aol.com [1×2.x9.96.×3]) by air-mc04.mail.aol.com (v127_r1.1) with ESMTP id MAILINMC042-a9304b7dd0981d4; Thu, 18 Feb 2010 18:43:20 -0500
Received: from srv–.——-.co.uk (unknown [92.xx.69.187])
by mtain-mb03.r1000.mx.aol.com (Internet Inbound) with ESMTP id C6E7B3800009A
for ; Thu, 18 Feb 2010 18:43:04 -0500 (EST)
Received: (qmail 18299 invoked by uid 48); 18 Feb 2010 18:46:36 +0000
Received: from —–.gotadsl.co.uk (—–.gotadsl.co.uk
[213.xxx.112.119]) by webmail.pastelpals.co.uk (Horde MIME library) with
HTTP; Thu, 18 Feb 2010 18:46:36 +0000
Message-ID: <20100218184636.8cd1edr640og0gcg@webmail.pastelpals.co.uk>
Date: Thu, 18 Feb 2010 18:46:36 +0000
From: —–@—–.co.uk
To: —–@aol.com
Subject: TEST
MIME-Version: 1.0
Content-Type: text/plain;
charset=ISO-8859-1;
DelSp=”Yes”;
format=”flowed”
Content-Disposition: inline
Content-Transfer-Encoding: 7bit
User-Agent: Internet Messaging Program (IMP) H3 (4.1.6)
x-aol-sid: 3039ac1d60174b7dd0884a98
X-AOL-IP: 92.xx.69.187
X-Mailer: Unknown (No Version)
X-Length: 1203
X-UID: 24645412

As one can see, the IP AOL sees (92.xx.69.187) is not the IP of the sending Server (92.xx.68.118)

I have still got a ticket opened with the DC regarding this…

Tbc…

Backup strategy – Appliance

The First stage of the backup strategy is to have a full clean backup of the web server content, including emails.

This creates a rather large file (around 16GB), that take about 10 hours to be created, therefore you don’t want to do this every day. This file will be kept in addition of the monthly backups

The current plan is to have these dumped in the local /backups/full directory once a month and then rsync it to the backup server (I haven’t yet decided which one).

These backups are performed via a Plesk root scheduled cron and the Perl script invoked handles the database sanitation and backup on the fly. The Perl script is stored within the sharpnet private area so it’s self contained and will work out of the box in case of a restore…

Local plesk backups – change dump location

All Plesk “local” backups are stored in the following path:

/var/lib/psa/dumps

The problem resides in the fact that if the partition containing /var is small, this can create big problems. Luckily Plesk is happy with symlinks…

So in order to raise the space available for dumps, simply move the content of the dumps directory to the new location and create a symlink:

Commands:

cd /var/lib/psa
mv dumps /home/backups/
ln -s /home/backups/dumps dumps

This creates a symbolic link to the new dump path which has plenty of disk space.

Backups – the strategy

Hello me.

As the new Sharpnet strategy is being put in place. I will do the harduous task of documenting all the steps involved in the new backup strategy adopted to protect our asset (the server data).

After a few brainstorm followed by a few restful nights, I have arrived to the following strategy:-

  • Remove all unnecessary content from the websites hosted on the server
  • Backup the appliance (using pleskbackup)
  • FTP the content of every website monthly
  • Rsync the httpdocs of every website daily
  • Rsync the content of the most important databases, daily, on a sever days rolling backup
  • Backup the most important databases weekly and keep them for as long as possible.

This is the plan.

Watch this space…