英語のレベルが低くてごめんなさい
私のステージングサーバーで
毎日logrotateしたい(nginx)
そこでlogrotateファイルを作成します/etc/logrotate.d/
ログローテート
/var/log/nginx/*log {
create 0644 nginx nginx
daily
rotate 30
missingok
notifempty
nocompress
dateext
dateformat -%Y%m%d
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
そしてlogrotateファイルを挿入しますcron.daily
ログローテーション
#!/bin/sh
/usr/sbin/logrotate -f /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with
[$EXITVALUE]"
fi
exit 0
そして私はチェックする/etc/anacrontab
/etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
そして私はチェックするls -la /var/spool/anacron/cron.daily
/var/spool/anacron/cron.daily
20180221
nginxのログは次のようにローテーションされますaccess.log, access.log-20180222
しかし私が命令するとrun-parts /etc/cron.daily
動作しません...
奇妙なことに、コマンドラインを挿入すると/usr/sbin/logrotate -f /etc/logrotate.conf
とてもうまく機能します!
/etc/cron.daily/logrotate
私は実行されないと思うrun-parts /etc/cron.daily
しかし、私のローカルdockerではrun-parts /etc/cron.daily
、コマンドを実行すると動作します
ステージングサーバーのみが動作していません。
/etc/cron.daily/logrotate
コマンドを実行してもファイルが機能しないのはなぜですかrun-parts /etc/cron.daily
?
答え1
問題が解決しました
それは権限の問題です
chmod 700 logrotate
-rw------- logrotate
->-rwxr--r-- logrotate
それはうまく機能します