豆豆原创代码分享:
适用于AMH面板的日志分割代码
1、登录SSH工具,创建cut_logs.sh文件,命令:
vi /root/cut_logs.sh
2、粘贴下面代码到cut_logs.sh,并保存
#!/bin/bash
#function:cut nginx log files shell
#日志路径,lnmp根据自己的环境命名修改
log_files_path="/home/wwwroot/lnmp/logs/"
#下面不用动
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
#原日志命名,比如hao123.log,就填hao123
log_files_name=(hao123 access)
#下面nginx-generic-1.6,根据自己的版本修改
nginx_sbin="/usr/local/nginx-generic-1.6/sbin/nginx"
#保留30天日志,30天之前的清空
save_days=30
mkdir -p $log_files_dir
log_files_num=${#log_files_name[@]}
#cut nginx log files
for((i=0;i<$log_files_num;i++));do
mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log
done
#delete 30 days ago nginx log files
find $log_files_path -mtime +$save_days -exec rm -rf {} \;
#下面nginx-generic-1.6,根据自己的版本修改
kill -USR1 $(cat /usr/local/nginx-generic-1.6/logs/nginx.pid)
3、为这个脚本加执行权限,命令:
chmod +x /root/cut_logs.sh
4、crontab -e 添加执行时间
00 00 * * * /bin/bash /root/cut_logs.sh ,添加好保存。
意思是,每天凌晨零点执行脚本,分割日志,前一天的将会移动到另一个文件夹重新命名。
crontab -l 可以查看定时任务。
这样就可以了。
网友评论