删除日志文件的经典脚本

2012年1月29日 由 edsionte 留言 »

本文所示的删除/var/log下日志文件脚本源于abs这本书,虽然实际功能只是简单的清空该目录下的messages文件,但是这个脚本具有广义性,可以作为其他脚本的模板。

#!/bin/bash

LOG_DIR=/var/log
ROOT_UID=0
LINES=50
E_XCD=66
E_NOTROOT=67

为了更好的移植性,事先定义几个变量。比如用LOG_DIR指定日志所在目录,E_开头的变量为不同的错误码。

if [ "$UID" -ne "$ROOT_UID" ]
then 
	echo "Must be root to run this script."
	exit $E_NOTROOT
fi

if [ -n "$1" ]
then 
	lines=$1
else
	lines=$LINES
fi

由于删除/var/log下的文件需要root身份,因此一开始先判断运行该脚本的用户是否为root。接着判断参数1是否为空,lines指定默认日志保留的行数。

cd $LOG_DIR

if [ `pwd` != "$LOG_DIR" ]
then
	echo "Can't change to $LOG_DIR."
	exit $E_XCD
fi

判断是否成功进入了LOG_DIR所代表的目录。上述代码的更有效率的表示方法为:

# cd /var/log || {
#   echo "Cannot change to necessary directory." >&2
#   exit $E_XCD;
# }

最后才是实质性的日志删除功能:

tail -$lines messages > mesg.temp
mv mesg.temp messages

exit 0

最后只保留messages文件中lines行日志。

该脚本的功能虽然简单,但是却拥有用户身份检查、参数检查等功能,对其他脚本而言是个很好的模板。

广告位

发表回复

windows 7 ultimate product key

windows 7 ultimate product key

winrar download free

winrar download free

winzip registration code

winzip registration code

winzip free download

winzip free download

winzip activation code

winzip activation code

windows 7 key generator

windows 7 key generator

winzip freeware

winzip freeware

winzip free download full version

winzip free download full version

free winrar download

free winrar download

free winrar

free winrar

windows 7 crack

windows 7 crack

windows xp product key

windows xp product key

windows 7 activation crack

windows7 activation crack

free winzip

free winzip

winrar free download

winrar free download

winrar free

winrar free

download winrar free

download winrar free

windows 7 product key

windows 7 product key