将crontab stdout重定向到stdout而不是默认电子邮件

问题描述 投票:1回答:1

默认情况下,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)。为什么?

shell cron stdout
1个回答
0
投票

重定向stderr我找不到slacktee.sh命令。所以使用slacktee.hs作为root工作但不是当root用户在crontab预定作业中使用它时(在每日预定脚本中我成功使用了slacktee)。为什么?

因为用户root和用户cron的PATH变量是不同的。

而不是只是'松弛'使用完整的路径,即/usr/local/bin/slacktee,它应该工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.