linux定時任務cron配置

pubian877發表於2020-07-14

  實現linux定時任務有:cron、anacron、at,使用最多的是cron任務

  1.名詞解釋

  cron--服務名;crond--linux下用來週期性的執行某種任務或等待處理某些事件的一個守護程式,與windows下的計劃任務類似;crontab--是定製好的計劃任務表。

  2.軟體包安裝

  要使用cron服務,先要安裝vixie-cron軟體包和crontabs軟體包,兩個軟體包作用如下:

  vixie-cron軟體包是cron的主程式。crontabs軟體包是用來安裝、卸裝、或列舉用來驅動cron守護程式的表格的程式。

  檢視是否安裝了cron軟體包:rpm-qa|grep vixie-cron

  檢視是否安裝了crontabs軟體包:rpm-qa|grep crontabs

  如果沒有安裝,則執行如下命令安裝軟體包(軟體包必須存在)

  rpm-ivh vixie-cron-4.1-54.FC5

  rpm-ivh crontabs

  如果本地沒有安裝包,在能夠連網的情況下可以線上安裝

  yum install vixie-cron

  yum install crontabs

  3.檢視crond服務是否執行

  pgrep crond或/sbin/service crond status或ps-elf|grep crond|grep-v"grep"

  4.crond服務操作命令

  /sbin/service crond start//啟動服務

  /sbin/service crond stop//關閉服務

  /sbin/service crond restart//重啟服務

  /sbin/service crond reload//重新載入配置

  5.配置定時任務

  cron有兩個配置檔案,一個是一個全域性配置檔案(/etc/crontab),是針對系統任務的;一組是crontab命令生成的配置檔案(/var/spool/cron下的檔案),是針對某個使用者的.定時任務配置到任意一箇中都可以。

  檢視全域性配置檔案配置情況:cat/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

  ----------------------------------------------

  檢視使用者下的定時任務:crontab-l或cat/var/spool/cron/使用者名稱

  6.crontab任務配置基本格式

  command

  分鐘(0-59)小時(0-23)日期(1-31)月份(1-12)星期(0-6,0代表星期天)命令

  第1列表示分鐘1~59每分鐘用或者/1表示

  第2列表示小時1~23(0表示0點)

  第3列表示日期1~31

  第4列表示月份1~12

  第5列標識號星期0~6(0表示星期天)

  第6列要執行的命令

  在以上任何值中,星號()可以用來代表所有有效的值。譬如,月份值中的星號意味著在滿足其它制約條件後每月都執行該命令。

  整數間的短線(-)指定一個整數範圍。譬如,1-4意味著整數1、2、3、4。

  用逗號(,)隔開的一系列值指定一個列表。譬如,3,4,6,8標明這四個指定的整數。

  正斜線(/)可以用來指定間隔頻率。在範圍後加上/<integer>意味著在範圍內可以跳過integer。譬如,0-59/2可以用來在分鐘欄位定義每兩分鐘。間隔頻率值還可以和星號一起使用。例如,/3的值可以用在月份欄位中表示每三個月執行一次任務。

  開頭為井號(#)的行是註釋,不會被處理

  在crontab檔案裡面,每一行代表一項任務,每行的每個欄位代表一項設定,它的格式共分為六個欄位,前五段是時間設定段,第六段是要執行的命令段,每個欄位之間用空格分割,沒用的段用代替,格式如下:

  m h dom mon dow user command

  其中:

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

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

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

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

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

  user:表示執行的使用者。

  7.使用例項

  例項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這個引數了,如果去掉這個引數的話,後面就可以寫要執行的某個指令碼名,而不是目錄名了


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69976867/viewspace-2704292/,如需轉載,請註明出處,否則將追究法律責任。

相關文章