Shell 脚本:清理系统日志文件
Shell 脚本:清理系统日志文件
该脚本的功能是清理系统日志文件,将 'messages' 文件中最后的 $lines 行保存到 'mesg.temp' 文件中,然后重命名 'mesg.temp' 为 'messages',同时清空 'wtmp' 文件。如果没有传入参数,则默认保留最后 50 行日志。脚本会检查当前用户是否为 root 用户,若不是则提示需要以 root 身份运行该脚本。同时,若进入日志目录失败,也会提示并退出脚本。
#!/bin/bash
LOG_DIR=/var/log
ROOT_UID=0
LINES=50
E_XCD=66
E_NOTROOT=67
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
cd $LOG_DIR
if [ `pwd` != '$LOG_DIR' ]
then
echo 'Can not change to $LOG_DIR.'
exit $E_XCD
fi
tail -$lines messages > mesg.temp
mv mesg.temp messages
cat /dev/null > wtmp
echo 'Logs cleaned up.'
exit 0
运行脚本:
test_shell_2
参数说明:
- 可选参数:
lines,用于指定要保留的日志行数,默认值为 50。
脚本功能:
- 检查用户权限:确保脚本以 root 身份运行。
- 进入日志目录:验证是否成功进入
/var/log目录。 - 清理日志:保留最近
lines行日志,并清空 'wtmp' 文件。
原文地址: https://www.cveoy.top/t/topic/mP6a 著作权归作者所有。请勿转载和采集!