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

脚本功能:

  1. 检查用户身份: 脚本首先检查当前用户是否为 root 用户,如果不是,则输出提示信息并退出脚本。
  2. 获取清空行数: 脚本接受一个可选参数,用于指定清空 messages 文件的行数。如果没有传入参数,则默认清空最近的 50 行。
  3. 清空日志文件: 脚本使用 tail 命令获取 messages 文件的最后 lines 行内容,并将其写入 mesg.temp 文件。然后使用 mv 命令将 mesg.temp 文件重命名为 messages 文件,从而清空 messages 文件中除最后 lines 行以外的所有内容。最后使用 cat /dev/null > wtmp 命令清空 wtmp 文件。
  4. 输出提示信息: 脚本在成功清空日志文件后,会输出 Logs cleaned up. 信息,并退出脚本。

使用方法:

  1. 以 root 用户身份运行脚本:
sudo ./test_shell_2
  1. 指定清空 messages 文件的行数:
sudo ./test_shell_2 100

该脚本可以用于定期清理系统日志文件,以节省磁盘空间并提高系统性能。

Linux Shell 脚本:清空系统日志文件 messages 和 wtmp

原文地址: https://www.cveoy.top/t/topic/mQoY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录