Cron

如何在@reboot 後 1 分鐘開始 Cron 作業?

  • November 5, 2020

我需要在每次重新啟動後一分鐘執行我的腳本。當我@reboot在我的 crontab 中申請時,我的腳本還為時過早 - 我希望在所有其他在重新啟動時例行執行的任務之後執行腳本。重新啟動後的某個時候如何執行腳本?

該腳本是否只打算在啟動後一分鐘執行,還是也可以在其他時間使用?在前一種情況下,您可以添加sleep 60到腳本的開頭,或者在後一種情況下,將其添加到 crontab 文件中:

@reboot sleep 60 && my_script.sh

但是,正如 sr_ 所指出的那樣,也許您以錯誤的方式解決了這個問題,而適當的 init.d 或 rc.d 腳本將是一個更強大的解決方案。

如果您需要在網路可用時重新啟動後執行某些操作,例如,您可以編寫將在所需時間執行的 systemd 單元(當然這僅適用於具有 systemd 的系統)。

為此,請創建/etc/systemd/system/my_script.service具有以下內容的文件:

[Unit]
Description=My script that requires network
After=network.target

[Service]
Type=oneshot
ExecStart=/full/path/to/my_script.sh

[Install]
WantedBy=multi-user.target

然後執行:

sudo systemctl daemon-reload
sudo systemctl enable my_script

你完成了!

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