Linux: 系统配置 crond 和 crontab(有图有代码有真相!!!)
1、相關(guān)概述
linux下工作調(diào)度的種類有:at ?, ?cron?
一種是例行性的,就是每隔一定的周期來辦某事。
一種是突發(fā)性的,就是做完這一次沒有以后。
crontab這個命令所設(shè)置的工作將會一直循環(huán)進行下去,循環(huán)的時間可以是分鐘、小時、每周、‘每月、每年等,crontab除了命
令執(zhí)行外,也可以編輯/etc/crontab來支持,而crond就是讓crontab生效的服務(wù)。
2、crond 和 crontab :
crond的概念和crontab是不可分割的。crontab是一個命令,常見于Unix和類Unix的操作系統(tǒng)之中,用于設(shè)置周期性被執(zhí)行的指令。該命令從標準
輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。該詞來源于希臘語chronos(χρ?νο?),原意是時間。而crond正是它的守護
進程。
3、crond 定時任務(wù)
Crond是linux系統(tǒng)用來定期執(zhí)行命令或指定程序任務(wù)的一種服務(wù)或軟件。一般情況下,我們安裝完CentOS5/6linux操作系統(tǒng)之后,默認便會啟動
Crond任務(wù)調(diào)度服務(wù)。Crond服務(wù)會定期(默認每分鐘檢查一次)檢查系統(tǒng)中是否有要執(zhí)行的任務(wù)工作。如果有,便會根據(jù)其預(yù)先設(shè)定的定時任務(wù)規(guī)
則自動執(zhí)行該定時任務(wù)工作。這個Crond定時任務(wù)服務(wù)就相當于我們早上使用的鬧鐘一樣。
linux系統(tǒng)中定時任務(wù)調(diào)度的工作可以分為以下兩種情況:
1)、 linux系統(tǒng)自身定期執(zhí)行的任務(wù)工作:系統(tǒng)周期性自行執(zhí)行的任務(wù)工作,如輪詢系統(tǒng)日志、備份系統(tǒng)數(shù)據(jù)、清理系統(tǒng)緩存等,
這些任務(wù)無須我們?nèi)藶楦深A(yù)。例如:
2)、用戶執(zhí)行的任務(wù)工作:某個用戶或系統(tǒng)管理員定期要做的工作,例如每隔5分鐘和互聯(lián)網(wǎng)上的時間服務(wù)器進行時間同步,
每天晚上0點備份網(wǎng)站站點數(shù)據(jù)及數(shù)據(jù)庫數(shù)據(jù),一般這些工作需要由用戶自己來設(shè)置。
3)、crond服務(wù)是運行的程序,而crontab是用戶用來設(shè)置定時規(guī)則的命令。
crontab -l 查看用戶設(shè)置的定時任務(wù))
crontab-e 編輯定時任務(wù)配置文件
crontab-u 設(shè)定某個用戶的crontab服務(wù)只有root用戶才能執(zhí)行
crontab-r 刪除crontab文件
crontab-i 刪除crontab文件給出提示
4)crontab語法格式中時間段的含義
| 段 | 含義 | 取值范圍(整數(shù)) |
| 第一段 | 表示分鐘 | 00-59(00也可以是0) |
| 第二段 | 表示小時 | 00-23 |
| 第三段 | 表示日、天 | 01-31 |
| 第四段 | 表示月份 | 01-12 |
| 第五段 | 表示星期、周幾 | 0-7(0和7都表示周日) |
| 提示:記憶口訣:分時日月周 |
| 特殊符號 | 含義 |
| * | *號表示任意時間都,實際就是“每”的意思。如:00 23 * * * cmd表示每月每周每日的23:00都執(zhí)行cmd任務(wù)。 提示:定時任務(wù)如果是到小時,口述時就最多提每天。 分位上的*就等價于0-59,表示每分。 |
| - | 減號,表示分隔符,表示一個時間范圍,區(qū)間段,如17-19點,每天的17,18,19點的00分執(zhí)行任務(wù)。00 17-19 * * * cmd。就是17,18,19點整點分別執(zhí)行的意思。 |
| , | 逗號,表示分隔時段的意思。30 17,18,19 * * * /bin/sh /scripts/test.sh 表示每天17、18、19點的半點時刻執(zhí)行/scripts/test.sh腳本。 |
| /n | n代表數(shù)字,即“每個n單位時間”,例如:每10分鐘執(zhí)行一次任務(wù),可以寫成*/10 * * * * cmd,其中*/10的意思是每10分鐘執(zhí)行cmd命令。 |
4、用戶定時任務(wù)例子
基本格式 :?
* * * * * command?
分 時 日 月 周 命令?
第1列表示分鐘1~59 每分鐘用*或者 */1表示?
第2列表示小時1~23(0表示0點)?
第3列表示日期1~31?
第4列表示月份1~12?
第5列標識號星期0~6(0表示星期天)?
第6列要運行的命令
每個一分鐘執(zhí)行一次 test.sh
總結(jié)
以上是生活随笔為你收集整理的Linux: 系统配置 crond 和 crontab(有图有代码有真相!!!)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言实现读取elf文件某section
- 下一篇: CentOS7和CentOS8 Aste