工作中常用的Linux命令:crontab命令

来源:http://www.cnblogs.com/MartinChentf/archive/2016/11/14/6060252.html
-Advertisement-
Play Games

crontab是一個用來設置、刪除或顯示供守護進程cron執行的定時任務的命令。每一個用戶都可以擁有屬於自己的定時任務,定時任務文件預設以用戶名命名,並放在/var/spool/cron目錄,該目錄普通用戶無訪問許可權。 可以通過cron.allow 和 cron.deny文件管理用戶使用cronta ...


  crontab是一個用來設置、刪除或顯示供守護進程cron執行的定時任務的命令。每一個用戶都可以擁有屬於自己的定時任務,定時任務文件預設以用戶名命名,並放在/var/spool/cron目錄,該目錄普通用戶無訪問許可權。

  可以通過cron.allow 和 cron.deny文件管理用戶使用crontab的許可權。如果cron.allow存在,用戶必須列在其中才會被允許使用cron;如果cron.deny存在,被列在其中的用戶禁止使用cron;如果兩者都不存在,只有超級用戶才能使用cron。在CentOS中,這兩個文件放在/etc中,預設只存在cron.deny文件,且為空。這就表示在CentOS中,預設所有的用戶均有cron的使用許可權。

1. 命令格式

  crontab [-u user] file
  crontab [-u user] [-l | -r | -e] [-i] [-s]
  crontab -n [ hostname ]
  crontab -c

2. 命令功能

  為個人用戶維護定時任務文件

3. 命令選項

  -u user

    編輯某個用戶的cron,只用root可以使用此參數為別的用戶設置cron服務。也可用於給用戶指定crontab文件。

  -l

    列出當前用戶的crontab。

  -r

    刪除當前用戶的crontab。

  -e

    編輯當前用戶的crontab,預設使用vi,或者是由 VISUAL或EDITOR環境變數指定的編輯器。

  -i

    與-r一起使用,用來詢問用戶是否直接刪除crontab。

4. 實例

  實例1:列出當前用戶的定時任務

[22:30:17][dodmaster@mha3 ~]$ crontab -l
0 1 * * 1 $HOME/.DailyShell/hislogclear.sh 
0 * * * * $HOME/.DailyShell/mvcdr2bak.sh $HOME/data/message/voice
20 * * * * $HOME/.DailyShell/mvcdr2bak.sh $HOME/data/message/data/
40 * * * * $HOME/.DailyShell/mvcdr2bak.sh $HOME/data/message/sms/

  實例2:root用戶編輯用戶martin的定時任務

[22:30:17][root@mha3 ~]# crontab -u martin -e

  實例3:為用戶martin指定定時任務文件

[22:30:17][root@mha3 ~]# crontab -u martin martincron

5. cron文件語法

   首先,我們打開/etc/crontab文件,我們將會看到如下內容:

[20:40:30][dodmaster@mha3 etc]$ cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

  該文件是存放系統執行的定時計劃,其中前四行用於設置cron服務運行的環境變數:SHELL、PATH、HOME分別指定了cron服務運行時的SHELL環境變數、PATH環境變數和HOME環境變數,這裡不再贅述。MAILTO則表示cron運行的任務輸出以電子郵件的形式發送到指定用戶,如果該變數的值為空,則不會發送郵件。餘下幾行的內容說明瞭系統定時任務的具體書寫格式。

 minute  分鐘,取值範圍0-59
 hour  小時,取值範圍0-23
 day of month  日,取值範圍1-31
 month  月,取值範圍1-12,或者使用英文縮寫jan,feb,mar,apr ...
 day of week  星期,取值範圍0-6,0或7表示星期日,或者使用英文縮寫sun,mon,tue,wed,thu,fri,sat
 user-name  執行該定時任務的用戶
 command  具體執行的命令,可以是一個簡單的命令,也可以是一個腳本,或者是一個目錄。如果是一個文件夾,則表示執行該文件夾中的所有腳本,文件目錄的前面必須加上run-parts。

  1)星號(*)表示取值範圍內的所有值。例如,*在hour的位置,表示每小時執行一次。

  2)連字元(-)表示一個範圍。例如,8-12表示8、9、10、11、12。

  3)逗號(,)表示分割指定的數值。例如:3,5-7,9表示3,5,6,7,9。

  4)正斜杠(/)表示步進值。例如,分鐘的位置為*/5,表示每五分鐘執行一次。

  除了root用戶以外的所有用戶定義的crontab計劃任務都存放在/var/spool/cron目錄,通過crontab -e命令編輯,格式與/etc/crontab相同,可以不用指定user-name。

  cron服務會每分鐘檢查一次/etc/crontab、/etc/cron.d/和/var/spool/cron/中的所有文件,並依此執行。

6. 實例

  實例1:每周末的凌晨一點鐘執行一次系統的raid-check

0 1 * * Sun root /usr/sbin/raid-check

  實例2:每天的4:02am分root用戶執行/etc/cron.daily目錄下的所有腳本,run-parts參數表示執行後面目錄中的所有腳本。

02 4 * * * root run-parts /etc/cron.daily

  實例3:每天的8-18每四小時,dodmaster用戶執行hislogclear.sh腳本,即8:44,12:44,16:44,20:44四個時間點,會執行該腳本。

[21:57:56][dodmaster@mha3 ~]$ crontab -l
44 8-20/4 * * * $HOME/.DailyShell/hislogclear.sh 

  實例4:每五分鐘執行一次(兩種寫法)

*/5 * * * * echo "every five minute to do it" >> time.txt
5 * * * * echo "every five minute to do it" >> time.txt

  實例5:每個工作日下午八點執行

0 20 * * 1-5 echo "every workday 20:00 to do it" >> time.txt

  實例6:每分鐘的30秒時執行,因為cron服務是每分鐘被喚醒一次,所以要執行精確到秒的任務需要藉助sleep命令。

* * * * * sleep 30echo "every minute 30 second to do it" >> time.txt

  實例7:每20秒執行一次,即表示在每分鐘的0秒、20秒、40秒各執行一次(也可以是其他的步長是20秒的值,例如:5s、25s、45s)

* * * * * echo "every 20 second to do it" >> time.txt
* * * * * sleep 20echo "every 20 second to do it" >> time.txt
* * * * * sleep 40echo "every 20 second to do it" >> time.txt

 

參考資料:

http://www.cnblogs.com/dingyingsi/archive/2013/04/16/3023623.html

http://blog.csdn.net/xiyuan1999/article/details/8160998

http://blog.chinaunix.net/uid-7552018-id-182133.html


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

-Advertisement-
Play Games
更多相關文章
  • JS實現倒計時效果代碼如下: 實現效果入下: ...
  • 效果圖如下: 代碼如下: ...
  • 1,定義新的屬性來擴展對象 新方法:defineProperty() 實例: var data = {}; Object.defineProperty(data,"type",{ value: "primary", //設置初始值,不能改變,刪除, enumerable: true //可枚舉 }) ...
  • 1.用AudioManager調聲音 1_得到當前音量和最大音量 2_拖動的時候改變音量 3_靜音和非靜音 2.手指在屏幕上下滑動實現聲音大小變化 3.監聽按手機聲音健改變聲音大小 ...
  • 開發完成的APP,我們當然要上傳到AppStore裡面了,這可是我們心血的結晶。 可是,就當我們興奮之餘,卻發現我們的App根本無法上傳到AppStore。我們百度、谷歌了N種方法,就像我這種逗逼,整整試了不下15次,還是不行。可是,一個偶然的操作,居然成功了,然後又連試幾發,真是百試不爽,趕緊拿出 ...
  • 一、修改字體 點擊左上角File選擇settings....進入界面選擇Editor-->Colors&Fonts-->Font點擊界面中Save As...在對話框中輸入名字點擊OK,選擇Soure Code Pro楷體設置字體大小我的設置17,和上下間隔我的設置1.1點擊右下角OK。 二、刪除項 ...
  • Hadoop概述 Apache lucene: 全球第一個開源的全文檢索引擎工具包 完整的查詢引擎和搜索引擎 部分文本分析引擎 開發人員在此基礎建立完整的全文檢索引擎 以下為轉載:http://www.cnblogs.com/xing901022/p/3933675.htm 首先呢,學習任何一門新的 ...
  • 語法: mount -t 類型 -o 掛接方式 源路徑 目標路徑 -t 詳細選項: 光碟或光碟鏡像:iso9660 DOS fat16文件系統:msdos Windows 9x fat32文件系統:vfat Windows NT ntfs文件系統:ntfs Mount Windows文件網路共用:s ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...