1. 程式人生 > >計劃任務crontab的一些例項

計劃任務crontab的一些例項

同樣也是個基礎的應用,用的比較多,有必要記錄在這裡……

一、crontab介紹和配置檔案
Linux下的任務排程分為兩類:系統任務排程、使用者任務排程。
系統任務排程:系統週期性所要執行的工作,比如寫快取資料到硬碟、日誌清理等。這種任務每次執行都是一樣的,而且需要反覆重複執行。在/etc目錄下有一個crontab檔案,這個就是系統任務排程的配置檔案。

[[email protected] mnt]# 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... # | | | | | # * * * * * user-name command to be executed

前四行是用來配置crond任務執行的環境變數,第一行SHELL變數指定了系統要使用哪個shell,這裡是bash,第二行PATH變數指定了系統執行命令的路徑,第三行MAILTO變數指定了crond的任務執行資訊將通過電子郵件傳送給root使用者,如果MAILTO變數的值為空,則表示不傳送任務執行資訊給使用者,第四行的HOME變數指定了在執行命令或者指令碼時使用的主目錄。
接著後面是命令的用法,

# Example of job definition:
# .---------------- 分鐘(0 - 59)
# |  .------------- 小時 (0 - 23)
# |  |  .---------- 一月中的哪一天 (1 - 31)
# | | | .------- 月份 (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- 星期 (0 - 6) (Sunday=0 or 7) OR sun,mon... # | | | | | # * * * * * 使用者 命令(或者指令碼)

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

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

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

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

二、服務的安裝
centos6.5或者Rhel6.5以上的系統都會自帶安裝這個服務。啟動指令碼在/etc/init.d/下。如果沒有這個服務,直接yum安裝即可,順帶插一句:檢視當前有沒有安裝某個服務的方法是:(以crontab做例子)

[root@localhost ~]# rpm -aq |grep crontab
crontabs-1.10-33.el6.noarch

檢視安裝的位置用的命令是:

[[email protected] ~]# rpm -ql crontabs-1.10-33.el6.noarch
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
/etc/crontab
/usr/bin/run-parts
/usr/share/man/man4/crontabs.4.gz

在/etc/init.d/下,啟動(start),停止(stop),重新載入(reload),重啟(restart)的可執行指令碼都有。

三、使用例項
計劃任務是寫在crontab檔案裡的,

crontab -e

然後像下面的例項一樣寫定是計劃任務就可以了。

要顯示當前有哪些定是任務:

[root@localhost ~]# crontab -l
*/30 * * * *  /usr/sbin/ntpdate -u time.nist.gov
59 23 * * *  /usr/sbin/logrotate -f /etc/logrotate.d/nginx
* * * * *  rsync -zvrtopg /mnt/ 192.168.1.88:/mnt/
You have new mail in /var/spool/mail/root

例項1:每1分鐘執行一次同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
* * * * * rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項2:每小時的第3和第15分鐘執行同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
3,15 * * * * rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項3:在上午8點到11點的第3和第15分鐘執行同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
3,15 8-11 * * * command

例項4:每隔兩天的上午8點到11點的第3和第15分鐘執行同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
3,15 8-11 /2 * rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項5:每個星期一的上午8點到11點的第3和第15分鐘執行同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
3,15 8-11 * * 1 rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項6:每晚的21:30同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
30 21 * * * rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項7:每月1、10、22日的4 : 45同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
45 4 1,10,22 * * rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項8:每週六、週日的1 : 10同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
10 1 * * 6,0 rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項9:每天18 : 00至23 : 00之間每隔30同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
0,30 18-23 * * * rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項10:每星期六的晚上11 : 00 pm同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
0 23 * * 6 rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項11:每一小時重啟smb
* /1 * * rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項12:晚上11點到早上7點之間,每隔一小時同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
* 23-7/1 * * * rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項13:每月的4號與每週一到週三的11點同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
0 11 4 * mon-wed rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項14:一月一號的4點同步當前主機/mnt/下所有檔案到192.168.1.88:/mnt/
0 4 1 jan * rsync -vzopgrt –delete /mnt/ 192.168.1.88:/mnt/

例項15:每小時執行/etc/cron.hourly目錄內的指令碼
01 * * * * root run-parts /etc/cron.hourly
說明:
run-parts這個引數瞭如果去掉,後面就可以寫要執行的某個指令碼名,而不是目錄名

相關推薦

計劃任務crontab一些例項

同樣也是個基礎的應用,用的比較多,有必要記錄在這裡…… 一、crontab介紹和配置檔案 Linux下的任務排程分為兩類:系統任務排程、使用者任務排程。 系統任務排程:系統週期性所要執行的工作,比如寫快取資料到硬碟、日誌清理等。這種任務每次執行都是一樣的,

計劃任務crontab

crontab1.crontab介紹 crond是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務工具,並且會自動啟動crond進程,crond進程每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該

linux計劃任務crontab

定時 幾分鐘 bsp 命令 時間 第一個 分鐘 lin log 系統定時任務 croond服務管理與訪問控制 systemctl start crond.service 開啟crond服務 crontab -e 進入crontab編輯界面 * * * * * 執行的任務 第

7.控制計劃任務crontab命令

固定 路徑和 del lena 狀態 子郵件 作業 oss 任務   at 命令是針對僅運行一次的任務,循環運行的例行性計劃任務,linux系統則是由 cron (crond) 這個系統服務來控制的Linux 系統上面原本就有非常多的計劃 性工作,因此這個系統服務是默

tp5.1 php計劃任務crontab

tp5.1中的php 計劃任務的實現,本質上可以分為兩種第一種封裝在框架內部,在crontab -e中只要新增一條,然後在框架內去擴充套件內容就好了(Laravel的schedule,任務排程),這種自由度比較高,也比較方便。第二種:建立好PHP的執行指令碼,在crontab

Linux計劃任務crontab設定詳解

crontab檔案的格式: minute hour day month weekday username command minute:分,值為0-59 hour:小時,值為1-23 day:天,值為1-31 month:月,值為1-12 weekday:星期,值為0-6(0代表星期天,1代表星期一,以此類推

Linux中的計劃任務Crontab排程重複執行的任務

目標 本博文的主要目的是讓筆者和讀者可以瞭解並掌握以下內容: 1、Crontab的基本概念 2、Crontab的基本組成 3、操作Crond服務 4、配置系統和使用者計劃任務 5、監控計劃任務日誌 背景介紹 在工作中你是否也碰

Linux下的定時計劃任務——crontab

cron是一個Linux下的守護程序,用來定期的執行一些任務。 要讓cron執行你指定的任務,首先就要編輯crontab檔案。 命令:crontab -e 剛進去提示選取一個編輯器,隨意選,我習慣裡

Linux 計劃任務 Crontab

spa 次數 linu cront mage nbsp inf 計劃 ron 命令:   crontab -e  編輯/創建任務   crontab -l  查看任務 格式:   分鐘 小時 日 月 星期 命令 eg:    mysql 備份 每天17:

crontab計劃任務無法執行(小結)

crontab最近在與朋友梳理運維中遇到的坑的時候,發現大家都遇見過crontab計劃任務沒法正常執行的情況,如是簡單的整理下,主要有如下幾種情況:1、環境變量是否定義說明:crontab執行shell時,只能識別為數不多的環境變量,所有在腳本中最好使用export重新聲明下該變量說明:shell腳本rman

Linux計劃任務at&batch&crontab

at 計劃任務 batch 計劃任務 執行一次某任務:at,batch 周期性運行某任務:crontab 1.at命令,只執行一次 at/atq/atrm/batch at [option]... time HH:MM[YYYY-mm-dd]

Linux基礎-crontab計劃任務

linux crontab 計劃任務 Linux系統中使用crontab命令來管理計劃任務,主要有:查看計劃任務列表,編輯計劃任務,清除計劃任務。一、crontab命令選項[root@localhost ~]# crontab -l // -l 查看計劃任務列表 [root@localhost ~

linux centos 計劃任務 定時任務 crontab

linux centos 計劃任務定時任務 crontab 1、查看自啟動列表 chkconfig --list(centos6) systemctl is-enabled crond.service (centos7) 2、查看目前是否已經啟動 ps aux | grep crond 3、

Linux crontab 計劃任務整理

linux centos crontab Linux crontab 計劃任務整理 安裝 yum install -y vixie-cron # 安裝 常用命令 crontab -e # 編輯 crontab -l # 查看 crontab -u

Linux中計劃任務執行腳本crontab-簡潔版

error ESS CA lin 調度 pytho 可執行 too 用戶 我使用的是ubuntu16,所以在ubuntu中一切正常,在其他linux系統中應該都差不多。   1 計劃任務,crontab命令選項: -u指定一個用戶, -l列出某個用戶的任務

記一次使用crontab計劃任務執行python指令碼所遇問題及處理的過程

今天把一個python指令碼遷移到Centos7,用crontab執行,期間遇到很多錯誤,最終把所遇問題一一處理,感覺有必要把處理過程記錄下來 1、問題環境 Centos7 x64 python2.7 和python 3.5 有安裝virtualenvwrappe

計劃任務at、crontab

at一次性計劃任務 格式: at + 時間               命令   安裝at # yum install at -y 如果執行at命令時,出現

Linux Crontab 計劃任務

crond 是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護程序,與windows下的計劃任務類似,當安裝完成作業系統後,預設會安裝此服務 工具,並且會自動啟動crond程序,crond程序每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執

MySQL的自動備份,新增crontab計劃任務

1、在命令列輸入: crontab -e 然後新增相應的任務,wq存檔退出。  2、直接編輯/etc/crontab 檔案,即vi /etc/crontab,新增相應的任務         crontab -l //列出當前的所有排程任務        每天5:20執行

java計劃任務排程框架quartz結合spring實現排程的配置例項程式碼分享

                一:quartz簡介       OpenSymphony 的Quartz提供了一個比較完美的任務排程解決方案。       Quartz 是個開源的作業排程框架,定時排程器,為在 Java 應用程式中進行作業排程提供了簡單卻強大的機制。       Quartz中有兩個基本概