定时任务执行分割脚本
脚本准备
# 写入脚本
[root@Nginx scripts]# cat > /root/scripts/cut_nginxlog.sh << 'EOF'
> #!/bin/bash
>
> # 需要切割日志所在的目录
> LOGS_PATH=/usr/local/nginx/logs
>
> # 获取当前服务器时间
> YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
>
> # 需要切割的日志
> mv ${LOGS_PATH}/api.moneyway.in.log ${LOGS_PATH}/api.moneyway.in_${YESTERDAY}.log
> mv ${LOGS_PATH}/sdk.moneyway.log ${LOGS_PATH}/sdk.moneyway_${YESTERDAY}.log
>
> # 通知Nginx生成新的日志
> kill -USR1 `ps aux | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
> EOF
# 添加权限
[root@Nginx scripts]# chmod +x cut_nginxlog.sh
[root@Nginx scripts]# ll cut_nginxlog.sh
-rwxr-xr-x. 1 root root 456 9月 4 15:17 cut_nginxlog.sh
添加定时任务
# crontab -e 写入下面内容:
0 0 * * * /root/scripts/cut_nginxlog.sh >/dev/null 2>&1
# crontab -l可以查看所有的定时任务
[root@Nginx scripts]# crontab -l
0 0 * * * /root/scripts/cut_nginxlog.sh >/dev/null 2>&1
# 这样每天的23点59就会将当天的日志进行备份,并生成新的日志文件继续记录访问日志
测试
# 手动执行脚本进行测试
[root@Nginx scripts]# /root/scripts/cut_nginxlog.sh
# 查看日志是否分割
[root@Nginx logs]# pwd
/usr/local/nginx/logs
[root@Nginx logs]# ll *moneyway*
-rw-r--r--. 1 root root 4186304361 9月 4 15:38 api.moneyway.in_2024-09-03.log
-rw-r--r--. 1 root root 17434 9月 4 15:39 api.moneyway.in.log
-rw-r--r--. 1 root root 1103019841 9月 4 15:38 sdk.moneyway_2024-09-03.log
-rw-r--r--. 1 root root 324 9月 4 15:38 sdk.moneyway.log
# 如上已经成功