Logrotate

為停止/禁用的應用程序跳過 logrotate

  • December 12, 2016

我有一個在 Raspberry Pi 2 上執行 GNU/Linux 的備用系統。由於各種原因,我必須停止和/或禁用一些應用程序。如何為需要重新啟動的已停止應用程序跳過 logrotate,例如:samba、httpd:

我收到通過電子郵件發送給我的以下錯誤。

/etc/cron.daily/logrotate:
Job for smbd.service failed. See 'systemctl status smbd.service' and 'journalctl -xn' for details.
error: error running non-shared postrotate script for /var/log/samba/log.smbd of '/var/log/samba/log.smbd '
run-parts: /etc/cron.daily/logrotate exited with return code 1

如果 smbd 和/或 nmbd 沒有執行,是否有 postrotate/endscript 方法來跳過旋轉?

在您的 logrotate 配置文件(或特定的/etc/logrotate.d子文件)中,您必須有如下部分:

/var/log/samba/log.smbd {
       ...
       postrotate
               /etc/init.d/smbd reload > /dev/null
       endscript
       ...
}

將 postrotate 命令更改為:

/var/log/samba/log.smbd {
       ...
       postrotate
               { pidof smbd && /etc/init.d/smbd reload; } > /dev/null
       endscript
       ...
}

引用自:https://unix.stackexchange.com/questions/329824