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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

linux

Linux基础系列(六)Linux系统定时任务Crond

發(fā)布時(shí)間:2025/5/22 linux 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux基础系列(六)Linux系统定时任务Crond 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Linux系統(tǒng)定時(shí)任務(wù)Crond

Crond是什么

Crond是Linux系統(tǒng)中用來(lái)定期執(zhí)行命令或指定程序任務(wù)的一種服務(wù)或軟件。

特殊需求:(秒級(jí)別)crond服務(wù)就無(wú)法搞定,一般工作中邪腳本守護(hù)進(jìn)程執(zhí)行(一般用不上)

為什么要使用crond定時(shí)任務(wù)

Linux系統(tǒng)的定時(shí)任務(wù)crond,相當(dāng)于我們平時(shí)生活中得鬧鐘功能。可以滿足周期性執(zhí)行任務(wù)的需求。

Linux系統(tǒng)的定時(shí)任務(wù)

Linux系統(tǒng)中定時(shí)任務(wù)調(diào)度的工作可以分為以下兩種情況

1.Linux系統(tǒng)自身定期執(zhí)行的任務(wù)工作:系統(tǒng)周期性執(zhí)行的任務(wù)工作,如輪詢系統(tǒng)日志,備份系統(tǒng)數(shù)據(jù),清理系統(tǒng)緩存等


2.用戶執(zhí)行的任務(wù)工作:例如每隔5分鐘和互聯(lián)網(wǎng)上時(shí)間服務(wù)器進(jìn)行時(shí)間同步。一般這些工作需要用戶自行設(shè)置。

[root@student?~]#?crontab?-l ####time?sync?by?xuliangwei?2015-07-30 */5?*?*?*?*?/usr/sbin/ntpdate?time.windows.com?>/dev/null?2>&1

定時(shí)任務(wù)crond使用說(shuō)明

[root@student?~]#?crontab?--help crontab:?invalid?option?--?'-' crontab:?usage?error:?unrecognized?option usage:??crontab?[-u?user]?filecrontab?[-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)

指令選項(xiàng)說(shuō)明表

參數(shù)含義指定示例

-e編輯crontab文件內(nèi)容crontab?-e -l查看crontab文件內(nèi)容crontab?-l -i刪除crontab文件內(nèi)容,刪除前會(huì)提示確認(rèn)Crontab?-ri -r刪除crontab文件內(nèi)容crontab?-r -u指定使用的用戶執(zhí)行任務(wù)crontab?-u?xuliangwei?-l

提示:crontab {-l -e}實(shí)際上就是在操作/var/spool/cron/當(dāng)前用戶這樣的文件

crontab語(yǔ)法格式中時(shí)間段含義表

含義取值范圍

第一段代表分鐘00-59 第二段代表小時(shí)00-23 第三段代表日期01-31 第四段代表月份01-12 第五段代表星期0-7(0和7都代表星期天)

crontab語(yǔ)法格式特殊符號(hào)含義表

特殊符號(hào)含義

**號(hào)表示任意時(shí)間都,就是”每”的意思,舉例:如 00 01 * * * cmd 表示每月每周每日的凌晨1點(diǎn)執(zhí)行cmd命令

-減號(hào),表示分隔符,表示一個(gè)時(shí)間范圍段,如17-19點(diǎn),每小時(shí)00分執(zhí)行任務(wù) 00 17-19 * * * cmd 就是17,18,19整點(diǎn)分別執(zhí)行

,逗號(hào),表示分隔符時(shí)間段的意思。30 20,21,22 * * * cmd 表示每天20,21,22點(diǎn)得半點(diǎn)執(zhí)行cmd。?

?/nn代表數(shù)字,即”每隔n單位時(shí)間”例如:每10分鐘執(zhí)行一次任務(wù) */10 * * * * cmd ? 其中*/10 ?也可以寫(xiě)成 ?0-59/10


使用者權(quán)限及定時(shí)任務(wù)文件

文件說(shuō)明

/etc/crontabCrontab配置文件

/etc/cron.deny該文件中所列用戶不允許使用crontab命令。

/var/spool/cron所有用戶crontab配置文件默認(rèn)都存放在此目錄,文件以用戶名命名。

生產(chǎn)中書(shū)寫(xiě)定時(shí)任務(wù)的要領(lǐng)

為定時(shí)任務(wù)規(guī)則加必要的注釋

[root@student?~]#?crontab?-l ####time?sync?by?xuliangwei?2015-07-30 */5?*?*?*?*?/usr/sbin/ntpdate?time.windows.com?>/dev/null?2>&1

定時(shí)任務(wù)命令或程序最好寫(xiě)到腳本里執(zhí)行

[root@student?~]#?crontab?-l ####backup?www?to?/backup?xuliangwei?2015-07-30 00?01?*?*?*?/bin/sh?/server/scripts/www_backup.sh?>/dev/null?2>&1

定時(shí)任務(wù)執(zhí)行的腳本要規(guī)范路徑(/server/scripts)

[root@student?~]#?crontab?-l ####backup?www?to?/backup?xuliangwei?2015-07-30 00?01?*?*?*?/bin/sh?/server/scripts/www_backup.sh?>/dev/null?2>&1

執(zhí)行shell腳本任務(wù)前加/bin/sh

[root@student?~]#?crontab?-l ####backup?www?to?/backup?xuliangwei?2015-07-30 00?01?*?*?*?/bin/sh?/server/scripts/www_backup.sh?>/dev/null?2>&1

定時(shí)任務(wù)命令或腳本結(jié)尾加>/dev/null 2>&1

[root@student?~]#?crontab?-l ####backup?www?to?/backup?xuliangwei?2015-07-30 00?01?*?*?*?/bin/sh?/server/scripts/www_backup.sh?>/dev/null?2>&1

在指定用戶下執(zhí)行相關(guān)的定時(shí)任務(wù)

這里要特別注意不同用戶的環(huán)境變量問(wèn)題,如果是調(diào)用了系統(tǒng)環(huán)境變量/etc/profile,最好在程序腳本中將用到得環(huán)境變量重新export下。

生產(chǎn)任務(wù)程序不要隨意打印輸出信息

在調(diào)試好腳本程序后,應(yīng)盡量把DEBUG及命令的輸出信息屏蔽掉,如果確實(shí)需要輸出日志,可定向到日志文件里,避免產(chǎn)生系統(tǒng)垃圾。

配置定時(shí)任務(wù)規(guī)范操作過(guò)程

1)配置定時(shí)任務(wù)規(guī)范操作過(guò)程,防止出錯(cuò)。

2)首先要在命令操作成功,然后復(fù)制成功的命令到腳本里,在各個(gè)細(xì)小環(huán)節(jié)減少出錯(cuò)的機(jī)會(huì)

3)然后測(cè)試腳本,測(cè)試成功后,復(fù)制腳本的規(guī)范路徑到定時(shí)任務(wù)配置里,不要手敲。

生產(chǎn)中如何調(diào)試定時(shí)任務(wù)

規(guī)范的公司開(kāi)發(fā)和運(yùn)維人員操作流程:

個(gè)人的開(kāi)發(fā)配置環(huán)境→辦公室測(cè)試環(huán)境→idc機(jī)房測(cè)試環(huán)境→idc機(jī)房正式環(huán)境。

增加執(zhí)行任務(wù)頻率調(diào)試任務(wù)

在調(diào)試時(shí),把任務(wù)執(zhí)行頻率調(diào)快一點(diǎn),看能不能正常執(zhí)行,如果正常,那就沒(méi)問(wèn)題,再改成需要的任務(wù)的執(zhí)行時(shí)間。

注意:有些任務(wù)時(shí),不允許頻繁執(zhí)行,例如:定時(shí)往數(shù)據(jù)庫(kù)里插入數(shù)據(jù),這樣的任務(wù)要在測(cè)試機(jī)上測(cè)試好,然后正式線上出問(wèn)題的機(jī)會(huì)就少了。

調(diào)整系統(tǒng)時(shí)間調(diào)試任務(wù)

用正確的執(zhí)行任務(wù)的時(shí)間,設(shè)置完成后,可以修改下系統(tǒng)當(dāng)前時(shí)間,改成任務(wù)執(zhí)行時(shí)間的前幾分鐘來(lái)測(cè)試(或者重啟定時(shí)任務(wù)服務(wù))

注意:(不能直接用于生產(chǎn)環(huán)境),保證5分鐘

通過(guò)腳本日志輸出調(diào)試定時(shí)任務(wù)

在腳本中加入日志輸出,然后把輸出打到指定的日志中,然后觀察日志內(nèi)容的結(jié)果,看是否正確執(zhí)行。

注意一些任務(wù)命令帶來(lái)的問(wèn)題

* * * * * echo “xuliangwei” >>/tmp/xlw.log >/dev/null 2>&1 這里隱藏的無(wú)法正確執(zhí)行的任務(wù)配置,原因是前面多了>>,或者去掉后面的 >/dev/null 2>&1

注意環(huán)境變量導(dǎo)致的定時(shí)任務(wù)故障

例如:在調(diào)試java程序任務(wù)的時(shí)候,注意環(huán)境變量,把環(huán)境變量的定義加到腳本里。

通過(guò)crond定時(shí)任務(wù)服務(wù)日志調(diào)試定時(shí)任務(wù)

[root@student?~]#?tail?-f?/var/log/cron Jul?31?12:15:01?student?CROND[7530]:?(root)?CMD?(/usr/sbin/ntpdate?time.windows.com?>/dev/null?2>&1) Jul?31?12:15:29?student?crontab[7527]:?(root)?REPLACE?(root)

生產(chǎn)中定時(shí)任務(wù)10簡(jiǎn)言

系統(tǒng)環(huán)境變量問(wèn)題

腳本權(quán)限問(wèn)題加 /bin/sh

實(shí)踐變量問(wèn)題用反斜線\%轉(zhuǎn)義,最好使用腳本。

>/dev/null 2>&1問(wèn)題

定時(shí)任務(wù)規(guī)則之前加注釋

使用腳本程序替代命令行定時(shí)任務(wù)

避免不必要的程序及命令輸出

1)切到目標(biāo)目錄的上一級(jí)打包目標(biāo)

2)定時(shí)任務(wù)腳本中的程序命令盡量用全路徑(和環(huán)境變量的識(shí)別有關(guān))


轉(zhuǎn)載于:https://blog.51cto.com/liangweilinux/1681210

總結(jié)

以上是生活随笔為你收集整理的Linux基础系列(六)Linux系统定时任务Crond的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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