将crontab stdout重定向到stdout而不是默认电子邮件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将crontab stdout重定向到stdout而不是默认电子邮件相关的知识,希望对你有一定的参考价值。
默认情况下,crontab作业stdout被发送到crontab用户的电子邮件,就像crontab文件在说明中所述:
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
我想使用slacktee和使用(tee
)一样在crontab运行的脚本内发布消息。在其他脚本中(通过将它们放在/etc/cron.daily/
目录中每日安排)我这样做:
echo "New message!" | slacktee -i "tada" -c "messages"
当它们运行时,没有问题。但是在我的自定义预定脚本中,虽然它们运行正常但我看不到松弛的消息。
我的工作每四个小时开始一次这个安排:
* */4 * * * /scripts/mysql_backup.sh
我尝试了很多重定向(在脚本内部,在cron命令中),但任何事情似乎都有效。
如何在自定义的自定义脚本中使用slacktee?
编辑:
我有点迟到了,感谢您的所有时间。
@PhilDenfer不,slacktee不会在/ tmp上记录任何内容。
@Gedge我尝试过sudo echo "test" | slacktee.sh
并且它有效。也使用su
然后做echo "test" | slacktee.sh
作品。
@ isp-zax cron作业成功运行,因为脚本会备份数据库。
重定向stderr我得到了slacktee.sh command not found
。所以使用slacktee.hs作为root工作但不是当root用户在crontab预定作业中使用它时(在每日预定脚本中我成功使用了slacktee)。为什么?
重定向stderr我找不到slacktee.sh命令。所以使用slacktee.hs作为root工作但不是当root用户在crontab预定作业中使用它时(在每日预定脚本中我成功使用了slacktee)。为什么?
因为用户root
和用户cron
的PATH变量是不同的。
而不是只是'松弛'使用完整的路径,即/usr/local/bin/slacktee
,它应该工作正常。
以上是关于将crontab stdout重定向到stdout而不是默认电子邮件的主要内容,如果未能解决你的问题,请参考以下文章