无法从 cron 自动运行 logrotate 实用程序

Apo*_*tus 1 cron logrotate

我运行sudo crontab -e并附加以下行:

* * * * * logrotate -f /etc/logrotate.d/adraw; touch /ADraw/Data/Logs/test.txt
Run Code Online (Sandbox Code Playgroud)

文件 test.txt 已成功创建,但我没有看到 logrotate 的结果。奇怪的是,如果我运行sudo logrotate -f /etc/logrotate.d/adraw一切正常(创建了其他文件)。

我的/etc/logrotate.d/adraw配置:

/ADraw/Data/Logs/*.log {
    hourly
    size 1M
    missingok
    rotate 5
    compress
    delaycompress
    notifempty
    create 0640 ADraw ADraw
    sharedscripts
    prerotate
        if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
            run-parts /etc/logrotate.d/httpd-prerotate; \
        fi \
    endscript
    postrotate
        invoke-rc.d nginx rotate >/dev/null 2>&1
    endscript
}
Run Code Online (Sandbox Code Playgroud)

Apo*_*tus 5

正如 Steeldriver 所说,解决方案是在 cron 中添加 logrotate 的完整路径:

* * * * * /usr/sbin/logrotate -f /etc/logrotate.d/adraw; touch /ADraw/Data/Logs/test.txt
Run Code Online (Sandbox Code Playgroud)