我在 bash 脚本中使用 arp-scan 来验证主机是否可访问。我将脚本设置为每分钟运行一次的 cron 作业,并且 /var/log/syslog 充满了 arp-scan 输出。
我尝试过 -q 和 --quiet,但没有发现它对命令行输出或系统日志消息有任何影响。该标志在 arp-scan 1.6 上是否损坏?
还有其他方法可以阻止系统日志消息吗?
我意识到这不是世界末日(每分钟只有两行),但如果可能的话,我宁愿不在那里看到它。
以下行出现在 /var/log/syslog 和 /var/log/messages 中:
Jul 16 08:28:01 debian arp-scan[9428]: Starting: arp-scan 192.168.1.1 -I eth0
Jul 16 08:28:01 debian arp-scan[9428]: Ending: 1 hosts scanned in 0.150 seconds (6.67 hosts/sec). 1 responded
Jul 16 08:28:01 debian arp-scan[9440]: Starting: arp-scan 192.168.1.6 -I eth0
Jul 16 08:28:02 debian arp-scan[9440]: Ending: 1 hosts scanned in 0.165 seconds (6.06 hosts/sec). 1 responded
这是我的脚本的 cron 行:
* * * * * root /root/monitor
更新
我尝试同时附加 > /dev/null 和 2>&1 /dev/null ,但都没有停止 arp-scan 输出。
解决方案
在 /etc/rsyslog.conf 中放置以下过滤器:
#
# Don't log arp-scan output
#
:programname, isequal, "arp-scan" ~
答案1
如果您使用 rsyslogd,您应该能够编写一个过滤器来删除它,如图所示这里。
答案2
如果您想防止 arp-scan 的回声,则只需将错误传递到 /dev/null 即可将所有输出提供给 /dev/null 并重新启动作业序列。