在 Linux 中安全且輕鬆地管理 Cron 定時任務
在 Linux 中遇到計劃任務的時候,你首先會想到的大概就是 Cron 定時任務了。Cron 定時任務能幫助你在類 Unix 作業系統中計劃性地執行命令或者任務。也可以參考一下我們之前的一篇《關於 Cron 定時任務的新手指導》。對於有一定 Linux 經驗的人來說,設定 Cron 定時任務不是什麼難事,但對於新手來說就不一定了,他們在編輯 crontab 檔案的時候不知不覺中犯的一些小錯誤,也有可能把整個 Cron 定時任務搞掛了。如果你在處理 Cron 定時任務的時候為了以防萬一,可以嘗試使用 Crontab UI,它是一個可以在類 Unix 作業系統上安全輕鬆管理 Cron 定時任務的 Web 頁面工具。
Crontab UI 是使用 NodeJS 編寫的自由開源軟體。有了 Crontab UI,你在建立、刪除和修改 Cron 定時任務的時候就不需要手工編輯 Crontab 檔案了,只需要開啟瀏覽器稍微操作一下,就能完成上面這些工作。你可以用 Crontab UI 輕鬆建立、編輯、暫停、刪除、備份 Cron 定時任務,甚至還可以簡單地做到匯入、匯出、部署其它機器上的 Cron 定時任務,它還支援錯誤日誌、郵件傳送和鉤子。
安裝 Crontab UI
只需要一條命令就可以安裝好 Crontab UI,但前提是已經安裝好 NPM。如果還沒有安裝 NPM,可以參考《如何在 Linux 上安裝 NodeJS》這篇文章。
執行這一條命令來安裝 Crontab UI。
$ npm install -g crontab-ui
就是這麼簡單,下面繼續來看看在 Crontab UI 上如何管理 Cron 定時任務。
在 Linux 上安全輕鬆管理 Cron 定時任務
執行這一條命令啟動 Crontab UI:
$ crontab-ui
你會看到這樣的輸出:
Node version: 10.8.0
Crontab UI is running at http://127.0.0.1:8000
首先在你的防火牆和路由器上放開 8000 埠,然後開啟瀏覽器訪問 <http://127.0.0.1:8000>
。
注意,預設只有在本地才能訪問到 Crontab UI 的控制檯頁面。但如果你想讓 Crontab UI 使用系統的 IP 地址和自定義埠,也就是想讓其它機器也訪問到本地的 Crontab UI,你需要使用以下這個命令:
$ HOST=0.0.0.0 PORT=9000 crontab-ui
Node version: 10.8.0
Crontab UI is running at http://0.0.0.0:9000
Crontab UI 就能夠透過 <http://IP-Address>:9000
這樣的 URL 被遠端機器訪問到了。
Crontab UI 的控制檯頁面長這樣:
從上面的截圖就可以看到,Crontab UI 的介面非常簡潔,所有選項的含義都能不言自明。
在終端輸入 Ctrl + C
就可以關閉 Crontab UI。
建立、編輯、執行、停止、刪除 Cron 定時任務
點選 “New”,輸入 Cron 定時任務的資訊並點選 “Save” 儲存,就可以建立一個新的 Cron 定時任務了。
- 為 Cron 定時任務命名,這是可選的;
- 你想要執行的完整命令;
- 設定計劃執行的時間。你可以按照啟動、每時、每日、每週、每月、每年這些指標快速指定計劃任務,也可以明確指定任務執行的具體時間。指定好計劃時間後,“Jobs” 區域就會顯示 Cron 定時任務的句式。
- 選擇是否為某個 Cron 定時任務記錄錯誤日誌。
這是我的一個 Cron 定時任務樣例。
如你所見,我設定了一個每月清理 pacman
快取的 Cron 定時任務。你也可以設定多個 Cron 定時任務,都能在控制檯頁面看到。
如果你需要更改 Cron 定時任務中的某些引數,只需要點選 “Edit” 按鈕並按照你的需求更改對應的引數。點選 “Run” 按鈕可以立即執行 Cron 定時任務,點選 “Stop” 則可以立即停止 Cron 定時任務。如果想要檢視某個 Cron 定時任務的詳細日誌,可以點選 “Log” 按鈕。對於不再需要的 Cron 定時任務,就可以按 “Delete” 按鈕刪除。
備份 Cron 定時任務
點選控制檯頁面的 “Backup” 按鈕並確認,就可以備份所有 Cron 定時任務。
備份之後,一旦 Crontab 檔案出現了錯誤,就可以使用備份來恢復了。
匯入/匯出其它機器上的 Cron 定時任務
Crontab UI 還有一個令人注目的功能,就是匯入、匯出、部署其它機器上的 Cron 定時任務。如果同一個網路裡的多臺機器都需要執行同樣的 Cron 定時任務,只需要點選 “Export” 按鈕並選擇檔案的儲存路徑,所有的 Cron 定時任務都會匯出到 crontab.db
檔案中。
以下是 crontab.db
檔案的內容:
$ cat Downloads/crontab.db
{"name":"Remove Pacman Cache","command":"rm -rf /var/cache/pacman","schedule":"@monthly","stopped":false,"timestamp":"Thu Aug 23 2018 10:34:19 GMT+0000 (Coordinated Universal Time)","logging":"true","mailing":{},"created":1535020459093,"_id":"lcVc1nSdaceqS1ut"}
匯出成檔案以後,你就可以把這個 crontab.db
檔案放置到其它機器上並匯入成 Cron 定時任務,而不需要在每一臺主機上手動設定 Cron 定時任務。總之,在一臺機器上設定完,匯出,再匯入到其他機器,就完事了。
在 Crontab 檔案獲取/儲存 Cron 定時任務
你可能在使用 Crontab UI 之前就已經使用 crontab
命令建立過 Cron 定時任務。如果是這樣,你可以點選控制檯頁面上的 “Get from crontab” 按鈕來獲取已有的 Cron 定時任務。
同樣地,你也可以使用 Crontab UI 來將新的 Cron 定時任務儲存到 Crontab 檔案中,只需要點選 “Save to crontab” 按鈕就可以了。
管理 Cron 定時任務並沒有想象中那麼難,即使是新手使用 Crontab UI 也能輕鬆管理 Cron 定時任務。趕快開始嘗試並發表一下你的看法吧。
via: https://www.ostechnix.com/how-to-easily-and-safely-manage-cron-jobs-in-linux/
相關文章
- linux定時任務cron配置Linux
- 排查linux 定時任務cron crontabLinux
- Golang——Cron 定時任務Golang
- Linux/UNIX 定時任務 cron 詳解Linux
- openshift 新增cron定時任務
- 使用Spring Task輕鬆完成定時任務Spring
- Linux定時任務系統 Cron 入門(轉)Linux
- Laravel Cron 定時任務 “跳坑” 點Laravel
- 使用Spring整合Quartz輕鬆完成定時任務Springquartz
- 在 Linux 中怎麼使用 cron 計劃任務Linux
- 如何使用 cron 任務在 Linux 中計劃和自動化任務Linux
- GO的定時器Timer 和定時任務cronGo定時器
- Linux 中怎麼設定計劃任務:cron 與 anacronLinux
- Linux作業系統定時任務系統 Cron 入門Linux作業系統
- 定時任務管理
- Linux系統中延時任務及定時任務Linux
- java 定時任務 quartz 時間表示式Cron總結Javaquartz
- 使用 Cron4j 表示式 在 Solon 裡開發定時任務
- crontab命令簡介 linux定時設定 Cron實現自動任務 (轉)Linux
- 如何使用cron任務每隔2天在固定時間執行任務
- Linux系統管理之定時任務Linux
- ubuntu上使用cron執行定時任務計劃Ubuntu
- 【親測有效】【定時】定時任務 @Scheduled(cron = "0 0 21 * * ?") 【Scheduled失效】
- 輕鬆搞定專案管理軟體、分配任務專案管理
- Linux | 定時任務Linux
- Linux 定時任務Linux
- Linux at 定時任務Linux
- Linux定時任務Linux
- 擺脫定時任務的cron表示式的困擾
- Linux中如何實現定時任務Linux
- 定時任務管理系統
- Quartz 定時任務管理類quartz
- Laravel使用command在Linux系統中跑定時任務LaravelLinux
- Linux crontab 定時任務Linux
- Linux 定時任務(crontab)Linux
- LINUX 定時任務命令Linux
- Linux - crontab(定時任務)Linux
- 如何在Linux中加入cron任務Linux