centos7-nginx 日志手动或定时清理

一、手动清理nginx日志方式

mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log.bak  #重命名日志文件
mv /usr/local/nginx/logs/error.log /usr/local/nginx/logs/error.log.bak    #重命名日志文件
/usr/local/nginx/sbin/nginx -s reopen #重执行生成日志文件
rm -rf  /usr/local/nginx/logs/access.log.bak #删除旧文件
rm -rf  /usr/local/nginx/logs/error.log.bak  #删除旧文件

二、nginx日志定时清理方式

cd /usr/local/nginx/logs/
vim del_logs.sh
#写入下面内容
#!/bin/bash
# 先复制原来的错误日志文件,请根据自己实际的日志路径填写
cp /usr/local/nginx/logs/error.log /usr/local/nginx/logs/error-$(date -d "yesterday" +"%Y%m%d").log
# 清空错误日志文件
cat /dev/null > /usr/local/nginx/logs/error.log
# 先复制原来的访问日志
cp /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access-$(date -d "yesterday" +"%Y%m%d").log
# 清空原来的正常访问日志
cat /dev/null > /usr/local/nginx/logs/access.log
# 定期删除七天前的日志文件
find /usr/local/nginx/logs -mtime 7 -type f -name *.log | xargs rm -rf

添加可执行权限

chmod +x del_logs.sh

添加Linux计划任务

crontab -e

写入下面内容

#每天0点执行日志清理脚本
0 0 * * * /usr/local/nginx/logs/del_logs.sh

保存后退出。

重启crond服务

systemctl restart crond

查看调度计划
crontab -l

完成nginx日志按天拆分与定期清除。

原文地址:https://www.cnblogs.com/qiqiloved/p/13470328.html