Linux Shell 脚本:清空系统日志文件 messages 和 wtmp
Linux Shell 脚本:清空系统日志文件 messages 和 wtmp
这是一个简单的 Linux Shell 脚本,用于清空系统日志文件 /var/log/messages 和 /var/log/wtmp。脚本需要以 root 用户身份运行,并可以自定义清空 messages 文件的行数。
脚本代码:
#!/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
脚本功能:
- 检查用户身份: 脚本首先检查当前用户是否为 root 用户,如果不是,则输出提示信息并退出脚本。
- 获取清空行数: 脚本接受一个可选参数,用于指定清空
messages文件的行数。如果没有传入参数,则默认清空最近的 50 行。 - 清空日志文件: 脚本使用
tail命令获取messages文件的最后lines行内容,并将其写入mesg.temp文件。然后使用mv命令将mesg.temp文件重命名为messages文件,从而清空messages文件中除最后lines行以外的所有内容。最后使用cat /dev/null > wtmp命令清空wtmp文件。 - 输出提示信息: 脚本在成功清空日志文件后,会输出
Logs cleaned up.信息,并退出脚本。
使用方法:
- 以 root 用户身份运行脚本:
sudo ./test_shell_2
- 指定清空
messages文件的行数:
sudo ./test_shell_2 100
该脚本可以用于定期清理系统日志文件,以节省磁盘空间并提高系统性能。
原文地址: https://www.cveoy.top/t/topic/mQoY 著作权归作者所有。请勿转载和采集!