脚本
/www/server/logrotate.sh
#!/bin/bash
## 零点执行该脚本
## Nginx 日志文件所在的目录
LOGS_PATH="/www/log/nginx"
mkdir -p ${LOGS_PATH}/backup/
mv ${LOGS_PATH}/api.einsition.com-access.log ${LOGS_PATH}/backup/api.einsition.com-access_$(date -d "yesterday" +"%Y%m%d").log
mv ${LOGS_PATH}/api.einsition.com-error.log ${LOGS_PATH}/backup/api.einsition.com-error_$(date -d "yesterday" +"%Y%m%d").log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
# nginx_pid=`ps -ef |grep -v grep |grep "nginx: master process"|awk -F" " '{print $2}'`
# kill -USR1 $nginx_pid
kill -USR1 $(cat /run/nginx.pid)
cd ${LOGS_PATH}/backup/
find . -name "*.einsition.com*.log" -type f -mtime +7 -exec rm -f {} \;
crontab
systemd.timer
1、创建 /www/server/logrotate.timer 文件
[Unit]
Description=Daily Log Rotation Timer
[Timer]
OnCalendar=daily
AccuracySec=1h
Persistent=true
[Install]
WantedBy=timers.target
2、创建 /www/server/logrotate.service 文件
[Unit]
Description=Daily Log Rotation Service
[Service]
Type=oneshot
ExecStart=/www/server/logrotate.sh
3、将 /www/server/logrotate.timer 和 /www/server/logrotate.service 软连接到 /etc/systemd/system/ 目录
ln -sf /www/server/logrotate.timer /etc/systemd/system/logrotate.timer
ln -sf /www/server/logrotate.service /etc/systemd/system/logrotate.service
4、启用并启动定时器
4
0 评论
暂无数据