问题: 当运行ssh-keyscan
命令时计划任务ssh-keyscan
它通过电子邮件向我发送每天的输出。该电子邮件仅包含以下内容。
# <hostname> SSH-2.0-OpenSSH_5.3
我的(简化的)cron 作业:
host=`uname -n`
SSHKey=`ssh-keyscan $host`
echo $SSHKey >> /root/.ssh/known_hosts
我的问题: 如何防止ssh-keyscan
向 shell 写入任何内容?
答案1
重定向stderr
到/dev/null
host=`uname -n`
SSHKey=`ssh-keyscan $host 2> /dev/null`
echo $SSHKey >> /root/.ssh/known_hosts
答案2
一个老问题,我想知道为什么没有人建议以下变体:
(ssh-keyscan $host >>/root/.ssh/known_hosts) 2> >(grep -vE '^#')
这只会抑制以 开头的 stderr 输出#
,即不会抑制真正的错误消息。