2017-02-28 82 views
0

我已经在我的根的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"shell脚本不会在cron root身份运行

slacktee.sh坐落在/ usr/local/bin目录和/ usr /斌但是当我运行这个metabackup.sh运行正常,但slacktee.sh不会。我已经尝试过绝对位置,但这并不奏效。更令人困惑的是我把我的用户crontab完全相同的行和slacktee工作正常。我究竟做错了什么?或者这是一个懒散的问题,我需要在那里提高?

编辑: slacktee可以在这里找到:https://github.com/course-hero/slacktee

回答

0

您重定向stdout和metabackup.sh的标准错误到/ dev/null的,所以我觉得真的没有管道输出到slacktee.sh和它的标准输入是空。

尝试删除> /dev/null

+0

那不是因为我曾试图管道一切slacktee.sh问题。但是我发现问题在slacktee.sh内。它的目的不是为了与其安装的帐户一起使用,因为它创建带有URL的配置,以便与用户主目录中的冗余进行对话。这不适用于root。所以安装它作为根解决它。 – cheesemarathon

0

我GILE同意!

如果没有输出,懒懒者将无法打印任何东西。

如果仍然没有工作,尝试在你的命令加载配置文件:

45 12 * * * . ~/.profile;/home/ben/MetaBackup/metabackup.sh 2>&1 | slacktee.sh -t "Metabase Backup Error" -a "danger" 

当然,这取决于你是在庆典或ksh(.profile或.bash_profile中)

上修改文件

不要忘记.profile文件前面的“。”。

希望它会有所帮助。

0

很可能,cron在其路径中找不到slacktee.sh。您正在为第一个命令设置PATH,但该设置不适用于管道后面的命令。

尝试使用到slacktree的完整路径:

... | /usr/local/bin/slacktee.sh -t "Metabase Backup Error" -a "danger" 
相关问题