我试图在很多地方搜索它,还在openlog(),syslog(0,rsyslogd(8)的文档/手册页中进行搜索,但是找不到答案。

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

我的测试是:

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

  • logger -p local7.notice“我的自定义message1”
  • grep message1 |/var/log/messages ---->成功
  • 停止rsyslogd进程
  • logger -p local7.notice“我的其他自定义message2”
  • 现在,启动rsyslogd守护程序
  • grep message2 |/var/log/messages ---->失败

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

    有人可以告诉我:
  • 当出现问题时,是否有任何方法rsyslogd可以在syslog文件中获取所有缺少的消息?
  • 如果不是默认情况下,是否有任何系统调用,命令等执行此操作?

  • 先感谢您。

    -新

    最佳答案

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

    cat your.log | logger -n yourserver
    

    您也可以像使用“cat”一样使用“tail”命令。

    08-08 06:26