TShopping

 找回密碼
 註冊
搜索
查看: 437|回復: 0
打印 上一主題 下一主題

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2022-10-29 21:03:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
寫 Shell 一切都是為了省下更多時間,來更專注的處理手頭上的事情。
在完成腳本後不外乎反覆測試或嘗試各種可能,在手動執行確認內容執行後可以呈現所需。
卻在Crontab 排程執行卻失敗,重新審視內容後發現裡面有一條語法為了要取得客製化系統內的資訊。
測試環境
  • CentOS 6 Ubuntu 20.04(客製化環境)

解決辦法
此次問題中最主要是在客製化系統中的,在使用者登入時會自動載入系統中。
  1. "/etc/profile", "~/.bash_profile"
複製代碼

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

讓語法在執行時可以正確帶入客製化指令。
如果遇到其他無法執行的內容可往以下方案尋找
  • 呼叫其他檔案時是否有寫絕對路徑。
  • 檔案權限是否設定正確。
或是在 crontab -e 下
加入環境變數
  1. SHELL=/bin/bash
  2. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
複製代碼



 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-28 04:53 , Processed in 0.077582 second(s), 22 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表