我是新手在Linux机器上进行logrotate ...这是我在我的应用程序的logrotate.d文件中设置的内容:
/var/log/myapp.log {
daily
missingok
create 0660 root utmp
rotate 1
}
我在myapp.log文件中为运行相关应用程序的帐户设置了所有者权限,使用chmod直接从bash shell运行。
当应用程序第一次运行时,一切都很好。它记录得很好,一切都很好。但是当日志被轮换时,它会删除日志文件,然后尝试重新创建日志文件,并且它会给出一个权限被拒绝的错误:
/bin/bash: /var/log/myapp.log: Permission denied
我知道我在使用logrotate配置文件或chmod或其他东西时出错了...有人能指出我正确的方向并帮我解决问题吗?
答案 0 :(得分:5)
我在myapp.log文件中为运行相关应用程序的帐户设置了所有者权限,使用chmod直接从bash shell。
...所以除非"运行相关应用程序的帐户"是root
,配置选项
create 0660 root utmp
是错误的,因为这要求logrotate
使用权限myapp.log
创建新的myapp.log
(在将原始myapp.log.0
轮换为0660
之后)由用户root
和群组utmp
拥有。用应用程序所需的属性替换它们可以解决问题。