美好的一天。
在我的脚本中,运行'ls'命令,此命令将列出某些目录中的文件内容,例如,
....
....
for i in `/usr/bin/ls 2>/dev/null /home/example/path/<file_name>`; do
---some statement----
done
----
----
但是,当上面的'ls'命令无法在目录中找到任何文件时,root将收到如下所述的消息通知:
/ bin / ls:无法访问/ home / example / path /:没有这样的文件或目录
我理解这是由于此命令在执行时产生的退出代码,我知道我们可以通过在ls命令之后添加“|| true”命令来解决此问题,这使得退出代码始终为值“0” ,例如,
------
for i in `/usr/bin/ls 2>/dev/null /home/example/path/<file_name> || true`;
------
或者我们可以使用代码逻辑来解决问题,例如,
if [ -r /home/example/path/<file_name> ]
但是,修复现有代码不是我的决议,因为此代码不属于我的团队职责。
由于我们需要解决服务器中收到的根邮件通知问题,我的服务器中是否有任何配置或设置可以更改为忽略或停止守护程序向仅从此脚本生成的根邮件发送错误通知
我的服务器: - AIX 6&amp; 7, RHEL 6&amp; 7
答案 0 :(得分:0)
如何更新crontab条目以将所有输出(stdout / sterr)重定向到文件,例如:
05 18 * * * /here/is/my/crontab/job >> /here/is/my/crontab/job.cronlog 2>&1
我通常将我的作业定义为写入名为job.log的日志,而crontab输出则发送到job.cronlog。
显然(?)这消除了cron发送与相关工作相关的电子邮件的可能性。
注意:刚看到塞浦路斯的回应。
在我的情况下,我更喜欢将所有输出捕获到文件中,以便在作业开始失败的时候/我可以查看与作业相关的任何/所有错误消息。
更容易捕获 - 现在,清理后......而不是尝试从/ dev / null中提取这些错误的消息: - )