大家好,我在 Ubuntu 10.4 64bit LTS 上使用 rsyslog。
以下是 /etc/rsyslog.d/60-mylogger.conf 中的相关配置
$template Paul,"%msg%\n"
$outchannel log_rotation_paul,/var/log/paul/events.log,2000,/opt/scripts/log_rotation_script.sh
local0.* $log_rotation_paul;保罗
每 2000 个字节轮换一次
我的问题是此处的通道指令导致 /etc/rsyslog.conf 中定义的所有权被完全忽略,并且当调用我的日志轮换脚本时,我没有移动日志文件所需的 root 权限,因为该脚本以 rsyslog 身份运行,而我正在移动的文件需要 root 权限。
任何想法我找到了这个关联但不幸的是,它不能解决我的问题。
答案1
如果我理解正确的话,/var/log/paul/events.log 归 root 所有;但是,您有一个以 rsyslog 用户身份运行的脚本,该用户无法移动 /var/log/paul/events.log。
sudo chown -R root.rsyslog /var/log/paul/
sudo chmod 0775 /var/log/paul
sudo chmod g+s /var/log/paul
现在,/var/log/paul 中的新文件始终归 rsyslog 所有。另一个可用的解决方案是 ACL。