logrotate が自動的にローテーションされないのはなぜですか?

logrotate が自動的にローテーションされないのはなぜですか?

毎日ローテーションするように設定しましたが、実行されません。

しかし、手動で実行すると、機能します。

logrotate -vf /etc/logrotate.conf

これはローテーションするログ ファイルです。/mylogs/log (-rwxrwxrwxrwx 1 admin admin)

これがシステム構成です。

/etc/logrotate.conf (-rw-r--r-- 1 root root):

/mylogs/log {
create 0640 root utmp
missingok
daily
copytruncate
rotate 10
dateext
}

/etc/logrotate.d/syslog (-rw-r--r-- 1 root root):

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || 
true
endscript
}

/etc/cron.daily/logrotate (-rwx------ 1 root root):

#!/bin/sh

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with 
[$EXITVALUE]"
fi
exit 0

/etc/crontab (-rw-r--r--. 1 root root):

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR 
sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

追加情報。CentOS オペレーティングシステム

正しく回転させるにはどうしたらいいでしょうか。


アップデート

問題は、次の 3 つの所有者、グループ、および権限の割り当てにあると思います。/mylogs/ フォルダー (root root)、/mylogs/log ファイル (admin admin)、
logrotate.conf の作成オプション (create 0640 root utmp)

logrotate を正しく実行している人。前の 3 つの値をどのように割り当てたかを教えてください。フォルダー - ファイル - logrotate.conf 内の作成構成

答え1

ここで2つの文字列を結合します

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status 
/etc/logrotate.conf

次のような 1 つの文字列になります。

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

または、次のように最初の文字列の後にバックスラッシュを置きます。

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status \
/etc/logrotate.conf

-xps シェルからデバッグ出力を作成するための優れたオプションがあります/bin/sh。次回実行してみると、このミスタイプを見つけることができると思います。/bin/sh -x /etc/cron.daily/logrotate

答え2

数回のテストの後、再び正しく回転するようになりました。

これを実行するために、ログ ファイルのユーザー (root) とグループ (root) を割り当てました。

また、権限を 666 に変更します。

ファイルを含むフォルダに対して、ユーザー (root) とグループ (root) および 755 の権限が割り当てられます。

最後に、logrotate.conf の設定内で、このプロパティ 'create' に割り当てられた設定は、ユーザー (root)、グループ (utmp)、および権限 (644) でした。

同様の問題を抱えている人がいた場合に、この情報が役立つことを願っています。

ご挨拶と感謝を申し上げます。

関連情報