我正在尝试在我的 Ubuntu 机器上配置日志轮换,以便每天轮换日志并保留 14 天。我找到的大多数教程,例如这个,提到我应该修改,/etc/logrotate.d/rsyslog
但该文件在我的计算机上不存在。我如何知道日志轮换设置存储在哪里?我需要在 Ubuntu 16.04 中修改哪个文件来配置每日日志轮换?
我查看时man logrotate
发现配置似乎在 中/etc/logrotate.conf
。以下是该文件的内容:
# see "man logrotate" for details
# rotate log files weekly
weekly
# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
}
# system-specific logs may be configured here
这就是其中的全部内容。我尝试更改weekly
为daily
和更改rotate 4
为rotate 10
,但现在没有日志出现在/var/log/syslog
/var/log/syslog
我遗漏了什么?我需要为此文件添加设置吗?
答案1
您不需要/etc/logrotate.d/rsyslog
文件来轮换日志。您在/etc/logrotate.d
目录中创建的任何文件都可用于轮换日志。这些文件通常以 root 所有权和 644 权限 (rx-r--r--) 创建。
我的 14.04 服务器上确实有一个/etc/logrotate.d/rsyslog
文件,这些是其内容。
/var/log/syslog
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
如果您的 syslog 文件是在轮换后以错误的权限和所有权创建的,则其中可能没有日志。我的权限设置为 640 (rw-r-----),并且 syslog:adm 为所有者和组。