#!/bin/bash
# Generates a log file in current directory
# from the tail end of /var/log/messages.
# Note: /var/log/messages must be world readable
# if this script invoked by an ordinary user.
# #root chmod 644 /var/log/messages
LINES=5
( date; uname -a ) >>logfile
# Time and machine name
echo ---------------------------------------------------------- >>logfile
tail -n $LINES /var/log/messages | xargs | fmt -s >>logfile
echo >>logfile
echo >>logfile
exit 0
# Note:
# ----
# As Frank Wang points out,
#+ unmatched quotes (either single or double quotes) in the source file
#+ may give xargs indigestion.
#
# He suggests the following substitution for line 15:
# tail -n $LINES /var/log/messages | tr -d "\"'" | xargs | fmt -s >>logfile
# Exercise:
# --------
# Modify this script to track changes in /var/log/messages at intervals
#+ of 20 minutes.
# Hint: Use the "watch" command.
[root@localhost shell]# ./ex41.sh
[root@localhost shell]# cat logfile
2012年 10月 30日 星期二 20:34:40 CST
Linux localhost.localdomain 2.6.25-14.fc9.i686 #1 SMP Thu May 1 06:28:41 EDT 2008 i686 i686 i386 GNU/Linux
----------------------------------------------------------
Oct 30 10:22:18 localhost tpvmlpd[2223]: aborting Oct 30 10:24:10
localhost kernel: VMCIUtil: Updating context id from 0xc65b48c5 to
0xc65b48c5 on event 0. Oct 30 11:04:40 localhost kernel: VMCIUtil:
Updating context id from 0xc65b48c5 to 0xc65b48c5 on event 0. Oct 30
12:33:29 localhost kernel: VMCIUtil: Updating context id from 0xc65b48c5
to 0xc65b48c5 on event 0. Oct 30 16:13:34 localhost kernel: VMCIUtil:
Updating context id from 0xc65b48c5 to 0xc65b48c5 on