Sysklogd系统日志记录器
等于操作符(=)表示仅对这个级别的消息进行操作,不等操作符(!)表示忽略这个级别以及更严重级别的消息.这两个操作符可以同时使用,不过"!"出现在"="的前面.
动作(action) 这个字段定义了对符合条件的消息进行何种操作,可以选择下列操作之一: 普通文件 将消息记录到这个文件中,使用绝对路径.如果在文件名之前加上减号(-),则表示不将日志信息同步刷新到磁盘上(使用写入缓存),这样可以提高日志写入性能,但是增加了系统崩溃后丢失日志的风险. 命名管道 在绝对路径表示的FIFO文件(使用mkfifo命令创建)前加上管道符号(|)即可.通常用于调试.比如:|/usr/adm/debug 终端或者控制台 比如:/dev/tty1 或 /dev/console 远程主机 syslogd 能够将消息发送到远程主机或从远程主机接收消息,不过默认并不转发接收到的消息.要将消息发送到远程主机,可以在主机名前加一个"@"即可. 逗号分隔的用户名列表 critical 级别的消息除了记录到日志之外,通常还转发到root用户. 所有当前登录的用户 如果写上一个星号(*)则表示向当前所有登录的用户显示这条消息.
实例 下面的例子来自于实践,希望能够对上面的内容做一个很好的示范以帮助理解. # 将所有 crit 级别的消息(排除所有内核消息)记录在 critical 文件中 # *.=crit;kern.none /var/adm/critical # 记录所有内核消息到 kernel 文件, # crit 级别以上的消息转发到远程同时在本地控制台也显示 # 将info(包含)~err(不含)范围的内核消息记录到kernel-info文件(err和更高的级别被忽略) # kern.* /var/adm/kernel kern.crit @finlandia kern.crit /dev/console kern.info;kern.!err /var/adm/kernel-info # 将恰好等于mail.info的消息显示在第12个终端(tcpd默认使用mail.info) # mail.=info /dev/tty12 # 将除mail.info之外的所有mail子系统消息记录到mail文件 # mail.*;mail.!=info /var/adm/mail # 将所有mail.info和news.info消息记录到info文件 # mail,news.=info /var/adm/info # 记录所有info和notice级别的消息,来自mail子系统的除外 # *.=info;*.=notice;mail.none /var/log/messages # 记录所有info级别的消息,来自mail和news子系统的除外 # *.=info;mail,news.none /var/log/messages # 向所有登录用户通知emerg级别的消息 # *.=emerg * # 将所有alert以及更高级别的消息转发到root,joey用户的终端上(如果他们已经登录) # *.alert root,joey # 将所有子系统的所有消息都发送到远程名为"finlandia"的主机 *.* @finlandia syslogd syslogd 默认通过 /dev/log 这个 unix domain socket 来接收应用程序发送过来的消息,这个位置是由系统的基本C库决定的. 这个程序的命令行参数如下: syslogd [ -a socket ] [ -f config-file ] [ -h ] [ -l hostlist ] [ -m interval ] [ -n ] [ -p socket ] [ -r ] [ -s domainlist ] [ -v ] 参数说明: -a socket 指定额外需要监听的 socket ,最多指定19个,可以通过修改 syslogd.c 文件中的 MAXFUNIX 宏修改这个默认值.如果你将某些进程在chroot环境下运行,那么这个选项就很有用了. -f config-file 指定配置文件的位置,默认是 /et |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |