日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux进阶之路————crond定时任务调度

發(fā)布時(shí)間:2025/3/12 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux进阶之路————crond定时任务调度 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引言

crond 的概念和 crontab 是不可分割的。crontab 是一個(gè)命令,而 crond 是Linux 下用來周期性執(zhí)行某種任務(wù)或等待處理某些事件的守護(hù)進(jìn)程,類似于 Windows 下的計(jì)劃任務(wù)。

當(dāng)裝完操作系統(tǒng)之后,默認(rèn)便會(huì)安裝 crond 服務(wù)工具,并會(huì)自動(dòng)啟動(dòng) crond 進(jìn)程,crond 進(jìn)程每分鐘定期檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動(dòng)執(zhí)行該任務(wù)。

Linux 下的定時(shí)任務(wù)種類

種類使用場(chǎng)景
at適合僅執(zhí)行一次就結(jié)束的調(diào)度命令,需要啟動(dòng)一個(gè)后端的atd服務(wù)。?
crontab最常用的定時(shí)任務(wù),需要啟動(dòng)一個(gè)服務(wù)crond才行,crond服務(wù)通過crontab命令實(shí)現(xiàn)?
anacron無法周期性執(zhí)行,只能以天為周期,但有個(gè)特點(diǎn),在關(guān)機(jī)狀態(tài)下未>執(zhí)行的任務(wù),下次開機(jī)時(shí)可以補(bǔ)上執(zhí)行

crontab 工作原理

在 Linux 中,crontab 是最常用的定時(shí)任務(wù)工具,系統(tǒng)會(huì)每分鐘循環(huán)檢查任務(wù)列表,默認(rèn)系統(tǒng)中可以登錄的用戶,都可以使用 crontab 定義計(jì)劃任務(wù)。另外,還可以通過 /etc/cron.allow 文件來限制權(quán)限

系統(tǒng)任務(wù)調(diào)度和用戶任務(wù)調(diào)度

crontab 設(shè)置定時(shí)任務(wù)可以分為兩類:

系統(tǒng)任務(wù)調(diào)度:指的是系統(tǒng)級(jí)別的周期性任務(wù),如定期寫磁盤、日志清理。/etc/crontab 文件就是系統(tǒng)任務(wù)調(diào)度的配置文件。

用戶任務(wù)調(diào)度:通過 crontab -e 進(jìn)行編寫的任務(wù),都屬于用戶任務(wù)調(diào)度,這類任務(wù)可以包括:用戶數(shù)據(jù)備份、定時(shí)郵件提醒等。Linux 系統(tǒng)會(huì)將所有用戶設(shè)置的定時(shí)任務(wù)存放到 /var/spool/cron 目錄中,文件名與用戶名一致:

執(zhí)行 crontab -r? 后,即直接刪除用戶 crontab 文件:

cron 表達(dá)式

【基本含義】

項(xiàng)目含義范圍
第一個(gè)*一小時(shí)當(dāng)中的第幾分鐘0-59
第二個(gè)*一天當(dāng)中的第幾小時(shí)0-23
第三個(gè)*一個(gè)月當(dāng)中的第幾天1-31
第四個(gè)*一年當(dāng)中的第幾月1-12
第五個(gè)*一周當(dāng)中的星期幾0-7(0和7 都代表星期日)

【特殊符號(hào)含義】

特殊符號(hào)含義
*任何時(shí)間。如第一個(gè) * 代表每分鐘都執(zhí)行。
不連續(xù)的時(shí)間,如:0 8,12 * * * ,表示每天8:00和12:00各執(zhí)行一次。
-連續(xù)的時(shí)間段,如:0 5 * * 1-6,表示每周一到周六的5:00執(zhí)行。
/間隔時(shí)間,如:*/10 * * * * , 表示每隔 10 分鐘執(zhí)行一次,不看時(shí)間點(diǎn)。

crontab 基本應(yīng)用

【語(yǔ)法】

crontab [-u user] [ -e | -l | -r ]

【常用參數(shù)】

-e 編輯 crontab 定時(shí)任務(wù)

-l? 查詢crontab 定時(shí)任務(wù)

-r? 刪除當(dāng)前用戶所有的 crontab 任務(wù)(終止任務(wù)調(diào)度)

【服務(wù)操作】

service crond restart 或 /sbin/service crond restart? 重啟任務(wù)調(diào)度服務(wù)?

service crond stop 關(guān)閉服務(wù)

service crond start 啟動(dòng)服務(wù)

service crond reload 重新載入配置

查看crontab 運(yùn)行日志

/var/log/cron-日期? 文件中,可以看到定時(shí)任務(wù)的執(zhí)行情況:

應(yīng)用案例1

【案例要求】將 /etc 目錄下的文件列表每分鐘追加到 /tmp/to.txt 文件中。

【操作步驟】

1)?cron? -e

2)?*/1 * * * * ?ls -l /etc >>/tmp/to.txt

3)保存退出,即可生效

?

應(yīng)用案例2

【案例要求】每天凌晨2點(diǎn),將mysql數(shù)據(jù)庫(kù)testdb,備份到文件mydb.bak中

1)先編寫一個(gè)腳本文件,/home/mytask3.sh

/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak

2)給mytask3.sh 一個(gè)可執(zhí)行權(quán)限

chmod 744 /home/mytask3.sh

3)crontab -e

4)0 2 * * * /home/mytask3.sh

【注意】如果直接執(zhí)行類似 * * * * * ls? /home? 或 * * * * * echo 'hello? world' 這樣的任務(wù),Linux會(huì)每分鐘發(fā)一封郵件給當(dāng)前用戶。保存在 /var/spool/mail/root 中。

總結(jié)

以上是生活随笔為你收集整理的Linux进阶之路————crond定时任务调度的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。