【问题标题】:What happens to the new syslog messages when rsyslogd daemon is stopped?当 rsyslogd 守护进程停止时,新的 syslog 消息会发生什么?
【发布时间】:2015-11-03 06:01:36
【问题描述】:

我尝试在许多地方搜索此问题,还尝试在 openlog()、syslog(0、rsyslogd(8) 的文档/手册页中搜索,但找不到答案。

我的问题是,如果 rsyslogd 已停止或尚未启动,那么新的 syslog 消息会丢失吗?或者 rsyslogd 稍后在启用时从 /dev/log 获取它们?

我的测试是:

在正在运行的系统上,rsyslog 正在运行。现在,执行以下操作:

  1. logger -p local7.notice "my custom message1"
  2. grep 消息1 | /var/log/messages ----> 成功
  3. 停止 rsyslogd 进程
  4. logger -p local7.notice "My other custom message2"
  5. 现在,启动 rsyslogd 守护进程
  6. grep 消息2 | /var/log/messages ----> 失败

我从 openlog(3) 和 syslog(3) 手册页了解到,为 /dev/log 文件打开了一个套接字,如果在将消息发送到 syslog 时出现错误(因为 rsyslogd 没有运行),那么连接已关闭(如果您使用了 LOG_CONS/LOG_PERROR,则会在控制台/stderror 上打印消息)。

谁能告诉我:

  1. 当系统日志文件出现时,rsyslogd 有没有办法让所有这些消息都出现在 syslog 文件中?
  2. 如果不是默认情况下,是否有任何系统调用、命令等方法来做到这一点??

提前谢谢你。

-Neo

【问题讨论】:

    标签: linux logging rsyslog


    【解决方案1】:

    默认情况下不会发生。不过,您可以使用“cat”命令并将其通过管道传输到记录器以获取它们。像下面这样的东西应该可以工作。

    cat your.log | logger -n yourserver
    

    您也可以使用类似于“cat”的“tail”命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多