linux設定定時任務
crontab命令概述
crontab命令用於設定週期性被執行的指令,並將其存放在/etc/crontab檔案,以供之後讀取和執行。
cron系統排程程序,可以使用它在每天的非高峰負荷段執行作業,或在一周或一月中不同時段執行,cron是系統主要的排程程序,可以無需人工干預的情況下執行作業。
檢查是否安裝了crontab,如果提示未安裝請自行安裝,crontab安裝包在系統光碟裡面的pacekage資料夾,也可以進入此**找相對應的crontab安裝包。
crontab預設開機自啟,ubuntu,centos系統通用。
方式一:
# /etc/init.d/crond start 啟動服務
# /etc/init.d/crond stop 停止服務
# /etc/init.d/crond restart 重啟服務
# /etc/init.d/crond reload 過載配置檔案
# /etc/init.d/crond status 檢視服務狀態(可檢視是否在執行定時任務)
方式二(ubuntu16.04適用):
# service cron start 啟動服務
# service cron stop 停止服務
# service cron restart 重啟服務
# service cron reload 過載配置檔案
# service cron status 檢視服務狀態(可檢視是否在執行定時任務)
方式三:
# /sbin service cron start 啟動服務
# /sbin service cron stop 停止服務
# /sbin service cron restart 重啟服務
# /sbin service cron reload 過載配置檔案
# /sbin service cron status 檢視服務狀態(可檢視是否在執行定時任務)
常用操作:
# crontab –l 顯示crontab檔案(顯示已設定的定時任務)
# crontab –e 編輯crontab檔案(編輯定時任務)
# crontab –r 刪除crontab檔案(刪除定時任務)
# crontab –ir 刪除crontab檔案提醒使用者(刪除定時任務)
補充說明:
在編輯crontab檔案中寫入需要執行的命令和時間,該檔案中每行都包括六個域,其中前五個域是指定命令被執行的時間,最後乙個域是要被執行的命令。每個域之間使用空格或者製表符分隔。
格式如下:
minute hour day-of-month month-of-year day-of-week commands
合法值為:00-59 00-23 01-31 01-12 0-6 (0 is sunday)
除了數字還有幾個特殊的符號:"*"、"/"和"-"、","
"*"代表所有的取值範圍內的數字
"/"代表每的意思,"/5"表示每5個單位
"-"代表從某個數字到某個數字
","分開幾個離散的數字
注:commands 注意以下幾點
要是存在檔案,要寫絕對路徑。
即使是列印也不會顯示在顯示屏,在後台執行,最好重定向日誌。
使用案例:
# crontab -e (編輯crontab檔案)
輸入內容
*/1 * * * * root echo 「hello world!」 >> /root/test.txt
(用root許可權,每分鐘執行一次命令,輸出hello world! 並寫入 /root/test.txt)
過載crontab檔案
# service cron reload
重啟crontab服務
# service cron restart
進入/root/test.txt檢視輸出結果
說明:
/etc/crontab下面存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五個目錄和crontab,cron.deny二個檔案。
cron.daily 是每天執行一次的job
cron.weekly 是每個星期執行一次的job
cron.monthly 每月執行一次的job
cron.hourly 是每個小時執行一次的job
cron.d 是系統自動定期需要做的任務
crontab 是設定定時任務執行檔案
cron.deny 檔案就是用於控制不讓哪些使用者使用crontab的功能
編寫shell指令碼
#vim /root/test.sh
輸入內容
#!/bin/bash
echo 「hello world」
編寫crontab檔案
crontab –e
輸入內容
*/1 * * * * root /root/test.sh
(用root許可權每分鐘執行/root/test.sh指令碼)
過載crontab檔案
# service cron reload
重啟crontab服務
# service cron restart
等待任務執行結果(可用service cron status命令追蹤任務)
注:
用編譯crontab檔案的方式執行指令碼,有些linux命令可能會無法執行(待解決)。
推薦配置crontab全域性檔案來執行shell指令碼
vim /etc/crontab
新增內容(例子)
0 2 * * 0 root cd /root/zentao && docker-compose down && docker-compose up --build
(每個星期日凌晨2:00重啟禪道)
*/1 * * * * root /home/lenovosh/work/bianyi.sh
(每分鐘執行 指定的bianyi.sh指令碼檔案)
10 14 1 * * root /home/lenovosh/work/bianyi.sh
(每個月的1號14:10執行 指定的bianyi.sh指令碼檔案)
1 0 * * 1,3,5 root /home/lenovosh/work/bianyi.sh
(每週一、三、五凌晨00:01執行 指定的bianyi.sh指令碼檔案)
0 0 * * * * root shutdown –a now
(每天零點準時關機)
過載crontab檔案
# service cron reload
重啟crontab服務
# service cron restart
等待任務執行結果(可用service cron status命令追蹤任務)
linux定時任務cron
一 cron格式 其格式如下 minute hour day month dayofweek command 分鐘 小時 天 月 天每星期 命令 比如 15 ls 表示每15分鐘執行一次ls 即每個小時的第0 15 30 45 60分鐘執行ls命令 25 8 11 ls 每天8 11點的第25分鐘執...
Cron 定時任務 時間設定
crontriggers往往比 trigger更有用,如果您需要基於日曆的概念,而非 trigger完全指定的時間間隔,的發射工作的時間表。crontrigger,你可以指定觸發的時間表如 每星期五中午 或 每個工作日9 30時 甚至 每5分鐘一班9 00和10 00逢星期一上午,星期三星期五 即便...
cron設定定時任務詳解
定時任務cron job被用於安排那些需要被週期性執行的命令。利用它,你可以配置某些命令或者指令碼,讓它們在某個設定的時間內周期性地執行。cron 是 linux 或者類 unix 系統中最為實用的工具之一。cron 服務 守護程序 在系統後台執行,並且會持續地檢查 etc crontab檔案和 e...