跳至主要內容
CJCJ Kuo

全站文章搜尋

輸入關鍵字即刻在靜態索引中快速搜尋
↑↓ 導航 · Enter 選取前往獨立搜尋頁 →
Shell 手動執行成功,排程失敗
資訊技術••約 2 分鐘•333 字

Shell 手動執行成功,排程失敗

本文目錄共 3 節

寫 Shell 一切都是為了省下更多時間,來更專注的處理手頭上的事情。
在完成腳本後不外乎反覆測試或嘗試各種可能,在手動執行確認內容執行後可以呈現所需。
卻在Crontab 排程執行卻失敗,重新審視內容後發現裡面有一條語法為了要取得客製化系統內的資訊。

測試環境

  • CentOS 6(客製化環境)

解決辦法

此次問題中最主要是在客製化系統中的,在使用者登入時會自動載入系統中。

"/etc/profile", "~/.bash_profile"

當在 Crontab 執行 shell 指令其中帶有客製化指令,呈現結果會是失敗的。
因 Crontab 排程中執行是不會載入此使用者的資訊,故無法正確執行客製化系統中的語法。
所以在 shell 第二行加以下程式碼

source /etc/profile

讓語法在執行時可以正確帶入客製化指令。

如果遇到其他無法執行的內容可往以下方案尋找

  • 呼叫其他檔案時是否有寫絕對路徑。
  • 檔案權限是否設定正確。

參考連結

查看此系列所有文章 →
CJ Kuo (郭仕杰)

CJ Kuo (郭仕杰)

創辦人兼主筆

熱愛軟體架構、DevOps、系統調優與新技術探索的工程實踐者,也會寫寫投資和生活。

獨立技術專刊推播

訂閱技術電子報

有新文章發布時寄送到您的信箱,不發送垃圾信。