我已经编写了一半的 nagios 脚本,但遇到了 SSH 方面的烦恼。
根据手册页:
-q Quiet mode. Causes all warning and diagnostic messages to be
suppressed.
但是,如果我启用安静标志,然后传递无效端口,仍然会收到错误:
$ ssh user@localhost -q -p test
Bad port 'test'
这是一个问题,因为这会使该消息成为输出的第一行,而 Nagios 会抓取该行。我需要在!= 0
从 ssh 中获取退出代码后输出类似“警告|SSH 错误”的内容,但我可以输出的第一行将是第 2 行。
我怎样才能让 SSH 真正安静?
注意:我不确定是否应该在 serverfault、superuser 还是 stackoverflow 上发布这个问题。我选择了 serverfault,因为该用户群可能对 cli SSH 和 cli 脚本解决方法最有经验。
答案1
ssh user@localhost -q -p test 2> /dev/null
将重定向stderr
到/dev/null。
答案2
或者,最简单的方法存储LogLevel QUIET
在配置文件中:
$ cat ~/.ssh/config
Host *
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel QUIET
...
最终获得与上面相同的结果,但输入的内容要少得多。
干杯