為什麼 logrotate 不自動旋轉?
我已將您設置為每天輪換,但您沒有。
但是當我手動執行時,它確實有效。
logrotate -vf /etc/logrotate.conf
這是我要輪換的日誌文件。/mylogs/log (-rwxrwxrwxrwx 1 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 中的創建配置
經過幾次測試,我設法讓它再次正確旋轉。
為此,我分配了日誌文件的使用者 (root) 和組 (root)。
還將您的權限更改為 666。
對於包含該文件的文件夾,它被分配了組 (root) 的使用者 (root) 和 755 權限。
最後在 logrotate.conf 的配置中,分配給該屬性“create”的配置是使用者 (root)、組 (utmp) 和權限 (644)
我希望這些資訊在有人遇到類似問題時有用。
問候和謝謝。
在這裡加入兩個字元串
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
對於這樣的一個字元串:
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
或者在第一個字元串後加上反斜杠,如下所示:
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status \ /etc/logrotate.conf
ps 有一個很好的選項可以從 shell
-x
進行/bin/sh
調試輸出,我想如果你下次嘗試執行,你將能夠找到這個錯誤類型/bin/sh -x /etc/cron.daily/logrotate