我有一個bash腳本集用於從遠程驅動器複製備份;如果我從終端運行它,這個腳本工作正常,即$ ./getBackup
;但是,如果我嘗試將其放入我的crontab中,則不起作用。Bash腳本獨立工作,不會在crontab中工作
我已經通過了一堆的問題在這裏/答案的閱讀,包括
- Cannot run bash script from crontab when it works from command line bash
- the script runs from command line but crontab fails
- Script does not run under cron but runs manually
也許我錯過了什麼,但我想我已經嘗試了那些提供的大部分建議,以及我能想到的所有其他建議。我試圖從/ etc/crontab中的crontab中,從sudo crontab中運行它;我已經檢查過終端的env(腳本手動工作的位置)並將其放入cron作業的腳本中。
任何人有任何想法?
[編輯添加] 一些評論要求有問題的代碼,所以:
的crontab:
30 9 * * * /home/opsmonitor/Documents/getBackup
getBackup
cd /home/opsmonitor/Documents/
OF=backup-$(date +%Y%m%d)
echo "Retrieving backup file $OF"
scp [email protected] ADDRESS HERE://opt/backups/backupsbydate/$OF.tgz $OF.tgz
正如我所說的,getBackup作品從命令行罰款;並從crontab運行,它不會執行任何操作。 (現在我將輸出重定向到一個文件,echo會打印到該文件。)
由於scp從命令行運行,我認爲這是一個環境問題,但正如我所說的,我添加了很多腳本中的env變量 - 它仍然可以在命令行中正常運行,並從crontab失敗。
將你的'cron'條目添加到問題中。 – heemayl
'getBackup'腳本的內容也可能有用。你是否已經向腳本添加了明確的錯誤日誌記錄(對一個文件)以試圖在cron運行時看到發生了什麼? –
即使OP使環境變量正確,腳本也可能嘗試使用/ dev/tty執行某些操作... –