linux自动清理日志脚本
时间: 2023-04-29 10:02:29 浏览: 521
Linux自动清理日志脚本可以使用crontab定时任务来实现。具体步骤如下:
1. 创建一个脚本文件,比如log_clean.sh,使用vi或其他编辑器打开。
2. 在脚本文件中添加以下代码:
#!/bin/bash
#定义日志文件路径
log_path=/var/log/
#定义需要清理的日志文件名
log_files="messages syslog"
#定义保留的日志文件数量
keep_num=5
#循环清理日志文件
for log_file in $log_files
do
#获取日志文件的绝对路径
file_path=${log_path}${log_file}
#判断日志文件是否存在
if [ -f $file_path ]
then
#获取日志文件数量
file_num=`ls -l $file_path* | wc -l`
#判断日志文件数量是否超过保留数量
if [ $file_num -gt $keep_num ]
then
#计算需要删除的日志文件数量
delete_num=`expr $file_num - $keep_num`
#循环删除日志文件
for ((i=1;i<=$delete_num;i++))
do
#获取最早的日志文件名
old_file=`ls -rt $file_path* | head -1`
#删除最早的日志文件
rm -f $old_file
done
fi
fi
done
3. 保存脚本文件并退出编辑器。
4. 给脚本文件添加执行权限,使用命令chmod +x log_clean.sh。
5. 使用crontab定时任务来定期执行脚本文件,比如每天凌晨3点执行。使用命令crontab -e打开定时任务编辑器,添加以下代码:
3 * * * /path/to/log_clean.sh
其中/path/to/log_clean.sh为脚本文件的绝对路径。
6. 保存定时任务并退出编辑器。
这样就可以实现每天定时清理指定的日志文件了。
阅读全文