我的root cron文件中有以下代码:
PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
45 12 * * * /home/ben/MetaBackup/metabackup.sh 2>&1 >/dev/null | slacktee.sh -t "Metabase Backup Error" -a "danger"
slacktee.sh位于/ usr / local / bin和/ usr / bin但是当我运行这个metabackup.sh运行正常但slacktee.sh没有。我已经尝试了松弛的绝对位置,但这不起作用。更令人困惑的是我把完全相同的行放在我的用户crontab中,而slacktee运行正常。我究竟做错了什么?或者这是一个松散的问题,我需要在那里筹集?
编辑: 这里有一个松弛的:https://github.com/course-hero/slacktee
答案 0 :(得分:0)
您正在将metabackup.sh的stdout和stderr重定向到/ dev / null,所以我认为没有输出通过管道输出到slacktee.sh并且其标准输入为空。
尝试删除> /dev/null
答案 1 :(得分:0)
我同意gile!
如果没有输出,松弛的人就不能打印任何东西。
如果它仍然无效,请尝试在命令中加载配置文件:
45 12 * * * . ~/.profile;/home/ben/MetaBackup/metabackup.sh 2>&1 | slacktee.sh -t "Metabase Backup Error" -a "danger"
当然,根据你是使用bash还是ksh(.profile或.bash_profile)来调整文件
不要忘记"。 "在.profile文件前面。
希望它会有所帮助。
答案 2 :(得分:0)
最有可能的是,cron没有在其路径中找到slacktee.sh
。您正在为第一个命令设置PATH,但该设置不适用于管道之后的命令。
尝试使用slacktree
的完整路径:
... | /usr/local/bin/slacktee.sh -t "Metabase Backup Error" -a "danger"