记录一些常用的函数和瞎折腾的过程……

Linux下用定时任务自动切割Nginx日志

下面是自动切割的脚本文件,将其复制保存为cut_nginx_logs.sh,然后上传到服务器的/root/目录下。

#设置nginx日志文件目录路径
log_files_path=”/home/wwwlogs/”
#日志文件将会存放到/home/wwwlogs/年/月/日志文件名_年月日.log
log_files_dir=${log_files_path}$(date -d “yesterday” +”%Y”)/$(date -d “yesterday” +”%m”)
#设置要切割的日志的名字,如果日志目录下面的日志文件名为accesst.log和error.log,则填写access error,每个日志名用空格分隔
log_files_name=(access error)
#设置nginx文件的位置
nginx_sbin=”/usr/local/nginx/sbin/nginx”
#设置日志保存的时间,天
save_days=30
#执行脚本开始
mkdir -p $log_files_dir
log_files_num=${#log_files_name[@]}
#切割日志文件
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
#删除30天以前的日志
find $log_files_path -mtime +$save_days -exec rm -rf {} \;
$nginx_sbin -s reload

将上述内容复制保存为cut_nginx_logs.sh后,上传到/root/,再添加自动执行。

执行:

crontab -e

输入:

00 00 * * * /bin/bash /root/cut_nginx_logs.sh

这样每天0点整就开始自动切割脚本了。没有安装crontab的话,请参阅《Linux使用Crontab定时执行指定任务》一文。

《Linux下用定时任务自动切割Nginx日志》一条评论
  1. “你疯了?”祁素素不可思议的看着陆凡,“苏阳只是你学长,又不是你亲爹,你犯得着为他这样拼命?”

    澳门新葡京pj678.com 回复
发表评论