1. 程式人生 > >Linux中的cron計劃任務配置詳解

Linux中的cron計劃任務配置詳解

cron來源於希臘單詞chronos(意為“時間”),指Linux系統下一個自動執行指定任務的程式(計劃任務)

####1. crontab命令選項
程式碼如下:

#crontab -u <-l, -r, -e>
-u指定一個使用者
-l列出某個使用者的任務計劃
-r刪除某個使用者的任務
-e編輯某個使用者的任務

####2. cron檔案語法與寫法
可用crontab -e命令來編輯,編輯的是/var/spool/cron下對應使用者的cron檔案,也可以直接修改/etc/crontab檔案。具體格式如下:

程式碼如下:

Minute Hour Day Month Week command
分鐘 小時 天 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command
每個欄位代表的含義如下:

程式碼如下:

Minute 每個小時的第幾分鐘執行該任務
Hour 每天的第幾個小時執行該任務
Day 每月的第幾天執行該任務
Month 每年的第幾個月執行該任務
DayOfWeek 每週的第幾天執行該任務,0表示週日
Command 指定要執行的程式 、指令碼或命令

在這些欄位裡,除了“Command”是必須指定的欄位以外,其它欄位皆為可選。對於不指定的欄位,要用“*”來填補其位置。

####3. 幾個特殊符號的含義

“*”代表取值範圍內的數字,
“/”代表”每”,
“-”代表從某個數字到某個數字,
“,”分開幾個離散的數字

####4. 關於cron配置檔案/etc/crontab

cron 的主配置檔案是 /etc/crontab,它包括下面幾行:

程式碼如下:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

前四行是用來配置 cron 任務執行環境的變數:
SHELL 變數的值指定shell 環境(此處預設為 bash shell);PATH 變數定義用來執行命令的程式路徑;cron 任務的輸出被郵寄給 MAILTO 變數定義的使用者名稱,如果 MAILTO 變數被定義為空白字串(MAILTO=""),電子郵件就不會被寄出;HOME 變數可以用來設定在執行命令或指令碼時使用的主目錄。

如在 /etc/crontab 檔案中run-parts部分所示,它使用 run-parts 指令碼來執行存在於 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目錄中的指令碼,這些指令碼被相應地按照預設時間在每小時、每日、每週、或每月執行。這些目錄中的檔案應該是 shell 指令碼,並且具有可執行許可權(chmod +x filename)。

如果某 cron 任務需要根據排程來執行,而不是每小時、每日、每週、或每月地執行,它可以被新增到/etc/cron.d目錄中。該目錄中的所有檔案使用和 /etc/crontab 中一樣的語法。

每次編輯完某個使用者的cron設定後,cron自動在/var/spool/cron下生成一個與此使用者同名的檔案,此使用者的cron資訊都記錄在這個檔案中,這個檔案是不可以直接編輯的,只可以用crontab -e 來編輯。cron啟動後每過一份鍾讀一次這個檔案,檢查是否要執行裡面的命令。因此此檔案修改後不需要重新啟動cron服務。

####5. 常見cron示例參考

5  * * * * ls 指定每小時的第5分鐘執行一次ls命令
30 5 * * * ls 指定每天的 5:30 執行ls命令
30 7 8 * * ls 指定每月8號的7:30分執行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30執行ls命令
30 6 * * 0 ls 指定每星期日的6:30執行ls命令[注:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10號及20號的3:30執行ls命令[注:“,”用來連線多個不連續的時段]
25 8-11 * * * ls 每天8-11點的第25分鐘執行ls命令[注:“-”用來連線連續的時段]
*/15 * * * * ls 每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令 ]
30 6 */10 * * ls 每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令 ]
每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行檔案
50 7 * *  * root run-parts  /etc/cron.daily [ 注:run-parts引數表示,執行後面目錄中的所有可執行檔案
第10、20、30分鐘輸出到/tmp/cron1.txt:
10,20,30 * * * * echo "第10、20、30分鐘輸出一次" >> /tmp/cron1.txt
以使用者lzw.me的身份每兩小時就執行某個程式:
0 */2 * * * lzw.me /usr/bin/somecommand >> /dev/null 2>&1

####6. 特別提示
A、cron配置檔案路徑

#vi /etc/crontab

B、重啟cron的方法

#/etc/rc.d/init.d/crond restart
Usage: /etc/rc.d/init.d/crond {start|stop|status|reload|restart|condrestart}

C、別忘了將指令碼改成可執行

chmod +x filename

相關推薦

Linuxcron計劃任務配置

cron來源於希臘單詞chronos(意為“時間”),指Linux系統下一個自動執行指定任務的程式(計劃任務) ####1. crontab命令選項 程式碼如下: #crontab -u <-l, -r, -e> -u指定一個使用者 -l列出某個使用者的任務計劃

LinuxNginx安裝與配置

cpan .net 語言 roo disable 方便 sbin wget 一個 安裝所需環境 Nginx 是 C語言 開發,建議在 Linux 上運行,當然,也可以安裝 Windows 版本,本篇則使用 CentOS 7 作為安裝環境。 上網配置: 如果安裝了cen

LinuxNginx安裝與配置(CentOS-6.5:nginx-1.5.0)

1 Nginx簡介Nginx ("engine x") 是一個高效能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,第一個公開版本0

LinuxCrontab定時任務用法

一、cron服務  cron是一個linux下 的定時執行工具,可以在無需人工干預的情況下執行作業。  service crond start    //啟動服務  service crond stop     //關閉服務  service crond restart  //重啟服務  service cr

Nginx常用的指令配置

Nginx中的rewrite指令的應用rewrite指令的作用:是做一些訪問匹配規則的判斷,從而實現相應的操作。location / {proxy_pass http://192.168.1.5if (-d $request_filename) {...........; 這裏的意思是訪問的如果是一個目錄

Spring Boot使用MyBatis註解配置(1)

sql type .org 實體 sch 整合 PE 匯總 同傳 之前在Spring Boot中整合MyBatis時,采用了註解的配置方式,相信很多人還是比較喜歡這種優雅的方式的,也收到不少讀者朋友的反饋和問題,主要集中於針對各種場景下註解如何使用,下面就對幾種常見的情況舉

Linuxtop和free命令(轉)

機器 負載 選擇 就會 image 的區別 包括 linux中 占用內存 top:命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表. 該命令可以按CPU使用.內存使用和執行時間對任務進行排序; 而且該命令的很多特性都可以通過交互式命令或者在個

springboot使用Mybatis註解配置

版權宣告:本文為博主原創文章,未經博主允許不得轉載。    https://blog.csdn.net/Winter_chen001/article/details/78623700 之前寫了關於Spring boot Mybatis 整合(註解版) 中使用了簡單的註解

Servlet容器Tomcatweb.xmlurl-pattern的配置[附帶原始碼分析

轉載 http://www.cnblogs.com/fangjian0423/p/servletContainer-tomcat-urlPattern.html#springmvc Servlet容器Tomcat中web.xml中url-pattern的配置詳解[附帶原始碼分析 目錄 前

Django模版載入靜態檔案配置

1、settings.INSTALLED_APPS下新增:django.contrib.staticfiles 2、settings.py下新增:STATIC_URL = '/static/' 3、

Linux下MongoDB安裝和配置

1、建立MongoDB的安裝路徑 在/usr/local/  建立資料夾mongoDB 2、上傳檔案到Linux上的/usr/local/source目錄下 3、解壓檔案 進入到/usr/local/source目錄,執行如下命令:  tar -zxvf m

mysqlbinlog_format模式與配置

mysql複製主要有三種方式:基於SQL語句的複製(statement-based replication, SBR),基於行的複製(row-based replication, RBR),混合模式複製(mixed-based replication, MBR)。對應的,bi

Linux ps 和 top命令

ps 和 top 命令常用來檢視Linux系統程序相關資訊。 ps命令:可以檢視程序的瞬間資訊。 top命令:可以持續的監視程序的資訊。 場景一:如何檢視Linux系統中存在mysql、nginx、tomcat程序? 方法一:輸入命令:ps -ef|grep

Spring Boot使用MyBatis註解配置

   轉自翟永超 之前在Spring Boot中整合MyBatis時,採用了註解的配置方式,相信很多人還是比較喜歡這種優雅的方式的,也收到不少讀者朋友的反饋和問題,主要集中於針對各種場景下註解如何使用,下面就對幾種常見的情況舉例說明用法。 在做下面的示例之前,先準備一

Linux目錄proc/net/dev

在Linux系統中,系統呼叫是作業系統提供給應用程式使用作業系統服務的重要介面,但同時也正是通過系統呼叫機制,作業系統遮蔽了使用者直接訪問系統核心的可能性。幸運的是Linux提供了LKM機制可以使我們在核心空間工作,在LKM機制中一個重要的組成部分就是proc偽檔案系統,它為使用者提供了動態操作Li

Linux下MongoDB安裝和配置(一)

一、MongoDB的安裝 1.下載安裝包 下載方式: curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.9.tgz 解壓縮壓縮包: tar zxvf mongodb-linux-x

Servlet容器Tomcatweb.xmlurl-pattern的配置[附帶原始碼分析]

目錄 前言現象原始碼分析實戰例子總結參考資料 前言 今天研究了一下tomcat上web.xml配置檔案中url-pattern的問題。 這個問題其實畢業前就困擾著我,當時忙於找工作。 找到工作之後一直忙,也就沒時間顧慮這個問題了。 說到底還是自己懶了,沒花時間來研究。 今

Linuxtop顯示的資訊

一.資訊顯示 Linux系統可以通過top命令檢視系統的CPU、記憶體、執行時間、交換分割槽、執行的執行緒等資訊。通過top命令可以有效的發現系統的缺陷出在哪裡。是記憶體不夠、CPU處理能力不夠、IO讀寫過高…. [root@foundation6 do

Linux新增計劃任務與Elasticsearch日誌自動清理

一、簡述   當日志傳送到ELK之後,Elasticsearch隨著日誌的增加,佔用磁碟量會越來越大。這時候,需要我們寫角本定期DELETE日誌。角本寫法,也很簡單,只是傳送HTTP的DELETE方式到:http://<ip>:<port>/*-yyyy.MM.dd*即可。   

linux下ssh服務、配置

實現原理 “公私鑰”認證的方式來進行ssh登入 “公私鑰”認證方式簡單的解釋是: 首先在客戶端上建立一對公私鑰 (公鑰檔案:~/.ssh/id_rsa.pub; 私鑰檔案:~/.ssh/id_rsa),然後把公鑰放到伺服器上(~/.ssh/authori