vi一个sh脚本,内容如下,执行即可:
-----------------------------------------------------------------------------------------
#!/bin/bash
# 设置要删除的日志文件路径和文件名
LOG_PATH=/var/log/
LOG_FILE=messages
# 设置要保留的最新日志文件数目
NUM_TO_KEEP=5
cd ${LOG_PATH}
# 获取当前时间戳
CURRENT_DATE=$(date +%Y-%m-%d_%H-%M-%S)
# 检查日志文件是否存在
if [ ! -f "${LOG_FILE}" ]; then
echo "日志文件不存在:${LOG_PATH}${LOG_FILE}"
exit 1
fi
# 备份日志文件
cp ${LOG_FILE} ${LOG_FILE}_${CURRENT_DATE}
# 清空原始日志文件
#cat /dev/null > ${LOG_FILE}
chattr -a ${LOG_FILE}
cat >${LOG_FILE}< /dev/null
chattr +a ${LOG_FILE}
# 获取需要保留的最新日志文件列表
ls -1t ${LOG_FILE}_* | tail -n +${NUM_TO_KEEP} | xargs -d '\n' rm -f
echo "执行成功!"
因篇幅问题不能全部显示,请点此查看更多更全内容