私はあなたのための毎日の循環を設定しましたが、あなたはそうではありません。
しかし、手動で行うと正常に動作します。
logrotate -vf /etc/logrotate.conf
これが回転したいログファイルです。 /mylogs/log (-rwxrwxrwxrwx 1 管理者管理者)
システム構成です。
/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 生成オプション (0640 root utmp 生成)
logrotateは正しい人のために実行されます。最初の3つの値を割り当てる方法を教えてください。フォルダ - ファイル - logrotate.confに設定を作成する
ベストアンサー1
ここに2つの文字列を連結します。
/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
-x
psには、シェルからデバッグ出力を取得するための良いオプションがあります/bin/sh
。次回実行しようとすると、このエラーの種類が見つかりそうです。/bin/sh -x /etc/cron.daily/logrotate