确定在Linux上运行哪个syslog守护程序的最佳方法是什么?

时间:2012-09-20 10:33:41

标签: linux bash shell sh csh

我正在编写Linux shell脚本(sh,bash或csh)来识别正在运行的syslog守护程序。 最好的方法是什么? 由于我只考虑基于RHEL和rpm的分布,因此可以忽略Debian及其派生词。

3 个答案:

答案 0 :(得分:2)

据我所知, syslog-ng rsyslog (默认值)是RHEL上唯一可用的。您可以探测进程空间,查看当前保持的进程/var/log/syslog是否打开,或者只是检查安装了哪个syslog守护进程(但是,可以同时安装它们)。

$ lsof /var/log/messages /var/log/syslog 2>&1 | grep syslog
$ rpm -q rsyslog syslog-ng
$ pgrep -u root syslog | xargs ps -p

答案 1 :(得分:1)

可以解析lsof的输出以查看哪些进程打开了文件/ var / log / syslog,这是一个非常粗略的例子:

sudo lsof | grep /var/log/syslog | cut -f1 -d' '

如果您使用单一发行版,可能会有更优雅的方式进行检查。

答案 2 :(得分:0)

在基于debian的系统上,运行以下脚本以查看已安装的内容:

dpkg-query -l '*syslog*' | grep ii

这将为您提供类似于以下内容的输出

ii  rsyslog  7.4.4-1ubuntu2.3  i386  reliable system and kernel logging daemon

这样你就不必grep文件等。希望它可以帮助你。