那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux如何使用cron進行定時任務的操作

jf_78858299 ? 來源:運維漫談 ? 作者:運維漫談 ? 2023-05-12 16:27 ? 次閱讀

按計劃執行命令對于計算機來說非常重要,因為假如我親自去執行一些任務的話,可能會因為多方面因素不能按時執行,所以定時任務就顯得非常重要了!

cron就是一個能夠執行定時任務的命令,其實該命令本身不難,下面小編帶您詳細了解!

什么是 cron?

cron命令在 Linux 和 Unix 中無處不在,并且經常被模仿和重新發明,以至于它幾乎是定時任務的通用術語,它是一種自動化形式,盡管它有不同的實現,比如Dillon 的 cron、Vixie 的 cron、chrony,以及類似systemd timersanacron和systemd timers 的變體,但幾十年來,語法和工作流程基本保持不變。

在 Linux 系統上,目錄/var/spool被設計為用戶不打算直接與之交互的重要但低級文件的中心樞紐,管理的線軸之一/var/spool是cron表或簡稱“crontab”,Linux 系統上的每個用戶都有一個 crontab,用戶可以編輯、查看和刪除他們自己的 crontab,此外,用戶可以使用他們的 crontab 來安排任務。

編輯定時設置

您可以使用crontab命令以及-e(用于編輯)參數來編輯您的 crontab ,默認情況下,大多數系統調用vim文本編輯器。

如果你像我一樣不使用 Vim,那么你可以在你的~/.bashrc文件中為自己設置一個不同的編輯器,我將我的設置為 Emacs,但您也可以嘗試Nano、Kate或任何您最喜歡的編輯器,該EDITOR環境變量定義你在終端使用的文本編輯器,而VISUAL你在圖形模式下使用什么編輯變量定義:

export EDITOR=nano
export VISUAL=kate

使用新設置刷新 shell 會話:

$ source ~/.bashrc

現在您可以使用您喜歡的編輯器編輯您的 crontab:

$ crontab -e

安排任務

cron命令本質上是一個日歷命令,可以cron通過使用五個不同的屬性來判斷您希望作業運行的頻率:分鐘minute、小時hour、日期date、月份month、工作日weekday。

這些屬性的順序是嚴格的,不一定直觀,但可以將它們視為過濾器或掩碼,默認情況下,您可能會認為所有內容都設置為always或every。

下面的例子將touch /tmp/hello,在全年每一天的每一小時的每一分鐘的運行:

* * * * * touch /tmp/hello

您可以通過為每個屬性設置特定定義來限制這個包羅萬象的計劃,每半小時執行任務:

30 * * * * touch /tmp/hello

您可以使用特定的時間進一步限制此命令,以下任務在每天凌晨 3:30 運行:

30 3 * * * touch /tmp/hello

定時任務僅在每個月的第一天運行:

30 3 1 * * touch /tmp/hello

可以使用 1 為 1 月設置月份,最高為 12 月設置月份,可以使用 0 設置星期日,6 設置星期六,定時任務在 4 月份的 3:15 運行,僅在星期一:

15 3 * 4 1 touch /tmp/hello

設置增量

所有這些設置都與一個值完全匹配,您還可以使用cron表示法在一段時間后運行作業,例如,每 15 分鐘運行一次定時任務:

*/15 * * * * touch /tmp/hello

每三天在上午 10 點運行定時任務:

* 10 */3 * * touch /tmp/hello

每六個小時運行定時任務:

* */6 * * * touch /tmp/hello

Cron 簡寫

現代cron實現為通用計劃添加了方便的速記,這些是:

  • @hourly
  • @daily
  • @weekly
  • @monthly
  • @yearly or @annually

列出 cron 任務

使用crontab命令,可以查看計劃cron任務的列表:

$ crontab -l
15 3 * 4 1 touch /tmp/hello

刪除 crontab

完成 crontab 后,可以使用以下-r選項將其刪除:

$ crontab -r -i

該-i參數代表交互式,在刪除文件之前,它會提示您進行確認。

cron 可以做什么

cron經典用法就是對服務器資源的備份,如果您的計算機在一天中的大部分時間或整日整夜都處于開機狀態,那么您可以安排對重要分區進行例行備份,我rdiff-backup每天凌晨 3 點在我的主數據分區上運行一個備份應用程序:

$ crontab -l | grep rdiff
* 3 * * * rdiff-backup /data/ /vault/

另一個常見用途是系統維護,在我的 Slackware 桌面上,我每周五下午更新我的本地存儲庫目錄:

$ crontab -l | grep slack
* 14 * * 5 sudo slackpkg update

我還可以每三天在 15:00 運行一個 Ansible 腳本來整理我的下載文件夾:

$ crontab -l | grep ansible
* 15 */ 3 * * ansible-playbook / home / seth / Ansible / cleanup.yaml

對計算環境的健康進行少量投資會大有幫助,有重復數據刪除腳本、文件大小和/tmp目錄監視器、照片調整器、文件移動器,以及許多您可以安排在后臺運行的瑣碎任務,以幫助保持系統整潔。

記住 cron 設置

除了想出你為什么需要之外cron,根據cron我的經驗,最困難的事情就是記住它的語法,對自己重復這個,一遍又一遍,直到你記住它:

Minutes, hours, date, month, weekday.

Minutes, hours, date, month, weekday.

Minutes, hours, date, month, weekday.
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210387
  • UNIX
    +關注

    關注

    0

    文章

    296

    瀏覽量

    41574
  • 編輯器
    +關注

    關注

    1

    文章

    806

    瀏覽量

    31290
收藏 人收藏

    評論

    相關推薦

    Linux系統定時任務Crond

    Crond是linux系統中用來定期執行命令/腳本或指定程序任務的一種服務或軟件,一般情況下,我們安裝完Centos5/6 linux操作系統之后,默認便會啟動Crond
    發表于 07-05 06:22

    linux的循環定時任務

    linux循環定時任務
    發表于 05-20 14:59

    嵌入式linux是如何去實現定時任務

    嵌入式linux用倒計時是方式代替定時任務測試過程中,嵌入式linux ,是因為使用的系統默認使用ash進行編譯shell腳本,導致無法正常編譯。service crond statu
    發表于 11-05 06:04

    busybox用crontab/crond在嵌入式系統中添加定時任務的方法

    busybox 用crontab、crond在嵌入式系統中添加定時任務:參考文檔:在嵌入式系統中,定時任務通過crond和cronttab兩個系統命令來聯合執行。其中crond是定時任務的守護進程
    發表于 12-14 06:40

    Linux操作系統定時任務系統Cron入門分析

    分享到: cron是一個linux下的定時執行工具,可以在無需人工干預的情況下運行作業。由于CronLinux的內置服務,但它不自動起來
    發表于 11-07 10:12 ?0次下載

    PHP簡單實現不依賴于Unix系統Cron定時任務程序資料說明

    本文檔的主要內容詳細介紹的是PHP簡單實現不依賴于Unix系統Cron定時任務程序資料說明。
    發表于 03-01 16:52 ?2次下載
    PHP簡單實現不依賴于Unix系統<b class='flag-5'>Cron</b>的<b class='flag-5'>定時任務</b>程序資料說明

    linux定時任務如何判斷文件差異?

    設計每10min執行任務檢查/app/recode文件大小,該文件不會超過4MB,超過此大小則壓縮處理,僅保留最近的日志內容。立馬著手檢查linux定時任務cron運行情況。 2. 初
    的頭像 發表于 03-17 10:05 ?1477次閱讀

    Python定時任務的實現方式

    在日常工作中,我們常常會用到需要周期性執行的任務,一種方式是采用 Linux 系統自帶的 crond 結合命令行實現。另外一種方式是直接使用Python。接下來整理的是常見的Python定時任務
    的頭像 發表于 10-08 15:20 ?6333次閱讀

    嵌入式linux 用倒計時的方式代替定時任務

    嵌入式linux 用倒計時是方式代替定時任務測試過程中,嵌入式linux ,是因為使用的系統默認使用ash進行編譯shell腳本,導致無法正常編譯。service crond sta
    發表于 11-02 15:06 ?13次下載
    嵌入式<b class='flag-5'>linux</b>  用倒計時的方式代替<b class='flag-5'>定時任務</b>

    如何在SpringBoot項目中實現動態定時任務

    之前寫過文章記錄怎么在SpringBoot項目中簡單使用定時任務,不過由于要借助cron表達式且都提前定義好放在配置文件里,不能在項目運行中動態修改任務執行時間,實在不太靈活。
    的頭像 發表于 09-30 11:16 ?1842次閱讀

    解析Golang定時任務庫gron設計和原理

    正巧,最近看到了 gron 這個開源項目,它是用 Golang 實現一個并發安全的定時任務庫。實現非常簡單精巧,代碼量也不多。今天我們就來一起結合源碼看一下,怎樣基于 Golang 的能力做出來一個【定時任務庫】。
    的頭像 發表于 12-15 13:57 ?1384次閱讀

    定時任務cron的教學

    格式 {秒數} {分鐘} {小時} {日期} {月份} {星期} {年份(可為空)} 用法 "30 * * * * ? " 每半分鐘觸發任務 "30 10 * * * ? " 每小時的10分30秒
    的頭像 發表于 01-13 15:18 ?1347次閱讀

    求一種SpringBoot定時任務動態管理通用解決方案

    SpringBoot的定時任務的加強工具,實現對SpringBoot原生的定時任務進行動態管理,完全兼容原生@Scheduled注解,無需對原本的定時任務
    的頭像 發表于 02-03 09:49 ?822次閱讀

    python定時任務實踐

    由于程序需求,監測配置變化需要設置定時任務,每分鐘執行一次,對任務持久化要求不高,不需要時可以關閉定時任務
    的頭像 發表于 05-20 17:53 ?1006次閱讀
    python<b class='flag-5'>定時任務</b>實踐

    linux定時任務的用法總結

    習慣了使用 windows 的計劃任務,使用 linux 中的 crontab 管理定時任務時很不適應。
    的頭像 發表于 08-14 18:16 ?903次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>定時任務</b>的用法總結
    游艇会百家乐的玩法技巧和规则 | 彩会百家乐官网游戏| 真博国际| 大发888爱好| 威尼斯人娱乐城老品牌值得信赖| 百家乐平玩法可以吗| 百家乐特殊计| 郑州市太阳城宾馆| 百家乐园蒙特卡罗| 永利高现金网| 网上赌博网址| 五湖四海娱乐城| 合作市| 老虎机遥控器| 兰西县| 波音百家乐官网游戏| 百家乐官网分析仪博彩正网| 百家乐官网珠仔路| 最新百家乐官网的玩法技巧和规则 | 新澳门百家乐官网娱乐城| 有破解百家乐官网仪器| 澳门百家乐官网赌场娱乐网规则| 百家乐官网光纤冼牌机| 百家乐高档筹码| 贝博百家乐的玩法技巧和规则 | 百家乐群11889| 全讯网直播| 皇冠娱乐网| 百家乐官网信誉平台开户| 澳门百家乐官网赌| 百家乐的玩法视频| 百家乐桌手机套| 大发娱乐| 百家乐官网分析下载| 免费百家乐官网统计| 免费百家乐缩水工具| 百家乐官网信用哪个好| 20人百家乐官网桌| 全讯网百家乐的玩法技巧和规则| 大发娱乐场官方下载| E乐博百家乐官网现金网|