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

时间:2018-09-14 11:30:52

标签: shell cron 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作业成功运行,因为该脚本对数据库进行了备份。

重定向标准错误我得到slacktee.sh command not found。因此,将slacktee.hs用作root可以,但是当root在crontab计划的作业中使用它时,则不能(在日常计划脚本中我成功使用slacktee)。为什么?

1 个答案:

答案 0 :(得分:0)

  

重定向标准错误我找不到slacktee.sh命令。因此,将slacktee.hs用作root可以,但是当root在crontab计划的作业中使用它时,则不能(在日常计划脚本中我成功使用slacktee)。为什么?

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

使用完整路径(即/usr/local/bin/slacktee而不是“ slacktee”,它应该可以正常工作。