nginx日志轮转
1.原理
1)进入日志路径
cd /usr/local/nginx/logs
2)日志改名
mv access.log access.log.$(date +%Y%m%d-%H%M%S)
3)重新生成日志
/usr/local/nginx/sbin/nginx -s reopen
2.编写日志切片脚本,保存14个日志,多余删除
vi /etc/logrotate-custom/nginx-local
3.脚本内容
/usr/local/nginx/logs/access.log /usr/local/nginx/logs/error.log {
daily
rotate 14
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
pid="$(cat /usr/local/nginx/logs/nginx.pid 2>/dev/null)"
if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
kill -USR1 "$pid" || /usr/local/nginx/sbin/nginx -s reopen
else
/usr/local/nginx/sbin/nginx -s reopen
fi
endscript
}
4.模拟检查配置
logrotate -d /etc/logrotate-custom/nginx-local
5.手动执行切割
logrotate -vf /etc/logrotate-custom/nginx-local
6.检查切割日志文件
ls -lh /usr/local/nginx/logs/
7.创建定时器任务
方案一,系统级定时器,指定用户,推荐
1)编写logrotate轮转配置
vi /etc/cron.d/nginx-logrotate
2)定时器任务内容,每天8:00执行,输入详细信息,每次执行前清空并覆盖原日志
0 8 * * * root /usr/sbin/logrotate -v /etc/logrotate-custom/nginx-local > /var/log/nginx-logrotate.log 2>&1
3)确认路径
command -v logrotate
4)设置权限
chmod 644 /etc/cron.d/nginx-logrotate
5)定时器状态
cat /var/lib/logrotate/logrotate.status
6)定时器日志
tail -n 100 /var/log/nginx-logrotate.log
方案二,用户级别定时器
1)查询定时任务
crontab -l
2)编写定时任务
crontab -e
3)定时任务内容
0 8 * * * /usr/sbin/logrotate -v /etc/logrotate-custom/nginx-local >/var/log/nginx-logrotate.log 2>&1
4)定时器状态
cat /var/lib/logrotate/logrotate.status
5)定时器日志
tail -n 100 /var/log/nginx-logrotate.log
浙公网安备 33010602011771号