August 2011
Beginner to intermediate
600 pages
14h 29m
English
logger
logger is a command-line tool that uses the syslog facility present on most Unix and Linux systems. This has a few benefits, one of which is that it allows a non-privileged shell script to write to log files owned by the superuser. It also means that the actual file that gets written to is determined by the system administrator, not the author of the script. This provides additional flexibility and customization.
$ cat checkfs.sh
#!/bin/bash
logger -t checkfs -p user.info "Starting checkfs"
df | cut -c52- | grep -v "Use%" | while read usage filesystem
do
if [ "${usage%\%}" -gt "85" ]; then
logger -t checkfs -s -p user.warn "Filesystem $filesystem is at $usage"
fi
done
logger -t checkfs -p user.info "Finished checkfs"
checkfs.sh
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda5 28G 27G 395M 99% / tmpfs 1.5G 0 1.5G 0% /lib/init/rw udev 1.5G 248K 1.5G 1% /dev tmpfs 1.5G 0 1.5G 0% /dev/shm /dev/sda3 56G 55G 1.8G 97% /iso /dev/sda6 134G 124G 3.3G 98% /home/steve $ ./checkfs.sh checkfs: Filesystem / is at 99% checkfs: Filesystem /iso is at 97% checkfs: Filesystem /home/steve is at 98% $
This results in the following log messages being added to the /var/log/messages file. Notice that although the script was run as an unprivileged ...