Ubuntu

為 CRON 分配環境變數

  • October 15, 2012

我有一個.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做事情是沒有用的。

引用自:https://serverfault.com/questions/438435