Linux系統(tǒng)定時(shí)任務(wù)
1.什么是定時(shí)任務(wù)?
周期性的執(zhí)行任務(wù)計(jì)劃的軟件,Linux定時(shí)任務(wù)軟件的常用軟件crond
cron是定時(shí)任務(wù)的軟件名
crond是服務(wù)進(jìn)程名辱姨,真正實(shí)現(xiàn)定時(shí)任務(wù)服務(wù)
crontab命令是用來設(shè)置定時(shí)任務(wù)
2.定時(shí)任務(wù)作用說明:
01.使用定時(shí)軟件誊酌,可以每天每小時(shí)按你的需求重復(fù)的執(zhí)行一項(xiàng)工作
02.類似生活中使用的鬧鐘,可以自動(dòng)完成操作命令椭员,定時(shí)備份系統(tǒng)數(shù)據(jù)信息车海。
3.定時(shí)任務(wù)實(shí)現(xiàn)方式
01.定時(shí)任務(wù)服務(wù)環(huán)境準(zhǔn)備
a. 啟動(dòng)crond服務(wù) ?
關(guān)閉crond服務(wù):systemctl stop crond.service
啟動(dòng)crond服務(wù):systemctl start crond.service
查看crond服務(wù)狀態(tài):systemctl status crond.service
b.設(shè)置開機(jī)自啟動(dòng)
開機(jī)自啟動(dòng)crond服務(wù):systemctl enable crond.service
開機(jī)不啟動(dòng)crond服務(wù):systemctl disable crond.service
02.系統(tǒng)定時(shí)任務(wù)
a. 系統(tǒng)定時(shí)任務(wù)周期:
每小時(shí) ?目錄/etc/cron.hourly
每一天 ?目錄/etc/cron.daily
每一周 ?目錄/etc/cron.weekly
每個(gè)月 ?目錄/etc/cron.monthly
b. /etc/crontab 系統(tǒng)定時(shí)任務(wù)的配置文件之一(有記錄定時(shí)任務(wù)格式)
c. 系統(tǒng)定時(shí)任務(wù)+logrotate命令 完成對(duì)日志的切割/日志輪詢
/var/log/cron
/var/log/messages
/var/log/secure
02.用戶定時(shí)任務(wù)
用戶定時(shí)任務(wù)查看 ? ? ?crontab -l ?== cat /var/spool/cron/root
用戶定時(shí)任務(wù)編輯 ? ? ?crontab -e ?== ?vim /var/spool/cron/root
定時(shí)任務(wù)配置文件 ? ? ?/var/spool/cron/root (root文件表示root用戶設(shè)置的定時(shí)任務(wù),文件名是根據(jù)用戶名設(shè)置的)
注:定時(shí)任務(wù)常見提示信息
a. no crontab for root ? 當(dāng)前用戶沒有編輯定時(shí)任務(wù)
b. Do you want to retry the same edit ? 定時(shí)任務(wù)編輯錯(cuò)誤是否繼續(xù)
03.定時(shí)任務(wù)編寫語法格式:
定時(shí)任務(wù)常用符號(hào)
* ? ? ? 每 ?
/n ? ? 每隔
- ? ? ? 連續(xù)區(qū)間
, ? ? ? ?分隔
04.定時(shí)任務(wù)編寫流程
a. 測試定時(shí)執(zhí)行命令(定時(shí)任務(wù)執(zhí)行的命令用絕對(duì)路徑)
b. 編寫定時(shí)任務(wù)信息(先編寫注釋信息隘击,編寫定時(shí)任務(wù))
c. 檢查定時(shí)任務(wù)效果:查看定時(shí)任務(wù)日志(可以臨時(shí)修改定時(shí)任務(wù)每分鐘執(zhí)行侍芝,最終修改定時(shí)任務(wù)的時(shí)間)
定時(shí)任務(wù)對(duì)%不識(shí)別,百分號(hào)需要轉(zhuǎn)義\%
盡量使用腳本文件實(shí)現(xiàn)
a. 測試定時(shí)執(zhí)行腳本(定時(shí)任務(wù)執(zhí)行的腳本利用絕對(duì)路徑/bin/sh)
b. 編寫定時(shí)任務(wù)信息(先編寫注釋信息埋同,編寫定時(shí)任務(wù) 在任務(wù)信息后邊加上>/dev/null 2>&1 避免產(chǎn)生很多沒用的小文件占用磁盤inode)
c. 檢查定時(shí)任務(wù)效果:查看定時(shí)任務(wù)日志(可以臨時(shí)修改定時(shí)任務(wù)每分鐘執(zhí)行州叠,最終修改定時(shí)任務(wù)的時(shí)間)
定時(shí)任務(wù)編寫要領(lǐng)
(1)為定時(shí)任務(wù)規(guī)則加必要的注釋
(2)所有的定時(shí)任務(wù)盡量都以腳本的形式執(zhí)行
(3)在執(zhí)行的shell腳本前加上/bin/sh
(4)在定時(shí)任務(wù)中命令或腳本的結(jié)尾加上 >/dev/null 2>&1
(5)在指定用戶下執(zhí)行相關(guān)定時(shí)任務(wù)
(6)生產(chǎn)任務(wù)計(jì)劃程序中不要隨意打印輸出信息,有輸出的想法去掉
(7)定時(shí)任務(wù)執(zhí)行的腳本喲啊存放到規(guī)范路徑下
(8)配置定時(shí)任務(wù)要規(guī)范操作過程凶赁,減少出錯(cuò)
(9)定時(shí)任務(wù)腳本中程序命令及路徑盡量用全路徑
(10)時(shí)間變了%號(hào)要用反斜線轉(zhuǎn)義(只有定時(shí)任務(wù)里時(shí)命令時(shí)需要)
(11)若腳本中調(diào)用了系統(tǒng)環(huán)境變量留量,要重現(xiàn)定義
(12)出錯(cuò)或無法執(zhí)行,就檢查/var/log/cron日志