簡體   English   中英

Shell腳本不會以root身份在cron中運行

[英]Shell script wont run in cron as 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" 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不在。 我也嘗試過為slacktee設置絕對位置,但是那沒有用。 更令人困惑的是,我在用戶crontab中放置了完全相同的行,而slacktee正常工作。 我究竟做錯了什么? 還是我需要在此處提出的Slacktee問題?

編輯:slacktee在這里可用: https : //github.com/course-hero/slacktee

您正在將metabackup.sh的stdout和stderr重定向到/ dev / null,所以我認為實際上沒有輸出通過管道傳遞到slacktee.sh,並且其標准輸入為空。

嘗試刪除> /dev/null

我同意吉爾!

如果沒有輸出,則slacktee將無法打印任何內容。

如果仍然無法使用,請嘗試在命令中加載配置文件:

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

當然,根據您使用的是bash還是ksh(.profile或.bash_profile)來調整文件

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

希望它會有所幫助。

cron最有可能在其路徑中找不到slacktee.sh 您正在為第一個命令設置PATH,但是該設置不適用於管道之后的命令。

嘗試使用slacktree的完整路徑:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM