Cron

如何像從cron呼叫命令一樣執行命令

  • May 26, 2020

我編寫了一個腳本並將其設置為 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 選項來禁止這種行為。

要了解更多:

引用自:https://unix.stackexchange.com/questions/121487