鍍金池/ 問答/Linux/ nginx日志切割無效

nginx日志切割無效

日志切割是腳本是這么寫的:

#!/bin/bash
## 零點執(zhí)行該腳本
## Nginx 日志文件所在的目錄
LOGS_PATH=/home/aaa/logs
pid_path="/var/run/nginx.pid"
## 獲取昨天的 yyyy-MM-dd
#YESTERDAY=$(date -d ”yesterday” +%Y-%m-%d)
YESTERDAY=$(date -d last-day +%Y%m%d)
## 移動文件
mv ${LOGS_PATH}/aaa.access.log ${LOGS_PATH}/aaa.access.log_${YESTERDAY}.log
## 向 Nginx 主進程發(fā)送 USR1 信號。USR1 信號是重新打開日志文件
kill -USR1 `cat ${pid_path}`

這個腳本單獨執(zhí)行是可以的,但是放到crontab -e卻沒有自動按時執(zhí)行,crontab -e內容如下:

0 0 * * * /bin/bash /etc/nginx/mylogs/cut-log.sh


回答
編輯回答
憶往昔

crontab 執(zhí)行時會在/var/log/下生成名字為cron類似的日志,如果有錯,也會報出來,查一下有沒有錯誤

2017年3月26日 09:44
編輯回答
避風港

LOGS_PATH="/home/aaa/logs"

Shell腳本賦值時,如果是路徑,使用雙引號或者單引號!

2018年6月19日 21:01
編輯回答
醉淸風

可能是權限不夠。你是用什么用戶執(zhí)行 crontab -e 的?

另外你是如何判斷出沒有自動按時執(zhí)行的?為什么不可能是執(zhí)行了但是在移動文件的時候出錯了?

最后,建議使用 logrotate,省心省力。

2018年1月8日 14:36
編輯回答
情已空

同樣遇到這個問題,后來直接編輯/etc/crontab文件解決了

2017年11月4日 19:05
編輯回答
青檸

我都是用Linux的 logrotate 來處理的

2018年7月24日 15:08