每次 newsyslog 旋转日志文件后,syslog 就停止往文件中记录日志。必须重新启动 syslogd 才能继续记录日志。
在使用
在
(myserver:wheel)# logger -p local1.info -t myprocess "hello thiru"; ll myfile.log; cat myfile.log
-rw-r--r-- 1 root wheel 0B Nov 10 11:26 myfile.log
(myserver:wheel)# /etc/rc.d/syslogd restart
Stopping syslogd.
Starting syslogd.
(myserver:wheel)# logger -p local1.info -t myprocess "hello thiru"; ll myfile.log; cat myfile.log
-rw-r--r-- 1 root wheel 44B Nov 10 12:04 myfile.log
Nov 10 12:04:31 myserver myprocess: hello thiru
(myserver:wheel)#
在使用
logrotate
的 Linux
上,我们可以通过在 logrotate 配置文件的 postrotate
部分执行 syslog/rsyslog restart
来解决这个问题。在
newsyslog
中是否有类似于 postrotate
的功能呢?
编辑:
Syslog 和 newsyslog 配置文件:(TPC-E11-36:wheel)# cat /etc/newsyslog.d/newsyslog-myprocess.conf
/var/log/myfile.log 644 20 10000 * Z
(TPC-E11-36:wheel)# cat /etc/syslog.d/syslog-myprocess.conf
!myprocess
local1.info /var/log/myfile.log
(TPC-E11-36:wheel)#
man newsyslog.conf
,但默认情况下,除非指定了“N”标志或者另一个进程,否则当日志文件轮换时,syslogd
将会接收到一个信号。请检查您的newsyslog.conf
或newsyslog.conf.d/*
文件。 - Richard Smithnewsyslog.conf
中指定一个进程?我也没有使用过N
标志。 - Thirupathi Thangavel/etc/syslog.conf
中并调用newsyslog -f newsyslog-cnd.conf
,则日志文件将被旋转,新文件将创建并显示消息“由于大小而翻转日志文件”,并且logger
可以正常工作。我不认识您提到的子目录newsyslog.d
和syslog.d
,并且在日志轮换后我没有得到一个0B
的文件。 - Richard Smith