Ubuntu
為 CRON 分配環境變數
我有一個
.sh
腳本,它創建一個文件並使用密鑰.tar.gz
將其傳輸到遠端伺服器進行身份驗證。RSA
該腳本將從中執行,
terminal
但當我嘗試將其設置為Cron
作業時它不會。我收到一封電子郵件,
Cron Daemon
說明此失敗:“/bin/sh: /home/backup.sh: Permission denied
”,並且文件未傳輸到其他伺服器。我已經從這個 askubuntu 文章中確定了最可能的原因,這很可能是由於“
Cron
”將一組最小的環境變數傳遞給您的工作。修復似乎是包括
#!/bin/bash PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # rest of script follows
任何有關如何配置它的幫助將不勝感激。
我在跑步
Ubuntu Server 11.04
編輯:
ls -la backup.sh
給-rw-r--r-- 1 root root 1053 2012-10-13 15:08 backup.sh
感謝您的
ls
輸出。似乎 cron 對文件沒有正確權限的抱怨可以從表面上理解(具體來說,它缺乏執行權限);嘗試做chmod 755 ./home/backup.sh
,看看是否有幫助。編輯:我很高興我們解決了這個問題。您應該首先查看 cron 下哪個使用者正在執行此作業,並檢查 backupdir 目錄的所有權。使用者需要有權在該目錄中寫入;盲目地
chmod
做事情是沒有用的。