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。

脚本功能:

  1. 检查用户权限:确保脚本以 root 身份运行。
  2. 进入日志目录:验证是否成功进入 /var/log 目录。
  3. 清理日志:保留最近 lines 行日志,并清空 'wtmp' 文件。
Shell 脚本:清理系统日志文件

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

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