我正在编写 Linux shell 脚本(sh、bash 或 csh)来识别正在运行的 syslog 守护进程。最好的方法是什么?由于我只考虑基于 RHEL 和 rpm 的分发,因此可以忽略 Debian 及其衍生产品。
问问题
7496 次
3 回答
3
据我所知,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
于 2012-09-20T10:58:28.890 回答
1
可以解析 lsof 的输出以查看哪些进程打开了 /var/log/syslog 文件,一个非常粗略的示例是:
sudo lsof | grep /var/log/syslog | cut -f1 -d' '
如果您使用的是单一发行版,则可能有更优雅的检查方式。
于 2012-09-20T10:48:26.743 回答
0
在基于 debian 的系统上,运行以下脚本以查看已安装的内容:
dpkg-query -l '*syslog*' | grep ii
这将为您提供类似于以下内容的输出
ii rsyslog 7.4.4-1ubuntu2.3 i386 reliable system and kernel logging daemon
这样你就不必 grep 文件等。希望它可以帮助你。
于 2014-10-31T07:45:43.397 回答