默认情况下,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)。为什么?
答案 0 :(得分:0)
重定向标准错误我找不到slacktee.sh命令。因此,将slacktee.hs用作root可以,但是当root在crontab计划的作业中使用它时,则不能(在日常计划脚本中我成功使用slacktee)。为什么?
因为用户root
和用户cron
的PATH变量不同。
使用完整路径(即/usr/local/bin/slacktee
而不是“ slacktee”,它应该可以正常工作。