Linux之定時(shí)任務(wù)Crond詳解
定時(shí)任務(wù)Crond介紹
Crond是linux系統(tǒng)中用來(lái)定期執(zhí)行命令/腳本或指定程序任務(wù)的一種服務(wù)或軟件,一般情況下,我們安裝完Centos5/6 linux操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)Crond任務(wù)調(diào)度服務(wù)。
Crond服務(wù)會(huì)定期(默認(rèn)每分鐘檢查一次)檢查系統(tǒng)中是否有要執(zhí)行的任務(wù)工作,如果有,便會(huì)根據(jù)其預(yù)先設(shè)定的定時(shí)任務(wù)規(guī)則自動(dòng)執(zhí)行該定時(shí)任務(wù)工作,這個(gè)crond定時(shí)任務(wù)服務(wù)就相當(dāng)于我們平時(shí)早起使用的鬧鐘一樣。
必須保留的啟動(dòng)服務(wù):
- crond:定時(shí)任務(wù)服務(wù)
- network:網(wǎng)絡(luò)服務(wù)
- rsyslog:日志服務(wù)
- sshd:遠(yuǎn)程鏈接服務(wù)
- sysstat:系統(tǒng)監(jiān)控服務(wù)(涉及一系列監(jiān)控工具)
為什么要使用定時(shí)任務(wù)呢?
我們舉個(gè)例子說(shuō)明:例如,我們的數(shù)據(jù)庫(kù)或者代碼程序需要每天晚上0點(diǎn)做一次全備份,這樣每天夜里都需要執(zhí)行的周期性工作,如果要讓人操作的話,就得每天半夜爬起來(lái),然后登錄系統(tǒng)執(zhí)行任務(wù),執(zhí)行完接著睡覺(jué)。另外,執(zhí)行任務(wù)的過(guò)程也可能持續(xù)幾個(gè)小時(shí),這樣一來(lái),一個(gè)晚上我們就都不用睡覺(jué)了,這樣顯然是不行的。那么有什么辦法來(lái)解決這個(gè)周期性的執(zhí)行任務(wù)需求呢?
這就是linux系統(tǒng)的定時(shí)任務(wù)Crond,這相當(dāng)于我們平時(shí)生活中的鬧鐘功能,每天晚上提前設(shè)置定時(shí),早晨按時(shí)叫醒你。
ls -l /var/log/messages* #系統(tǒng)的日志 ls -l /var/log/secure* #用戶(hù)登錄日志
用戶(hù)執(zhí)行的任務(wù)工作:某個(gè)用戶(hù)或系統(tǒng)管理員定期要做的任務(wù)工作,例如每隔5分鐘和互聯(lián)網(wǎng)上時(shí)間服務(wù)器進(jìn)行時(shí)間同步(這是安裝系統(tǒng)基礎(chǔ)優(yōu)化部分的內(nèi)容),每天晚上0點(diǎn)備份網(wǎng)站站點(diǎn)數(shù)據(jù)及數(shù)據(jù)庫(kù)數(shù)據(jù),一般這些工作需要由每個(gè)運(yùn)維自行設(shè)置才行。
服務(wù)器時(shí)間同步
echo "*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1" >> /var/spool/cron/root
可通過(guò)上面的命令設(shè)置每5分鐘執(zhí)行一次。每次將互聯(lián)網(wǎng)時(shí)間同步到本地Linux系統(tǒng)。
crontab -l 查看當(dāng)前用戶(hù)的定時(shí)任務(wù)配置。*號(hào) 下面會(huì)詳講~~
time.nist.gov是NTP服務(wù)器地址 time.windows.com,微軟自家的時(shí)間服務(wù)器?!「嗾?qǐng)參考 ==> 國(guó)內(nèi)常用NTP服務(wù)器地址及IP
crontab(命令):正如前面所說(shuō)的這個(gè)命令可以周期性的執(zhí)行任務(wù)工作,例如:每五分鐘做一次服務(wù)器時(shí)間同步。要執(zhí)行crontab這個(gè)命令,也需要啟動(dòng)一個(gè)服務(wù)crond才行。這個(gè)crontab命令是生產(chǎn)工作中最常用到的命令,請(qǐng)大家務(wù)必掌握。
1、開(kāi)機(jī)自啟動(dòng)crond服務(wù)
2、此時(shí)此刻服務(wù)的狀態(tài)(查看,開(kāi)啟,關(guān)閉)
3、如何查看進(jìn)程
ps -ef | grep crond
小結(jié)提示:
- 我們所說(shuō)的crond服務(wù)是運(yùn)行的程序,而crontab是用來(lái)管理用戶(hù)的定時(shí)任務(wù)(規(guī)則)的命令
- crond服務(wù)是企業(yè)生產(chǎn)工作中常用的重要服務(wù),at和anacron很少用,可以忽略
- 幾乎每個(gè)服務(wù)器都會(huì)用到crond服務(wù)
- 上千服務(wù)器可以開(kāi)發(fā)分布式定時(shí)任務(wù)項(xiàng)目方案(批量管理ansible/saltstack)
定時(shí)任務(wù)Crond使用說(shuō)明
[root@chengliang ~]# crontab --help crontab: invalid option -- '-' crontab: usage error: unrecognized option usage: crontab [-u user] file crontab [-u user] [ -e | -l | -r ] (default operation is replace, per 1003.2) -e (edit user's crontab) -l (list user's crontab) -r (delete user's crontab) -i (prompt before deleting user's crontab) -s (selinux context) [root@chengliang ~]#
- crontab -l 查看當(dāng)前用戶(hù)的定時(shí)任務(wù)配置
- crontab -e 進(jìn)入當(dāng)前用戶(hù)的定時(shí)任務(wù)vim編輯模式
- crontab -u 用戶(hù)名 -l 查看指定用戶(hù)的定時(shí)任務(wù)設(shè)置
重點(diǎn)
通過(guò)crontab我們可以在固定的間隔時(shí)間執(zhí)行指定的系統(tǒng)指令或script腳本。時(shí)間間隔的單位可以是分鐘,小時(shí),日,月,周及以上的任意組合(注意:日和周不要組合)。crond服務(wù)通過(guò)crontab命令可以很容易的實(shí)現(xiàn)周期性的日志分析或數(shù)據(jù)備份等企業(yè)運(yùn)維場(chǎng)景工作
使用者權(quán)限及定時(shí)任務(wù)文件
文件 | 說(shuō)明 |
---|---|
/etc/cron.deny(拒絕) | 該文件中所列用戶(hù)不允許使用crontab |
/etc/cron.allow(允許) | 該文件優(yōu)先級(jí)高于cron.deny(默認(rèn)不存在,一般不用) |
/var/spool/cron/ | 所有用戶(hù)crontab配置文件默認(rèn)都存在此目錄,文件名以用戶(hù)名命名 |
[root@chengliang ~]# cat /etc/cron.deny zcl [root@chengliang~]# su - zcl [chensiqi@chengliang~]$ crontab -l You (chensiqi) are not allowed to use this program (crontab) See crontab(1) for more information [zcl@chengliang~]$ crontab -e You (chensiqi) are not allowed to use this program (crontab) See crontab(1) for more information
crontab { -l | -e } 實(shí)際上就是在操作/var/spool/cron/當(dāng)前用戶(hù)這樣的文件
默認(rèn)情況下,當(dāng)用戶(hù)建立定時(shí)任務(wù)規(guī)則后,該規(guī)則記錄對(duì)應(yīng)的配置文件會(huì)存在于/var/spool/cron中,其crontab配置文件對(duì)應(yīng)的文件名與登錄的用戶(hù)名一致,如:root用戶(hù)的定時(shí)任務(wù)配置文件為/var/spool/cron/root
[root@chengliang ~]# ls /var/spool/cron/ root #默認(rèn)是沒(méi)有的,只有創(chuàng)建了定時(shí)任務(wù)才有 [root@chengliang ~]# cat /var/spool/cron/root */5 * * * * /sbin/ntpdate time.windows.com >/dev/null 2>&1
Crontab定時(shí)任務(wù)的書(shū)寫(xiě)格式很簡(jiǎn)單,用戶(hù)的定時(shí)任務(wù)規(guī)則一般分為6個(gè)段(每個(gè)段通過(guò)空格來(lái)分隔,系統(tǒng)的定時(shí)任務(wù)為/etc/crontab,分為7個(gè)段,空格來(lái)分隔),前五段為時(shí)間的設(shè)定段,第六段為所要執(zhí)行的命令或腳本任務(wù)段
用戶(hù)定時(shí)任務(wù)實(shí)例:
01 * * * * cmd #每小時(shí)的01分鐘執(zhí)行 02 04 * * * cmd #每天4點(diǎn)的02分鐘執(zhí)行 22 14 * * 00 cmd #每周日的14點(diǎn)22分執(zhí)行 42 04 01 * * cmd #每月1日的4點(diǎn)42分執(zhí)行
提示:
1、cmd為要執(zhí)行的命令或腳本,例如:/bin/sh /server/scripts/chensiqi.sh
2、每個(gè)列之間必須要有一個(gè)空格。多個(gè)空格可以么?自己實(shí)踐 ==> 經(jīng)我本人測(cè)試有多個(gè)空格也可以執(zhí)行!!
時(shí)間記憶口訣:分時(shí)日月周
crontab 語(yǔ)法格式中特殊符號(hào)含義如下表
特殊符號(hào) | 含義 |
---|---|
* | *號(hào),表示任意時(shí)間都,實(shí)際就是“每”的意思 |
- | 減號(hào)表示分隔符,表示一個(gè)時(shí)間范圍,區(qū)間段,如17-19點(diǎn),例如:每天的17,18,19點(diǎn)的00分執(zhí)行任務(wù)。00 17-19 * * * cmd |
, | 逗號(hào),表示分隔時(shí)段的意思例如每天的5點(diǎn)10點(diǎn)00分執(zhí)行任務(wù),00 5,10 * * * cmd |
/n | n代表數(shù)字,即“每隔n單位時(shí)間”,例如:每10分鐘執(zhí)行一次任務(wù)可以寫(xiě)成/*10 * * * * cmd,其中,/10,的范圍是0-59,因此也可以寫(xiě)成0-59/10 |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- linux如何利用crontab添加定時(shí)任務(wù)詳解
- Linux Crontab Shell腳本實(shí)現(xiàn)秒級(jí)定時(shí)任務(wù)的方法
- Linux定時(shí)任務(wù)Crontab命令使用詳解與總結(jié)
- linux定時(shí)任務(wù)crontab 實(shí)現(xiàn)每秒執(zhí)行一次的方法
- Linux中crontab定時(shí)任務(wù)不執(zhí)行的原因
- Linux定時(shí)任務(wù)Crontab的使用方法
- linux中定時(shí)任務(wù)crond命令使用方法
- Linux定時(shí)任務(wù)Crontab詳解(推薦)
- Linux crontab定時(shí)任務(wù)配置方法(詳解)
- linux服務(wù)器ubuntu定時(shí)任務(wù)cron設(shè)置每秒執(zhí)行
相關(guān)文章
樹(shù)莓派無(wú)線上網(wǎng)時(shí)無(wú)屏幕下發(fā)現(xiàn)樹(shù)莓派IP的方法
今天小編就為大家分享一篇關(guān)于樹(shù)莓派無(wú)線上網(wǎng)時(shí)無(wú)屏幕下發(fā)現(xiàn)樹(shù)莓派IP的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04Ubuntu16.04.4LTS安裝mininet遇到的問(wèn)題及解決方案
今天小編就為大家分享一篇關(guān)于Ubuntu16.04.4LTS安裝mininet遇到的問(wèn)題及解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10詳解CentOS 7 網(wǎng)卡命名修改為eth0格式
這篇文章主要介紹了詳解CentOS 7 網(wǎng)卡命名修改為eth0格式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03Linux修改文件句柄數(shù)方式及vm.max_map_count、stack size的大小
修改/etc/security/limits.conf文件可以調(diào)整Linux系統(tǒng)的文件句柄數(shù)、進(jìn)程數(shù)等資源限制,需注意的是,對(duì)該文件的更改需要重新登錄系統(tǒng)才能生效,如需臨時(shí)修改,可以使用命令直接設(shè)置;永久修改則需編輯配置文件,設(shè)置nofile的最大值不應(yīng)超過(guò)10485762024-10-10CentOS系統(tǒng)下Apache配置多域名或多端口映射的方法
我們大多情況是一臺(tái)服務(wù)器一個(gè)IP,這樣配置起來(lái)很簡(jiǎn)單,但是如何想多域名多端口映射的話就沒(méi)那么簡(jiǎn)單了,下面這篇文章主要介紹了CentOS系統(tǒng)下Apache配置多域名或多端口映射的方法,需要的朋友可以參考學(xué)習(xí),下面來(lái)一起看看吧。2016-12-12Ubuntu 20.04 火狐瀏覽器無(wú)法播放視頻(缺少flash插件)的解決方法
這篇文章主要介紹了Ubuntu 20.04 火狐瀏覽器無(wú)法播放視頻(缺少flash插件)的解決方法,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08vim配置顯示行號(hào)和語(yǔ)法高亮 即.vimrc文件的配置
本文主要介紹vim配置顯示行號(hào)和語(yǔ)法高亮的功能,比較實(shí)用,需要的朋友可以參考一下。2016-06-06