默认情况下,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
,它应该工作正常。