如何在 logrotate.conf 中重启服务
How to restart a service in logrotate.conf
我有一个生成登录的脚本 /var/log/venaqua。我想使用 logrotate 管理该日志。为此,我在 /etc/logrotate.d/venaqua 文件
中添加了以下代码
/var/log/venaqua{
daily
prerotate
/bin/echo "`date` Starting Logrotate" >> /log/var/venaqua
endscript
rotate 5
compress
minsize 1M
create 0644 root root
postrotate
/bin/systemctl restart venaqua.service
/bin/echo "`date` Logrotate Completed" >> /log/var/venaqua
endscript
}
我正在测试
sudo logrotate -v -f /etc/logrotate.conf
我收到错误消息
rotating pattern: /var/log/venaqua forced from command line (5 rotations)
empty log files are rotated, only log files >= 1048576 bytes are rotated, old logs are removed
considering log /var/log/venaqua
Now: 2019-10-25 13:05
Last rotated at 2019-10-25 12:49
log needs rotating
rotating log /var/log/venaqua, log->rotateCount is 5
dateext suffix '-20191025'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/venaqua.5.gz to /var/log/venaqua.6.gz (rotatecount 5, logstart 1, i 5),
renaming /var/log/venaqua.4.gz to /var/log/venaqua.5.gz (rotatecount 5, logstart 1, i 4),
renaming /var/log/venaqua.3.gz to /var/log/venaqua.4.gz (rotatecount 5, logstart 1, i 3),
old log /var/log/venaqua.3.gz does not exist
renaming /var/log/venaqua.2.gz to /var/log/venaqua.3.gz (rotatecount 5, logstart 1, i 2),
old log /var/log/venaqua.2.gz does not exist
renaming /var/log/venaqua.1.gz to /var/log/venaqua.2.gz (rotatecount 5, logstart 1, i 1),
old log /var/log/venaqua.1.gz does not exist
renaming /var/log/venaqua.0.gz to /var/log/venaqua.1.gz (rotatecount 5, logstart 1, i 0),
old log /var/log/venaqua.0.gz does not exist
running prerotate script
logrotate_script: 2: logrotate_script: cannot create /log/var/venaqua: Directory nonexistent
error: error running non-shared prerotate script for /var/log/venaqua of '/var/log/venaqua'
cannot create /log/var/venaqua: Directory nonexistent
说明了一切。您已在初始日志定义 /var/log/venaqua{
和预旋转脚本中的后续路径 >> /log/var/venaqua
之间切换了 /var/log/
和 /log/var
。此错误也存在于您的旋转后脚本中。
我有一个生成登录的脚本 /var/log/venaqua。我想使用 logrotate 管理该日志。为此,我在 /etc/logrotate.d/venaqua 文件
中添加了以下代码/var/log/venaqua{
daily
prerotate
/bin/echo "`date` Starting Logrotate" >> /log/var/venaqua
endscript
rotate 5
compress
minsize 1M
create 0644 root root
postrotate
/bin/systemctl restart venaqua.service
/bin/echo "`date` Logrotate Completed" >> /log/var/venaqua
endscript
}
我正在测试
sudo logrotate -v -f /etc/logrotate.conf
我收到错误消息
rotating pattern: /var/log/venaqua forced from command line (5 rotations)
empty log files are rotated, only log files >= 1048576 bytes are rotated, old logs are removed
considering log /var/log/venaqua
Now: 2019-10-25 13:05
Last rotated at 2019-10-25 12:49
log needs rotating
rotating log /var/log/venaqua, log->rotateCount is 5
dateext suffix '-20191025'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/venaqua.5.gz to /var/log/venaqua.6.gz (rotatecount 5, logstart 1, i 5),
renaming /var/log/venaqua.4.gz to /var/log/venaqua.5.gz (rotatecount 5, logstart 1, i 4),
renaming /var/log/venaqua.3.gz to /var/log/venaqua.4.gz (rotatecount 5, logstart 1, i 3),
old log /var/log/venaqua.3.gz does not exist
renaming /var/log/venaqua.2.gz to /var/log/venaqua.3.gz (rotatecount 5, logstart 1, i 2),
old log /var/log/venaqua.2.gz does not exist
renaming /var/log/venaqua.1.gz to /var/log/venaqua.2.gz (rotatecount 5, logstart 1, i 1),
old log /var/log/venaqua.1.gz does not exist
renaming /var/log/venaqua.0.gz to /var/log/venaqua.1.gz (rotatecount 5, logstart 1, i 0),
old log /var/log/venaqua.0.gz does not exist
running prerotate script
logrotate_script: 2: logrotate_script: cannot create /log/var/venaqua: Directory nonexistent
error: error running non-shared prerotate script for /var/log/venaqua of '/var/log/venaqua'
cannot create /log/var/venaqua: Directory nonexistent
说明了一切。您已在初始日志定义 /var/log/venaqua{
和预旋转脚本中的后续路径 >> /log/var/venaqua
之间切换了 /var/log/
和 /log/var
。此错误也存在于您的旋转后脚本中。