将 crontab 标准输出重定向到标准输出,而不是默认电子邮件



默认情况下,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 运行的脚本中向 slack 发布消息一样。 在其他脚本中(每天将它们放在目录中来安排/etc/cron.daily/我这样做:

echo "New message!" | slacktee -i "tada" -c "messages"

当他们运行时,没有任何问题。但是在我的自定义计划脚本中,尽管它们运行正常,但我在 slack 上看不到任何消息。

我的工作每四个小时开始一次,安排如下:

* */4 * * * /scripts/mysql_backup.sh

我已经尝试了许多重定向(在脚本内部,在cron命令内(,但似乎一切正常。

如何在自定义的 sheduled 脚本中使用 slacktee?

编辑:

我有点晚了,对不起,谢谢你所有的时间。

@PhilDenfer 不,Slacktee 不会在/tmp 上记录任何内容。
@Gedge我试过sudo echo "test" | slacktee.sh它有效。也使用su然后做echo "test" | slacktee.sh工作。
@isp-zax cron 作业成功运行,因为脚本会备份数据库。

重定向我得到slacktee.sh command not found的 stderr .因此,使用 slacktee.hs 作为根有效,但当根在 crontab 计划作业中使用它时则不行(在每日计划脚本中,我成功地使用了 slacktee(。为什么?

重定向我

得到的 stderr slacktee.sh 找不到命令。因此,使用 slacktee.hs 作为根有效,但当根在 crontab 计划作业中使用它时则不行(在每日计划脚本中,我成功地使用了 slacktee(。为什么?

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

而不是仅仅使用"松弛",请使用完整路径,即/usr/local/bin/slacktee,它应该可以正常工作。

最新更新