4

我是 linux 机器上的 logrotate 新手……这是我在应用程序的 logrotate.d 文件中设置的内容:

/var/log/myapp.log {
daily
missingok
create 0660 root utmp
rotate 1
}

我使用 chmod 直接从 bash shell 为运行相关应用程序的帐户设置了 myapp.log 文件的所有者权限。

当应用程序第一次运行时,一切都很好。它记录得很好,一切都很好。但是当日志轮换时,它会删除日志文件,然后尝试重新创建日志文件,并给出权限被拒绝错误:

/bin/bash: /var/log/myapp.log: Permission denied

我知道我在 logrotate 配置文件或 chmod 或其他东西上做错了什么......有人可以指出我正确的方向并帮助我解决问题吗?

4

1 回答 1

6

我使用 chmod 直接从 bash shell 为运行相关应用程序的帐户设置了 myapp.log 文件的所有者权限。

...所以除非“运行有问题的应用程序的帐户”是rootconfig 选项

create 0660 root utmp

是错误的,因为那是要求logrotate创建一个新的myapp.log(在将原始文件旋转为 之后myapp.logmyapp.log.0,其权限0660由 userroot和 group拥有utmp。将这些替换为您的应用所需的属性应该可以解决问题。

于 2011-06-01T21:54:59.663 回答