<del id="nnjnj"></del><track id="nnjnj"></track>

<p id="nnjnj"></p>

<address id="nnjnj"></address>

    <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

      <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>

      • 自動秒收錄
      • 軟件:1973
      • 資訊:57811|
      • 收錄網站:279872|

      IT精英團

      Linux預定任務調度(crontab) 好實用!

      Linux預定任務調度(crontab) 好實用!

      瀏覽次數:
      評論次數:
      編輯: 溫瑜
      信息來源: ITPUB
      更新日期: 2022-05-18 20:56:34
      摘要

      概述crontab命令用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執行??梢允褂胏rontab定時處理離線任務,比如每天凌晨2點更新數

      • 正文開始
      • 相關閱讀
      • 推薦作品

      概述

      Crontab命令用于設置定期執行的指令。該命令從標準輸入設備中讀取指令,并將其存儲在“crontab”文件中,供以后讀取和執行。

      Crontab可以用來定時處理離線任務,比如每天凌晨2點更新數據,經常用于系統任務調度。

      服務啟動和關閉

      一般情況下,crontab安裝在Linux系統中。如果尚未安裝,您可以使用軟件包管理工具進行安裝:

      #vixie-cron軟件包是cron的主程序。

      yum-yinstallvixie-cron

      yum-yinstallcrontabs

      crontab服務的啟動和關閉命令如下:

      Servicecrondstart#啟動服務

      Servicecronstop #關閉服務。

      Servicecronstart #重新啟動服務

      Servicecronload #重新加載配置

      Servicecronstatus #查看crontab服務狀態

      #您可以使用以下命令來加入引導。

      chkconfig - level345crondon

      任務調度全局配置

      Crontab全局任務計劃在以下目錄中配置:

      cron.d/

      cron.daily/

      克隆否認

      cron.hourly/

      cron.monthly/

      例行性工作排程

      cron.weekly/

      Cron.daily是一個每天執行一次的作業。

      Cron.weekly是每周執行一次的作業。

      Cron.monthly是每月執行一次的作業。

      Cron.hourly是一個每小時執行一次的作業。

      Cron.d是系統需要自動定期做的任務。

      Crontab是計劃任務的執行文件。

      cron.deny文件用于控制不允許哪些用戶使用Crontab。

      用戶配置文件

      每個用戶都有自己的crontab配置文件,可以使用crontab -e命令進行編輯。保存后系統會自動存儲在/var/spool/cron/目錄下,文件會以用戶名命名。

      linux的crontab服務每隔一分鐘讀取/var/spool/cron、/etc/crontab、/etc/cron.d下的所有內容。另外,我整理了Linux系列的面試問答,關注微信官方賬號Java技術棧,回復:面試,可以。

      在線閱讀。

      crontab命令一覽:

      • crontab -e: 編輯當前用戶的定時任務列表
      • crontab -l: 查看當前用戶的定時任務列表
      • crontab -r: 刪除當前用戶的定時任務列表

      crontab定時任務格式

      crontab每一條記錄為一個定時任務,定時人遵循相應的定義規則。

      其中前面的6個星號表示的含義如下:

      • minute:表示分鐘,可以是從0到59之間的任何整數。
      • hour:表示小時,可以是從0到23之間的任何整數。
      • day:表示日期,可以是從1到31之間的任何整數。
      • month:表示月份,可以是從1到12之間的任何整數。
      • week:表示星期幾,可以是從0到7之間的任何整數,這里的0或7代表星期日。
      • command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。

      每一個星號部分可用下面的特殊符號:

      • 星號(*):通配符匹配,代表所有可能的值。
      • 逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”。
      • 中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”。
      • 正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鐘執行一次。

      crontab定時任務實例

      時間頻次示例

      下面列舉常用的時間頻次示例。

      • 00 05 * * * : 每天凌晨5點執行
      • 20 12 1,10,20 * * : 每個月的1號,10號,20號的12:30執行
      • 10 1 * * 6,0 : 表示每周六、周日的1:10分執行
      • 0,30 18-23 * * * : 每天18:00至23:00之間每隔30分鐘執行
      • 0 23-7/1 * * * : 晚上11點到早上7點之間,每隔一小時執行
      • 0 6-12/3 * 10 * : 每年10月的每天早上6點到12點每隔3個小時執行一次
      • 30 17 * * 1-5 : 周一到周五下午5點30分執行一次
      • 0 */2 * * * :每兩個小時執行一次

      比如我們需要每天23點58分的時候執行一個更新數據的shell腳本,可以用crontab -e命令在最后添加一行:

      58 23 * * * sh /home/work/update.sh

      輸入輸出重定向

      在上面更新數據定時任務的實例中,如果執行update.sh的時候有錯誤信息輸出,會輸出到哪兒呢?

      在沒有配置輸出重定向的時候,定時任務會見錯誤輸出到下面的文件:/var/log/mail/{$user},這是很不好的,我們往往需要把不同的腳本輸出到不同的日志文件,方便查看腳本的執行情況,這個時候需要使用輸出重定向。

      58 23 * * * sh /home/work/update.sh >> /home/work/log/update.log 2>&1

      Linux中使用0-3作為文件描述符來表示標準流。

      名稱類型文件描述符操作
      stdin 標準輸入standard input<,<<
      stdout 標準輸出standard output1>,>>
      stderr 標準錯誤輸出standard error output22>,2>>

      在上面的定時任務腳本中,update.sh后面的>>表示將輸出追加到update.log文件中,2>&1表示標準錯誤輸出重定向等同于標準輸出。

      推薦閱讀:Linux 知識大全。

      忽略輸入nohup

      有時候我們還會看到在定時任務腳本前面有一個nohup的命令,該命令用于指定后面的腳本忽略輸入。

      58 23 * * * nohup sh /home/work/update.sh >> /home/work/log/update.log 2>&1

      后臺執行&

      無論是在控制臺直接執行,還是在定時任務腳本中,我們在某一條命令的最后面加上&符號,表示當前命令在后臺運行,不占用控制臺。

      58 23 * * * nohup sh /home/work/update.sh >> /home/work/log/update.log 2>&1 &

      這里需要注意,如果執行的命令有等待輸入的交互,把這個命令使用&放在后臺運行時,它會一直等待輸入,但是有沒有輸入,就卡住不動了。

      時間處理

      再回顧上面的更新任務,它是將每一天的運行結果都重定向到update.log文件,如果輸出比較多,我們就需要每一天輸出的不同的文件,可以通過在輸出目錄中指定日期用來分割。如下:

      58 23 * * * nohup sh /home/work/update.sh >> /home/work/log/`update_"date +\%Y\%m\%d".log` 2>&1 &

      # 或者下面的形式
      58 23 * * * nohup sh /home/work/update.sh >> "/home/work/log/update_"date +\%Y\%m\%d".log" 2>&1 &

      這里使用date函數,需要注意的是,crontab里面的腳本命令和直接在命令行運行的腳本可能是不一樣的,尤其是date函數中的%需要轉義。

      可以直接在命令行運行下面命令:

      sh /home/work/update.sh >> /home/work/log/update_`date +"%Y%m%d".log` 2>&1 &

      達到和定時任務里面相同的效果,都是輸出到update_20201120.log的文件。

      但是如果直接在crontab中這樣配置,則無法識別,不會執行該定時任務。下面的crontab任務是不會執行的,date函數將會報錯。

      58 23 * * * nohup sh /home/work/update.sh >> /home/work/log/`update_"date +%Y%m%d".log` 2>&1 &

      標簽:任務 命令 表示
      3種方式!轉到錯誤處理最佳實踐
      ? 上一篇 2022-05-18
      提高Java字符串編碼和解碼性能的技巧
      下一篇 ? 2022-05-18
      • 如何在Ubuntu中保留文件系統并備份當前開發板鏡像
        0閱讀 0條評論 個贊
        在Ubuntu保留文件系統或者說備份當前開發板鏡像的需求在不斷增加。比如Ubuntu文件系統需要安裝庫文件的話直接使用apt-get工具就可以下載,但由于需要下載的核心板較多,比較費時間,這時需要將安……
      • 國產核心板全志T507助力消防系統升級
        0閱讀 0條評論 個贊
        9月16日下午,位于湖南長沙市區內的中國電信大樓發生火災,建筑高度218米,現場濃煙滾滾,數十層樓體燃燒劇烈。消防救援人員趕到現場后很快將火勢控制住,目前大樓火勢已被撲滅,所幸未發現人員傷亡。湖南電信……
      • 教大家如何處理Spring Boot易流中的用戶和群體!
        0閱讀 0條評論 個贊
        1.準備工作2.用戶操作2.1添加用戶2.2修改用戶2.3刪除用戶2.4查詢用戶3.組操作3.1添加組3.2修改組3.3刪除組3.4查詢組4.查看表詳情雖然說我們在實際開發中,……
      • 從PG15開始WAL壓縮優化
        0閱讀 0條評論 個贊
        PG15傳聞中的超級令人激動的功能大多數跳票了,年初我也寫過一個關于PG15新功能跳票的文章。PG15BETA已經發出幾個月了,似乎PG15里令人激動人心的功能不多,不過從長長的新功能列表里,……
      • 深入了解美團葉子發射器開源方案
        0閱讀 0條評論 個贊
        大家好,我是樹哥。之前我們有聊過「如何設計一個分布式ID發號器」,其中有講過4種解決方案,分別是:UUID類雪花算法數據庫自增主鍵Redis原子自增美團以第2、3種解決方案為基礎,開發出……
      發表評論 共有條評論
      用戶名: 密碼:
      驗證碼: 匿名發表
      • 卡夫卡數據丟失問題優化總結及重復消費原因分析(一)
        0閱讀 0條評論 個贊
        .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
      • 訂單超時案例的RabbitMQ實現
        0閱讀 0條評論 個贊
        前言#人間清醒目錄前言業務場景JUC(DelayQueue)方案DelayQueue簡介JUCDelayQueue實現訂單超時案例代碼案例代碼RedisKey過期事件方案簡介RabbitKey……
      • 談談我是如何學習SQL Server的
        0閱讀 0條評論 個贊
        談談我是如何學習SQLServer的相信很多人都想做大牛,但是你們知道這些大牛是怎樣煉成的嗎?我的一個同事做了差不多10年的.NET開發,算得上是大牛了吧?如果他遇到他熟悉的項目很快就能手到拿來,立……
      • Sql Server系列:分區表操作
        0閱讀 0條評論 個贊
        1.分區表簡介分區表在邏輯上是一個表,而物理上是多個表。從用戶角度來看,分區表和普通表是一樣的。使用分區表的主要目的是為改善大型表以及具有多個訪問模式的表的可伸縮性和可管理性。分區表是把數據……
      • spring MVC(II)——請求處理參數和響應數據處理
        0閱讀 0條評論 個贊
        1、請求處理參數1.1請求參數@RequestParam1.1.1不使用@RequestParam注解請求參數處理,不使用參數注解:1.如果請求參數名和請求處理的形參名一致,springMv……
      • 卡夫卡詳解(一)——卡夫卡是什么 怎么用
        0閱讀 0條評論 個贊
        kafka是什么在回答這個問題之前,我們需要先了解另一個東西--eventstreaming。什么是eventstreaming我覺得,eventstreaming是一個動態的概念,它描述了一……
      • SQL Server批量完整備份
        0閱讀 0條評論 個贊
        一.本文所涉及的內容(Contents)本文所涉及的內容(Contents)背景(Contexts)實現代碼(SQLCodes)實現方式一(One)實現方式二(Two)實現方式三(Three)參考文……
      • 多線程技術的歷史發展和簡單使用
        0閱讀 0條評論 個贊
        進程與線程進程是應用的執行實例,可狹義理解為一個應用程序就是一個進程。啟用一個應用程序時就是啟動了一個進程。該應用運行所需的所有地址空間,代碼,數據及系統資源都屬于此進程。進程所使用的所有資源會在進程……
      • 面試官:談談你對mysql事務的認識?
        0閱讀 0條評論 個贊
        引言今天回頭繼續講講數據庫系列的文章。這篇文章屬于mysql數據庫系列,我們來談談事務方面的常見面試題。那么,具體題目有下面這些:1、講講為什么用事務?事務的四大特性?事務的隔離級別知道吧,你們生產……
      • 如何獲取Yarn和Spark UI的界面索引信息
        1閱讀 0條評論 個贊
        .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
      • Java開源數據庫引擎 數據庫計算封閉的一站式解決方案
        0閱讀 0條評論 個贊
        目錄前言引入一、數據庫封閉性帶來的問題?問題1:ETL變成ELT甚至LETETL:ELT:問題2:中間表帶來的資源消耗和耦合問題3:多樣性數據源問題4:存儲過程帶來的安全和耦合問題問題5:大……
      • 如何不寫YAML來管理Kubernetes應用程序?
        2閱讀 0條評論 個贊
        Kubernetes將自身邊界內的事物都抽象為資源。其中的主要部分,是以Deployment、StatefulSet為代表的workload工作負載控制器,其他各類資源都圍繞這些主要的資源工……
      • 新零售SaaS架構:商品系統架構設計
        0閱讀 0條評論 個贊
        SaaS產品就像一座冰山,冰山以上的部分是功能、數據(可見部分)、用戶界面,冰山以下是系統架構、完整的數據模型、開放體系、非功能性需求(擴展性、可維護性、性能、安全等)。短期內想要快速上線產品,可能只……
      • 平均負載和CPU利用率有什么區別?
        2閱讀 0條評論 個贊
        大家好,我是樹哥。在性能優化中,我們經常會關注CPU平均負載這個指標。但如果讓你來跟我解釋一下什么是平均負載,你能說得清楚嗎?它跟CPU使用率有什么區別?我想可能很多人都數不清楚,今天我們就來……
      • 記錄在線超時的分析和故障排除過程
        0閱讀 0條評論 個贊
        .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
      • 一個沒有寫代碼的案例 讓我們看看Flowable為我們提供了哪些功能
        3閱讀 0條評論 個贊
        其實松哥之前已經寫過文章和大家介紹了flowable-ui的玩法了,這是官方提供的一個工具,這個工具不僅可以用來繪制流程圖,還可以用來部署一個流程應用,通過這個流程應用我們可以體驗一把flowa……
      • k8s網絡持久存儲的StorageClass(如何一步步實現動態持久存儲)
        0閱讀 0條評論 個贊
        StorageClass的作用:創建pv時,先要創建各種固定大小的PV,而這些PV都是手動創建的,當業務量上來時,需要創建很多的PV,過程非常麻煩。而且開發人員在申請PVC資源時,還不一定有匹配條件的……
      • 淺談SQL Server中統計對查詢的影響
        4閱讀 0條評論 個贊
        簡介SQLServer查詢分析器是基于開銷的。通常來講,查詢分析器會根據謂詞來確定該如何選擇高效的查詢路線,比如該選擇哪個索引。而每次查詢分析器尋找路徑時,并不會每一次都去統計索引中包含的行數,值……
      • 如何保持Mysql和Redis數據一致
        0閱讀 0條評論 個贊
        先闡明一下Mysql和Redis的關系:Mysql是數據庫,用來持久化數據,一定程度上保證數據的可靠性;Redis是用來當緩存,用來提升數據訪問的性能。關于如何保證Mysql和Redis中的數據一致(……
      • Java接口自動測試框架系列(1)自動測試框架
        0閱讀 0條評論 個贊
        一、什么是自動化測試自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例并通過評審之后,由測試人員根據測試用例一步步執行測試,得到實際結果與期望結果的比較。為了節省人力、……
      最近發布資訊
      更多
      警花高潮嗷嗷叫
      <del id="nnjnj"></del><track id="nnjnj"></track>

      <p id="nnjnj"></p>

      <address id="nnjnj"></address>

        <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

          <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>