理解 crontab 幫助處理例行性任務

更新 發佈閱讀 5 分鐘
常說,科技始終來自於人性,而懶惰就是人創造東西的動力

為了解放雙手,創造更多時間價值,這邊我們要先理解什麼是crontab,並利用crontab的設定來幫我們處理例行性任務,並延伸到 aws EventBridge 去設定定時排程,去定時執行我們的爬蟲~

什麼是crontab?

Crontab(是 cron table的縮寫)是一個用於在Unix和Unix-like操作系統上定期執行任務的工具。這些任務通常被稱為"cron jobs"。Crontab允許用戶定義計劃的任務,以便在特定的日期和時間執行,無需手動操作。

而Cron jobs的執行時間由一個稱為cron表達式的字符串來指定。這個表達式包含五個字段,分別表示分鐘、小時、日期、月份和星期幾。

22 3   *   *   sun   //Cron表達式

分 時 日期 月份 星期幾​

而在 Linux 系統上,每一位使用者都可以自訂自己的 crontab 排程工作,若要查看自己的 crontab 內容,可以使用 crontab 指令加上 -l 參數:

# 查看自己的 crontab
crontab -l

而如果要開始於本地電腦編輯排程工作,可以使用 crontab 指令加上 -e 參數,這時候就會開啟該自己crontab 內容

# 編輯 crontab 內容
crontab -e

若要刪除目前所有的 crontab,可以使用 -r 參數:

# 刪除 crontab 內容
crontab -r

本地實作練習

接下來是本地如何設定我的排程工作並執行我的python檔案,開啟命令提示字元,輸入crontab -e,會開啟自己crontab內容,並輸入 i 切換到可編輯狀態。

圖一

圖一

32 22 * * 7 cd /Users/dale/Web/python-yoga  
&& source venv/bin/activate
&& /usr/bin/python3 main.py

這邊將shell設定內容擷取出來,這邊可以設定規則是,先設定cron表達式,這邊是設定於每個禮拜天的10:32分去啟動crontab,並切換到/Users/dale/Web/python-yoga檔案位置,&&是接著執行指令,source venv/bin/activate(這段是進入我的環境變數),接下來是執行我的python檔案,解釋如下

正常我們執行python檔案寫法如下​
python3 main.py

但在crontab 寫法必須寫完整路徑,故變成以下
/usr/bin/python3 main.py​

撰寫完畢後,輸入:wq 儲存後離開,看到shell回應crontab: installing new crontab,代表設定完成!,接下來就等時間到系統就會幫我們執行拉~

AWS 如何設定排程任務?

首先到我們的lambda function 點擊Add trigger

raw-image

接下來設定我們的排程設定,這裡選擇EventBridge,進行規則的命名,每兩小時跑一次匯率排程,選擇Schedule expression ,這邊aws有兩種表達方式,一種是rate(1day) or cron(******)的方式,在aws這裡還有包括到年份也可以設定。

crontab如果時間不知道怎麼撰寫,也可以參考這個小工具連結,或是點擊cron or rate expressions 的aws文件說明,相關連結會放在底下供參考,設定完成後點擊ADD新增

raw-image

新增完畢後下方就會出現設定的trigger,這裡我們可以點藍色名稱進去

raw-image

這裡可以看到詳細的啟動時間,底下也成功顯示每兩小時啟動一次區,右邊選擇local time zone 可以看到以當地時間他在幾點幾分會執行這個trigger。

而如果是有執行特定時間的設定,且aws地區當初設定是其他國家的話(例如tokyo),則設定完會是以那個地區時間為主哦(東京跟台灣時差一小時)。

例如設定台灣的時間中午 12:00 啟動時,則crontab東京的時間設定11:00才對

raw-image


總結:結合上次的爬蟲玉山匯率,再搭配crontab的知識點,就可以組合出一個實際應用小例子,再加以設計變化,就可以作為一個小型的side project拉(自己說),最後附上爬蟲玉山文章連結,可以搭配服用哦!

python 爬蟲玉山匯率並部署到aws lambda


參考連結:

https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html

https://crontab.guru/

https://www.runoob.com/linux/linux-comm-crontab.html

https://linux.vbird.org/linux_basic/centos7/0430cron.php











留言
avatar-img
留言分享你的想法!
avatar-img
DDDDD的沙龍
15會員
37內容數
學涯無止境,透過每日or每週模仿學習筆記,不管是哪些領域也好,總有一天也可以從菜雞變小雞
DDDDD的沙龍的其他內容
2023/12/13
待業中後,發現時間變很多就開始東看看西看看,思考著要如何更深入理解Laravel框架的運用,而在Laravel框架中哪些部分是框架替我們做了哪些處理,推薦一個影片給大家一起學習理解。
Thumbnail
2023/12/13
待業中後,發現時間變很多就開始東看看西看看,思考著要如何更深入理解Laravel框架的運用,而在Laravel框架中哪些部分是框架替我們做了哪些處理,推薦一個影片給大家一起學習理解。
Thumbnail
2023/12/09
現在AI工具太多,且框架對於資安支援及處理也越來越方便,反而開始會容易忽略最底層的知識,這邊回顧MySQL的鎖,順便記錄一下找到的一些影片資源,並整理筆記
Thumbnail
2023/12/09
現在AI工具太多,且框架對於資安支援及處理也越來越方便,反而開始會容易忽略最底層的知識,這邊回顧MySQL的鎖,順便記錄一下找到的一些影片資源,並整理筆記
Thumbnail
2023/12/05
這邊主要是遇到功能需要處理時區,雖然主管給的筆記已經寫得很完美了,但覺得還是得理解吸收後並記錄自己的筆記後,好像才能有效吸收到腦袋裡
Thumbnail
2023/12/05
這邊主要是遇到功能需要處理時區,雖然主管給的筆記已經寫得很完美了,但覺得還是得理解吸收後並記錄自己的筆記後,好像才能有效吸收到腦袋裡
Thumbnail
看更多
你可能也想看
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
作者 Only 系列文章,【一天一千字,進化每一次】,談論時間管理容易讓人誤解,我們能管理時間,增加效率,但是那樣的作用並不大,我們真正能管理的是,什麼對我們來說最重要,這要回推到以終為始,你想成為什麼樣的人,就是做那樣的事!
Thumbnail
作者 Only 系列文章,【一天一千字,進化每一次】,談論時間管理容易讓人誤解,我們能管理時間,增加效率,但是那樣的作用並不大,我們真正能管理的是,什麼對我們來說最重要,這要回推到以終為始,你想成為什麼樣的人,就是做那樣的事!
Thumbnail
在日常中,常有重複性相當高的事情,不斷地重複在做,重複的事做久就會慢慢變成是一個習慣,這個習慣就會讓人下意識地完成一些事情。 習慣是一種自動化的行為模式,這些行為模式在重複進行的過程中變得固定且容易自動化。 在Python程式語言中,for迴圈就類似這種概念
Thumbnail
在日常中,常有重複性相當高的事情,不斷地重複在做,重複的事做久就會慢慢變成是一個習慣,這個習慣就會讓人下意識地完成一些事情。 習慣是一種自動化的行為模式,這些行為模式在重複進行的過程中變得固定且容易自動化。 在Python程式語言中,for迴圈就類似這種概念
Thumbnail
在試過一些管理時間APP還是無法改善拖延症之後,我開始試著最簡單的表格做到以下三件事:1. 可以指出大約什麼時間應該做什麼,但保留彈性。2. 要有一點點「做到了」、「做得好」的回饋。3. 事後可以得知每件事大約需要多少時間。用三個月後,真心覺得這幾點都可以做到,效率也提升很多。
Thumbnail
在試過一些管理時間APP還是無法改善拖延症之後,我開始試著最簡單的表格做到以下三件事:1. 可以指出大約什麼時間應該做什麼,但保留彈性。2. 要有一點點「做到了」、「做得好」的回饋。3. 事後可以得知每件事大約需要多少時間。用三個月後,真心覺得這幾點都可以做到,效率也提升很多。
Thumbnail
常說,科技始終來自於人性,而懶惰就是人創造東西的動力 為了解放雙手,創造更多時間價值,這邊我們要先理解什麼是crontab,並利用crontab的設定來幫我們處理例行性任務,並延伸到 aws EventBridge 去設定定時排程,去定時執行我們的爬蟲~
Thumbnail
常說,科技始終來自於人性,而懶惰就是人創造東西的動力 為了解放雙手,創造更多時間價值,這邊我們要先理解什麼是crontab,並利用crontab的設定來幫我們處理例行性任務,並延伸到 aws EventBridge 去設定定時排程,去定時執行我們的爬蟲~
Thumbnail
本書重點,作者列出了一個月的習慣強化計畫: Day 1:準備好你的結構改造計畫,每天花30分鐘進行 Day 2:選擇好工具 (我:Evernote),將每天的待辦事項整理在一起 Day 3:將任務具體清楚寫下 Day 4:休息日 Day 5:清楚分類待辦事項  (1) 任務屬
Thumbnail
本書重點,作者列出了一個月的習慣強化計畫: Day 1:準備好你的結構改造計畫,每天花30分鐘進行 Day 2:選擇好工具 (我:Evernote),將每天的待辦事項整理在一起 Day 3:將任務具體清楚寫下 Day 4:休息日 Day 5:清楚分類待辦事項  (1) 任務屬
Thumbnail
當身為接案工作者菜鳥的你被問到「要花多久時間才能完成?」的時候。是否不知道該如何回答、或胡亂壓個交件日期呢?有沒有被郵件與訊息提醒打亂工作步調、頻頻分心?使用計時器可以解決這些問題。 酒喵目前用的是介面簡潔、不看使用說明就能快速上手統計從個別工作項目到整個專案的計時器,Clockify。
Thumbnail
當身為接案工作者菜鳥的你被問到「要花多久時間才能完成?」的時候。是否不知道該如何回答、或胡亂壓個交件日期呢?有沒有被郵件與訊息提醒打亂工作步調、頻頻分心?使用計時器可以解決這些問題。 酒喵目前用的是介面簡潔、不看使用說明就能快速上手統計從個別工作項目到整個專案的計時器,Clockify。
Thumbnail
這本書主張配合人體的生理系統,創造適當的狀態與條件,產生每天展現高成效的(至少)兩個小時,完成真正重要的事。
Thumbnail
這本書主張配合人體的生理系統,創造適當的狀態與條件,產生每天展現高成效的(至少)兩個小時,完成真正重要的事。
Thumbnail
如我上一篇文章所提,遠距工作缺少上司、同事、辦公室隔間等外力約束,我們容易被懶惰的本性牽著走,能少做事就不會多做(可能我自己特別懶啦)。要想在缺少直接壓力的情況下,依然如期完成工作,就得確切掌握自己的節奏才行。
Thumbnail
如我上一篇文章所提,遠距工作缺少上司、同事、辦公室隔間等外力約束,我們容易被懶惰的本性牽著走,能少做事就不會多做(可能我自己特別懶啦)。要想在缺少直接壓力的情況下,依然如期完成工作,就得確切掌握自己的節奏才行。
Thumbnail
身在通訊、社交軟體發達的時代,是否常常聽到開發者各種加班類型的抱怨呢?是否因為這樣而沒時間做更多自己想做的事情?從找出原因並改善做事方法開始。
Thumbnail
身在通訊、社交軟體發達的時代,是否常常聽到開發者各種加班類型的抱怨呢?是否因為這樣而沒時間做更多自己想做的事情?從找出原因並改善做事方法開始。
Thumbnail
在工作上的效率達到極致,並不代表你在整段生命中能獲取最高的效益;「效率」這件事不是你節省了多少時間能去休息、追劇、打 Game,而是能在有限的時間內,做好比一般人更多的事情。
Thumbnail
在工作上的效率達到極致,並不代表你在整段生命中能獲取最高的效益;「效率」這件事不是你節省了多少時間能去休息、追劇、打 Game,而是能在有限的時間內,做好比一般人更多的事情。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News