awslinux /etc/cron.daily は logrotate ファイルを実行しません

awslinux /etc/cron.daily は logrotate ファイルを実行しません

英語のレベルが低くてごめんなさい

私のステージングサーバーで

毎日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

それはうまく機能します

関連情報