在 Ubuntu 20.04 透過 crontab 設定工作排程範例教學

首頁 >> Research >> Linux >> 在 Ubuntu 20.04 透過 crontab 設定工作排程範例教學

電腦能幫人類做許多工作,

除了這些工作由電腦代勞以外,

有週期性的例行工作也可以交由電腦來處理,

今天就來教大家

在 Ubuntu 20.04 透過 crontab 設定工作排程範例教學

在 Ubuntu 20.04 使用 crontab 來設定排程工作,
使用命令
crontab -l 
就能夠觀看目前的排程工作有哪些。

非常重要的一點:

如果是在 crontab 直接執行命令的話記得加上

SHELL=/bin/bash

系統不會執行;

若執行的命令是一個 .sh檔案,

因為 .sh 檔案上方已經有

!/bin/bash

故不會有此問題。

再沒有執行就先檢查下服務有沒有跑

sudo /etc/init.d/cron status

若要新增修改排程工作,
則使用命令:
crontab -e
進入之後系統會在上方顯示一個簡單的說明,
最後一行的
m h dom mon dow command
每個欄位都代表著不同的意義

  • m:分, 0 ~ 59
  • h :時, 0 ~ 23
  • dom: 日期, 1 ~ 31
  • mon: 月份, 1 ~ 12
  • dow: 星期幾, 1 ~ 7
  • command 要執行的排程工作

除了指定的時間點以外,
可以透過特殊字元來簡化設定的方式,
例如

  • 星號 ( * ): 表示任意時間點。
  • 逗號 (,): 表示多個時間點,以逗號將其分隔開。
  • 減號( – ): 表示一段時間。
  • 斜線( / ):加上數字,表示每隔多少時間就執行。


除了上述這些特殊字元以外,
可透過 @ 與部分的字串進行特殊的例行工作。如:

  • @reboot    :重開機就執行
  • @daily      :每天執行
  • @weekly  :每周執行
  • @hourly   :每小時執行
  • @monthly:每月執行


底下舉幾個範例:
0 4 * * * your-cmd :每天四點執行 your-cmd
0 */2 * * * your-cmd :每隔兩個小時執行
@daily  your-cmd :每天執行
0 3,5 * * * your-cmd :每天 3點,5點執行

若要自動刪除 7 天前的資料

1 * * * * rm date --date="-7 day" +"\%Y-\%m-\%d"*.gz

或者自動刪除 7天前 tmp 資料夾中的所有副檔名為 tgz 的檔案

1 * * * * find /tmp/ -type f -name "*.tgz" -mtime +7 -exec rm -rf {} \;



================================
分享與讚美,是我們繼續打拼的原動力.
若文章對您有幫助,望請不吝按讚或分享.
或者對影片有興趣可以訂閱頻道接收通知
================================
YouTube 頻道
FB 粉絲專頁
================================

guangyaw

重點主題: 程式設計: Python , Django,Android 工具與軟體: Open edX,Linux工具,Blender教學 分享各地美景與產品使用心得,遊戲實況,甚至影視戲劇等, 您的訂閱就是頻道成長的原動力。 YouTube 頻道: https://youtube.com/xyawli

You may also like...

發表迴響