Linux定時任務

2022-09-17 04:18:14 字數 2988 閱讀 3892

一、計畫任務

後台執行,到了預定的時間就會自動執行的任務。前提是:事先手動將計畫任務設定好。

計畫任務用到的服務是crond服務

1. 檢查crond服務相關的軟體包

rpm -qa |grep cron      

注: rpm -ivh 安裝rpm軟體

rpm -qa 檢視軟體是否安裝

rpm -ql 檢視軟體詳細資訊

rpm -qf 檢視命令屬於的安裝包(which ;rpm  -qf )| yum whatprovides 'command'

rpm -e 解除安裝軟體

2. 檢查crond服務是否執行

3. crond定時任務服務應用

cron 是linux系統中以後臺程序模式週期性執行命令或指定程式任務的服務軟體名

linux系統啟動後,cron軟體便會啟動,對應的程序名字叫做crond,預設是定期(每分鐘檢查一次)檢查系統中是否有需要執行的任務計畫,如果有,則按計畫進行。

crond定時任務預設最快的頻率是每分鐘執行

若是需要以秒為單位的計畫任務,則編寫shell指令碼改格式,crond不適用。

4. 為什麼需要crond定時任務

夜間資料庫定時備份

備份等待時間過長

任務重複性高

5. linux下定時任務軟體

at定時任務工具,依賴於atd服務,適用於執行一次就結束的排程任務。

cron 定時任務依賴於crond服務,啟動crond服務後,通過linux命令crontab可以配置週期性定時任務,是linux運維最常用的工具。

crond需要讀取配置檔案,且有固定檔案格式,通過crontab命令管理檔案。

cron任務分為兩類:系統定時任務和使用者定時任務計畫

系統定時任務:crond服務除了會在工作時檢視/var/spool/cron 資料夾下的定時任務外,還會檢視/etc/cron.d目錄以及/etc/anacrontab 下面的檔案內容,裡面存放每天、每週、每月需要執行的系統任務。

使用者定時任務計畫:當系統管理員或者普通使用者建立了需要定期執行的任務,可以使用crontab命令配置,crond服務在啟動時,會每分鐘檢視/var/spool/cron路徑下以系統使用者名稱命名的定時任務檔案,以確定是否有需要執行的任務。

二、crontab命令

crontab命令被用來提交和管理使用者的需要週期性執行的任務,與windows下的計畫任務類似。

crontab命令是在修改/var/spool/cron中的定時任務檔案

1. 使用者檢視定時任務

crontab -l #列出使用者設定的定時任務,等於cat var/spool/cron/root

crontab -e #編輯使用者的定時任務,等於如上命令編輯的是 vi /var/spool/cron/root檔案

2. 定時任務相關檔案

/var/spool/cron  定時任務的配置檔案所在目錄

/var/log/cron  定時任務日誌檔案

/etc/cron.deny  定時任務黑名單

3. 定時任務語法格式

檢視定時任務配置檔案 cat /etc/crontab

crontab任務配置基本格式:

* *  *  *  *  command

分鐘(0-59) 小時(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令

第1列表示分鐘1~59 每分鐘用*或者 */1表示

第2列表示小時1~23(0表示0點)

第3列表示日期1~31

第4列表示月份1~12

第5列標識號星期0~6(0表示星期天)

第6列要執行的命令

注:day of month 和day of week一般不同時使用

表示法:

特定值,時間點有效取值範圍內的值

萬用字元,某時間點有效範圍內的所有制,表示「每」的意思

示例:每晚21:51時執行/tmp/test.sh指令碼

4. 生產環境使用者配置定時任務流程

需求:每分鐘向/tmp/testcron/hellohaha.txt 檔案中寫入一句話「learn and use linux system」

第一步:確保檔案存在

第二步:編寫定時任務檔案,寫入需要定時執行的任務(crontab -e)

第三步:檢查定時任務(crontab -l)

第四步:可以檢測檔案內容(tail -f /tmp/testcron/hellohaha.txt)

示例:每5分鐘讓伺服器進行時間同步

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...

linux定時任務

crontab 設定定時任務 crontab 可以根據分鐘 小時 日期 月份 星期的組合來設定定時任務的自動執行 要使用該服務必須啟動 crond 服務,檢視 crond 服務有沒有啟動,執行命令 servicecrond status 一些任務事例,幫助理解 3020 root back.sh 每...

linux 定時任務

如果想要半夜在linux上備份oracle使用定時命令是最好不過的啦,下面整理了一下linux上的定時任務,可以參考一下 包括一次性的定時at,和長期的定時cron。cron設定 cron長期定時 cron是linux的內建服務,不會自動啟動 service crond start stop sta...