crontab定時任務

来源:http://www.cnblogs.com/supernalsnow/archive/2016/06/16/5590293.html
-Advertisement-
Play Games

1,crontab簡介 crontab命令常見於Unix和Linux的操作系統之中,用於設置周期性被執行的指令。該命令從標準輸入設備讀取指令,並將其存放於“crontab”文件中,以供之後讀取和執行。通常,crontab儲存的指令被守護進程激活。crond 常常在後臺運行,每一分鐘檢查是否有預定的作 ...


1,crontab簡介

  crontab命令常見於Unix和Linux的操作系統之中,用於設置周期性被執行的指令。該命令從標準輸入設備讀取指令,並將其存放於“crontab”文件中,以供之後讀取和執行。通常,crontab儲存的指令被守護進程激活。crond 常常在後臺運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。

  所有用戶定義的crontab 文件都被保存在/var/spool/cron目錄中,其文件名與用戶名一致。

  使用控制文件如下:

    黑名單:/etc/cron.deny  該文件中所列用戶不允許使用crontab命令

    白名單:/etc/cron.allow  該文件中所列用戶允許使用crontab命令

  Ubuntu下預設沒有這兩個文件,一般也不用,預設所有用戶均可使用crontab命令。這兩個使用控制文件的格式都是每行一個用戶,兩個文件都不允許空格。如果使用控制文件被修改了,cron守護進程(crond)不必被重啟。使用控制文件在每次用戶添加或刪除一項cron任務時都會被讀取。無論使用控制文件中的規定如何,root都總是可以使用cron。如果cron.allow文件存在,只有其中列出的用戶才被允許使用 cron,並且 cron.deny 文件會被忽略。如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用戶都被禁止使用 cron。

  用戶若新增調度可以輸入crontab -e命令建立自己的crontab文件,也可以在/etc/crontab文件中添加,註意編輯許可權。

 

2,crontab任務格式

  crontab文件中,每一行都代表一項任務,每行的每個欄位代表一項設置,它的格式共分為六個欄位,前五段是時間設定段,第六段是要執行的命令段,格式如下:

  minute   hour   day   month   week   command

  其中:

minute: 表示分鐘,可以是從0到59之間的任何整數。

hour:表示小時,可以是從0到23之間的任何整數。

day:表示日期,可以是從1到31之間的任何整數。

month:表示月份,可以是從1到12之間的任何整數。

week:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。

command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。

  在以上各個欄位中,還可以使用以下特殊字元:

    星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。

    逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”

    中杠(-):可以用整數之間的中杠表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”

    正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。

 

3,cron服務

  Ubuntu系統預設安裝cron服務。CentOS需要yum install crontabs手動安裝,且服務名為crond。

  服務操作說明:

    service cron start   //啟動服務

    service cron stop   //關閉服務

    service cron restart  //重啟服務

    service cron reload    //重新載入配置

    service cron status    //查看服務狀態

  查看cron進程,執行命令:ps aux | grep cron

 

 

4,crontab命令詳解

  1)命令格式:

    crontab [-u user] file

    crontab [-u user] [ -e | -l | -r ]

  2)命令功能:

    通過crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或shell腳本。時間間隔的單位可以是分鐘、小時、日、月、周及以上的任意組合。這個命令非常設合周期性的日誌分析或數據備份等工作。

  3)命令參數:

    -u user:用來設定某個用戶的crontab服務,例如,“-u ixdba”表示設定ixdba用戶的crontab服務,此參數一般有root用戶來運行。

    file:file是命令文件的名字,表示將file做為crontab的任務列表文件並載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。

    -e:編輯某個用戶的crontab文件內容。如果不指定用戶,則表示編輯當前用戶的crontab文件。

    -l:顯示某個用戶的crontab文件內容,如果不指定用戶,則表示顯示當前用戶的crontab文件內容。

    -r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則預設刪除當前用戶的crontab文件。

    -i:在刪除用戶的crontab文件時給確認提示。

  4)應用示例:

    ①編輯crontab文件內容:crontab -e

     首次使用使用該命令會讓你選擇文本編輯器,一般選擇vim。之後也可使用select-editor更改,或者修改EDITOR環境變數,如:EDITOR=vi。

     編輯的內容格式詳見“2,crontab任務格式”,保存修改後要重啟服務來執行新增的任務,sudo service cron restart。

    ②列出crontab文件內容:crontab -l

     通常用來備份crontab,如:crontab -l > /home/mycrontab.bak

    ③刪除crontab文件:crontab -r

 

5,crontab格式實例

  實例1:每1分鐘執行一次command

  命令:* * * * * command

 

  實例2:每小時的第3和第15分鐘執行

  命令:3,15 * * * * command

 

實例3:在上午8點到11點的第3和第15分鐘執行

命令:3,15 8-11 * * * command

 

實例4:每隔兩天的上午8點到11點的第3和第15分鐘執行

命令:3,15 8-11 */2 * * command

 

實例5:每個星期一的上午8點到11點的第3和第15分鐘執行

命令:3,15 8-11 * * 1 command

 

實例6:每晚的21:30重啟smb 

命令:30 21 * * * /etc/init.d/smb restart

 

實例7:每月1、10、22日的4 : 45重啟smb 

命令:45 4 1,10,22 * * /etc/init.d/smb restart

 

實例8:每周六、周日的1 : 10重啟smb

命令:10 1 * * 6,0 /etc/init.d/smb restart

 

實例9:每天18 : 00至23 : 00之間每隔30分鐘重啟smb 

命令:0,30 18-23 * * * /etc/init.d/smb restart

 

實例10:每星期六的晚上11 : 00 pm重啟smb 

命令:0 23 * * 6 /etc/init.d/smb restart

 

實例11:每一小時重啟smb 

命令:* */1 * * * /etc/init.d/smb restart

 

實例12:晚上11點到早上7點之間,每隔一小時重啟smb 

命令:

* 23-7/1 * * * /etc/init.d/smb restart

 

實例13:每月的4號與每周一到周三的11點重啟smb 

命令:0 11 4 * mon-wed /etc/init.d/smb restart

 

實例14:一月一號的4點重啟smb 

命令:0 4 1 jan * /etc/init.d/smb restart

 

實例15:每小時執行/etc/cron.hourly目錄內的腳本

命令:01   *   *   *   *     root run-parts /etc/cron.hourly/

說明:如果去掉run-parts這個參數的話,後面就可以寫要運行的某個腳本名,而不是目錄名了

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 安裝SQL Server2016正式版 今天終於有時間安裝SQL Server2016正式版,下載那個安裝包都用了一個星期 安裝包可以從這裡下載: http://www.itellyou.cn/ https://msdn.microsoft.com/zh-cn/subscriptions/downl ...
  • 環境:SQL Server2012 SP3 企業版,開發伺服器,並沒有什麼負載,全庫索引統一Rebuild過 經反覆執行驗證過, 不算太複雜的SQL(存儲過程中代入參數摳出來的SQL代碼) 預設情況下,執行完成需要3秒鐘 非要用紅色圈中子查詢中的表(是一個相關子查詢)去驅動其他表, 添加OPTION ...
  • 1. 配置防火牆 正確配置防火牆的過濾規則,否則會造成NFS文件系統的掛載失敗,NIS賬戶認證的失敗,mpirun遠程任務實例投放的失敗。一般情況下,計算集群是在內部區域網中使用,所以可以不用太顧及安全問題,直接關閉掉所有節點伺服器的防火牆即可。 相關命令如下: 2. 配置集群區域網ip與主機名的映 ...
  • 一、nginx的簡單介紹 nginx 結構上分為3大模塊: 1.核心模塊(HTTP模塊、EVENT模塊和MAIL模塊) 2.基礎模塊(HTTP Access模塊、HTTP FastCGI模塊、HTTP Proxy模塊和HTTP Rewrite模塊) 3.第三方模塊(GI模塊、HTTP Proxy模塊 ...
  • 在OS中調度的是實質是一種資源分配。 調度演算法是指:根據系統資源分配策略所規定的資源分配演算法。對於不同的系統或系統目標,通常採用不同的調度演算法。 1.先來先服務和短作業(進程)優先調度演算法 1)先來先服務調度演算法 先來先服務(FCFS)調度演算法是一種最 簡單的調度演算法,該演算法既可用於作業調度,也可用 ...
  • 學習Linux Shell知識,就來Linux大學網(Linuxdaxue.com)! 本系列適合Linux初學者,屬於Linux入門級教程,主要介紹了Shell的分類、語法格式以及腳本的使用和編寫格式等。 不斷更新中,是Shell學習的必讀經典教程。 現主要包含以下文章: Linux Shell系 ...
  • 進程式控制制塊,英文名(Processing Control Block),簡稱 PCB 。 進程式控制制塊是系統為了管理進程設置的一個專門的數據結構,主要表示進程狀態。 每一個進程都對應一個PCB來維護進程相關的信息; 在Linux中,PCB結構為task_struct; task_struct是Linu ...
  • 近日換新機器,裝了win10,但想從舊機器訪問win10的\\ip\D$拷數據過去,首先發現怎麼也連不上win10的共用,於是把win10防火牆中“文件和印表機共用”的“專用”(即內網)勾選上終於可以連上了。 但又發現用我新建的賬號(管理員許可權)也無法訪問\\ip\D$,儘管\\ip已經可以連接上去 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...