Linux 定時任務

来源:http://www.cnblogs.com/chenmh/archive/2016/04/25/5430258.html
-Advertisement-
Play Games

介紹 本篇主要介紹Linux定時任務命令crontab的用法,crontab是定時任務的命令,而crond則是定時任務的啟動服務。crontab的定時任務分為系統任務和用戶任務,其實二者沒有太大的區別。 啟動 在Centos中crond服務預設是自動啟動的,如果沒有啟動可以手動啟動,具體方法如下。 ...


介紹

本篇主要介紹Linux定時任務命令crontab的用法,crontab是定時任務的命令,而crond則是定時任務的啟動服務。crontab的定時任務分為系統任務和用戶任務,其實二者沒有太大的區別。

 

啟動 

在Centos中crond服務預設是自動啟動的,如果沒有啟動可以手動啟動,具體方法如下。

查看定時任務是否啟動
service crond status

將定時任務加入系統自動啟動服務
chkconfig crond on

 

系統任務調度

系統定時任務一般用來執行一些系統方面的操作,比如日誌清理;系統的定時任務可以通過編輯/etc/crontab來設定。
  • SHELL:系統要使用哪個shell

  • PATH:系統定時任務執行的命令的路徑,不要把這個PATH和系統環境變數認為是一樣,二者沒有關係,在系統環境變數裡面配置的路徑在這裡不能生效。

  • MAILTO:用來接收郵件的用戶,預設是root,郵箱的內容會保存在"/var/spool/mail/root"文件中。

  • HOME:系統定時任務的家目錄。

 註意:系統定時任務在命令前必須指定用戶,一般系統定時任務會使用root用戶來執行,系統定時任務還可以配置定時任務的路徑,但是要使用“run-parts”,例如每個小時執行文件夾下麵的定時任務,用戶定時任務不能指定文件夾。
00 * * * * root run-parts /etc/cron.hourly

 

用戶任務調度

用戶的定時任務可以通過執行crontab命令來創建,一個用戶只會生成一個定時任務文件會以用戶名命名,用戶定義的定時任務都保存在“/var/spool/cron”目錄下,用戶任務調度和系統任務調度的時間段是一樣的,唯一的區別就是用戶任務調度不需要指定用戶名,而且也不能使用run-parts參數指定目錄。  

crontab命令選項

crontab [-u user] file

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

  • -e:創建和編輯定時任務,預設是創建和編輯當前用戶的定時任務,只有root可以創建也編輯其它用戶的定時任務。

  • -l:列出當前用戶的定時任務,如果使用了-u參數指定了用戶那麼就是列出指定用戶的定時任務。

  • -r:刪除當前用戶的定時任務,如果使用了-u參數指定了用戶那麼就是刪除指定用戶的定時任務。

  • -i:在刪除用戶命令前加以提示,-i參數不能單獨使用需要結合-r參數以前使用。

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”,如果是month則表示這幾個月執行該命令。

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

  • 正斜線(/):可以用正斜線指定時間的間隔頻率,例如“10-23/2”如果是指小時代表10點到23點每隔2個小時執行一次。例如*/1可以表示每隔一個小時執行一次。

其它限制:

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

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

/var/spool/cron/ 所有用戶crontab文件存放的目錄,以用戶名命名

註意:預設的用戶的shell,path,mailto,home是沒有定義的,可以單獨定義用戶的這幾個變數否則可能會出現用戶找不到一些用戶軟體的命令,具體的定義方法可以參考系統任務的定義,主要還是SHELL、PATH。預設的用戶的這幾個變數信息如下:

X-Cron-Env:<SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/chen>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=chen>
X-Cron-Env: <USER=chen>

 

例如我定義的用戶定時任務:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin
MAILTO=chen
HOME=/data/backup
*/5 01-06,13-18 * * * ./userbackup.sh test

上面定義了每天的1點到6點和13點到18點,每隔5分鐘執行命令。

註意:時間範圍01-06是指01:00-06:59

總結

定時任務很實用,而且實用方法也很多,有興趣可以慢慢研究。

 

 

 

備註:

    作者:pursuer.chen

    博客:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明鏈接。

《歡迎交流討論》


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

-Advertisement-
Play Games
更多相關文章
  • 我們知道在linux上面,deepin做了很多wine的應用程式,但是在其他的linux發行版上卻沒有這種待遇,下麵我介紹一下,如何在繼續debian的linux發行版上運行deepin的wine應用程式。 本人所使用的linux發行版為linux mint17.3,其他linux發行版請自測 註: ...
  • RT-Thread是一個國產開源的實時操作系統,支持MCU多,外設豐富。值得學習 下載地址:http://www.rt-thread.org/page/31.html ,解壓可以得到一下目錄結構:|-- bsp|-- components|-- documentation|-- include|-- ...
  • Firmware Warn 問題描述: 系統版本:Ubuntu 12.04 LTS。 系統啟動後dmesg列印大量Firmware Warn告警信息到syslog文件中。信息如下: [Firmware Warn]: GHES: Failed to read error status block ad ...
  • 【一】從第3000行開始,顯示1000行。即顯示3000~3999行 cat filename | tail -n +3000 | head -n 1000 【二】顯示1000行到3000行 cat filename| head -n 3000 | tail -n +1000 *註意兩種方法的順序 ...
  • 最近在公司搭建AD域控制器,發現無法在電腦真正添加域用戶,也就是添加的用戶雖然可以在本地登錄,但是無法遠程登錄,嘗試多種方法都無法解決,而最終原因居然是虛擬機導致的伺服器的SID衝突。本文記錄下該問題的發生原因和解決過程。 添加域賬戶 在域用戶裡面添加一個用戶,如下圖: (圖1) 將用戶添加到“開 ...
  • 安裝: 1. UnixBench from version 5.1 on has both system and graphics tests. If you want to use the graphic tests, edit the Makefile and make sure that th ...
  • 安裝samba完後會生成samba目錄 > /etc/samba http://blog.csdn.net/xt_xiaotian/article/details/4216408 允許的IP地址段,將自己的IP地址段加入即可(註意IP的最後一段沒有,但後邊有個點) 重啟機器時,smb服務並不會自動啟 ...
  • LNMT在網站架構中的實現過程: Client --> http --> Nginx --> reverse_proxy (http) --> tomcat (http connector) --> mysql 但是當nginx有大量的併發請求時,nginx會反代大量的併發請求至tomcat,這時為 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...