Cron
如何像從cron呼叫命令一樣執行命令
我編寫了一個腳本並將其設置為 cron 作業。但是由於環境變數的不同,它不能正常工作。
在那種情況下,我稍微改變一下
crontab -e
並設置一個最接近分鐘的 cron 作業時間,然後等待下一分鐘來顯示結果。我覺得這是一種完全荒謬的方法,但我不知道更好的方法。如果有一種方法可以像在 cron 作業中呼叫它一樣執行腳本,我將使用它。
有誰知道該怎麼做?
以下是相反的方法:強制執行 cron 以使用您的登錄環境:
bash -lc "your_command"
從 bash 手冊:
-c string If the -c option is present, then commands are read from string. If there are arguments after the string, they are assigned to the positional parameters, starting with $0. -l Make bash act as if it had been invoked as a login shell (see INVOCATION below).
呼叫(有點剝離):
當 bash 作為互動式登錄 shell 或作為帶有 –login 選項的非互動式 shell 呼叫時,它首先從文件 /etc/profile 中讀取並執行命令(如果該文件存在)。讀取該文件後,它會按順序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,並從第一個存在且可讀的文件中讀取並執行命令。當 shell 啟動時,可以使用 –noprofile 選項來禁止這種行為。
要了解更多: