centos7-nginx 日志清理
1、首先创建脚本文件clear_log.sh
cd /usr/local/nginx/sbin
vi clear_log.sh
输入如下内容
#!/bin/bash
#日期参数
date= `date -d "yesterday" +"%Y%m%d"`
# 创建带有日期的日志文件夹
mkdir /usr/local/nginx/logs/log-${date}
# 先复制原来的错误日志文件,请根据自己实际的日志路径填写
cp /usr/local/nginx/logs/error.log /usr/local/nginx/logs/log-${date}/error-${date}.log
# 清空错误日志文件
cat /dev/null > /usr/local/nginx/logs/error.log
# 先复制原来的访问日志
cp /usr/local/nginx/logs/access.log /usr/local/nginx/logs/log-${date}/access-${date}.log
# 清空原来的正常访问日志
cat /dev/null > /usr/local/nginx/logs/access.log
# 定期删除七天前的日志文件
#find /usr/local/nginx/logs -mtime 7 -type f -name \*.log | xargs rm -f
# 定期删除七天前的日志文件夹
find /usr/local/nginx/logs -mtime 7 -type d -name "log-*" | xargs rm -rf
2、添加可执行权限
sudo chmod +x clear_log.sh
3、添加Linux计划任务
crontab -e
4、输入如下内容
#每天0点执行日志清理脚本
0 0 * * * /usr/local/nginx/sbin/clear_log.sh
保存后退出,输入以下命令查看调度计划
crontab -l
至此完成nginx日志按天拆分与定期清除。
注意:若定时任务未执行,检查crond任务是否正常:service crond status
重启下定时任务:
方式一:service crond stop、service crond start
方式二:service crond restart