diff --git a/21. 資料收集/Linux/crontab-AWIN-MSIGP65.md b/21. 資料收集/Linux/crontab-AWIN-MSIGP65.md new file mode 100644 index 0000000..2ee48db --- /dev/null +++ b/21. 資料收集/Linux/crontab-AWIN-MSIGP65.md @@ -0,0 +1,79 @@ +### 加入 +使用`crontab -e`,然後加入這一行: +`*/1 * * * * /home/awin/script/ddns.sh` + +### 說明 +![[Pasted image 20240111231507.png]] +依序是 **分鐘,   小時,   日期,   月份,    星期,   command** +參數為 0-59,   0-23,   1-31,  1-21,   0-6,   需要執行的command +**※ 星期參數為 0 代表星期日** + +- 【*】:星號,代表任何時刻都接受的意思 +- 【,】:逗號,代表分隔時段。例如:30 9,17 * * * command,代表早上 9 點半和下午五點半都執行 command。 +- 【-】:減號,代表一段時間範圍。例如:15 9-12 * * * command,代表從 9 點到 12 點的每個 15 分都執行 command。 +- 【/n】:斜線,n 代表數字,表示每個 n 單位間隔。例如:*/5 * * * * command,代表每隔 5 分鐘執行一次 command。 + +還有一些人性化的參數,一次取代全部五個數字參數 +- 【@reboot】 :僅在開機的時候執行一次。 +- 【@yearly】 :一年執行一次,和0 0 1 1 * command效果一樣。 +- 【@annually】:(和@yearly一樣) +- 【@monthly】:一個月執行一次,和0 0 1 * * command效果一樣。 +- 【@weekly】:一個星期執行一次,和0 0 * * 0 command效果一樣。 +- 【@daily】:每天執行,和0 0 * * * command效果一樣。 +- 【@midnight】:(和@daily一樣) +- 【@hourly】 :每小時執行,和0 * * * * command效果一樣。 + +### 範例 +- 每 5 分鐘執行一次: + - `*/5 * * * *  root    /usr/libexec/atrun` +- 每 5 小時執行一次 + - `​* */5 * * * root    /usr/libexec/atrun` +- 每天 AM 5:00 執行指令(星號與星號之間要有空隔) + - `​00 05   * * *  username /bin/bash /路徑/command` +- 1 至 20 號每天執行一次 + - ​`0 1 1-20  * * root    /usr/libexec/atrun` +- 當分針移到第 5 分時,執行此 cron + - `​5 * * * * root    /usr/libexec/atrun` +- 當時針移到 1 點 1 分時,執行此 cron + - ​`1 1 * * * root    /usr/libexec/atrun` +- 每週一的 1 點 1 分,執行 + - `​1 1 * * 1 root    /usr/libexec/atrun` +- 2 月 29 日時針到 1 點 1 分,執行 + - ​`1 1 29 2 * root    /usr/libexec/atrun` +- 8 點到 16 點每 5 分鐘執行一次 cron + - `​/5 8-16 * * *   root    /usr/libexec/atrun` + +### crontab 命令 +#### 啟動 +`sudo service cron start` + +#### 重新啟動 +`/etc/init.d/cron restart` + +#### 查詢service狀態 +`sudo /etc/init.d/cron status` + +#### 編輯 crontab +`crontab -e` + +### `awin` 的 crontab +``` +# m h day mon weekday command +*/5 * * * * /home/awin/script/clean_nextcloud.sh +``` + +### `root` 的 crontab +``` +# m h day mon dow command +*/3 * * * * /home/awin/script/ddns.sh > /home/awin/log/ddns.log 2>&1 +*/5 * * * * /home/awin/script/clean_nextcloud.sh > /home/awin/log/clean_nextcloud.log 2>&1 +1 2 * * 1 /home/awin/script/backup_adguardhome.sh > /home/awin/log/backup_docker_adguardhome.log 2>&1 +2 2 * * 1 /home/awin/script/backup_filebrowser.sh > /home/awin/log/backup_docker_filebrowser.log 2>&1 +3 2 * * 1 /home/awin/script/backup_freshrss.sh > /home/awin/log/backup_docker_freshrss.log 2>&1 +4 2 * * 1 /home/awin/script/backup_gitea.sh > /home/awin/log/backup_docker_gitea.log 2>&1 +5 2 * * 1 /home/awin/script/backup_immich.sh > /home/awin/log/backup_docker_immich.log 2>&1 +1 2 * * 2 /home/awin/script/backup_nextcloud.sh > /home/awin/log/backup_docker_nextcloud.log 2>&1 +* * 1 * * /home/awin/script/backup_dotfiles_awin-pc2.sh > /home/awin/log/backup_dotfiles_awin-pc2.log 2>&1 +@reboot /home/awin/script/fan_hddtemp_exportor.py > /home/awin/log/fan_hddtemp_exportor.log 2>&1 +@reboot /home/awin/script/reboot_echo.sh > /home/awin/log/reboot.log 2>&1 +```