linux的定時計劃任務Crontab
2015/07/06 17:54
瀏覽771
迴響0
推薦0
引用0
1、什麽是crontab
crontab命令常見於Unix和類Unix的操作系統之中,用於設置周期性被執行的指令。該命令從標準輸入設備讀取指令,並將其存放於“crontab”文件中,以供之後讀取和執行。該詞來源於希臘語 chronos(χρνο),原意是時間。通常,crontab儲存的指令被守護進程激活, crond常常在後臺運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。
計劃任務分2種:
1、 例外性:按一定的周期循環來執行工作,如每月發薪水、每天一次的工作報告、每天需要的打卡等等;
2、 臨時性:指定時間執行的命令,這次做完下次不必做的,如領導檢查工作等;
這些計劃任務的工作 Linux也都可以幫助我們,如:每天早6:00要叫我起床(當然是通過音頻設備了);下班之前發送一份Email給自己,提醒別忘記發日報等;
對於周期性的任務用cron命令; -- 周期性計劃任務
對於臨時性的任務用 at 命令; -- 一次性計劃任務
at命令:在指定的時間執行指定的命令,執行完之後就從系統中取消該命令;
cron命令:在指定的時間周期性的執行指定的命令;
安裝crontab:
yum install crontabs
說明:
/etc/init.d/crond start啟動服務
/etc/init.d/crond stop 關閉服務
/etc/init.d/crond restart 重啟服務
/etc/init.d/crond reload 重新載入配置
查看crontab服務狀態: /etc/init.d/crondd status
查看crontab服務是否已設置為開機啟動,執行命令:ntsysv
加入開機自啟動: chkconfig –level 35 crond on
2、crontab命令
使用權限:
root用戶和crontab文件的所有者
語法:
crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
說明:
crontab 是用來讓使用者在固定時間或固定間隔執行程序之用,換句話說,也就是類似使用者的時程表。-u user 是指設定指定 user 的時程表,這個前提是你必須要有其權限(比如說是 root)才能夠指定他人的時程表。如果不使用 -u user 的話,就是表示設定自己的時程表。
參數:
-e [UserName]: 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe),編輯定時任務
-r [UserName]: 刪除目前的時程表 刪除定時任務
-l [UserName]: 列出目前的時程表查詢定時任務
-v [UserName]:列出用戶cron作業的狀態 查看定時任務的執行狀態或過程
crontab命令格式:
基本格式: * * * * * command
分 時 日 月 周 命令
第1列表示:分鐘1~~59 每分鐘用*或*/1表示
第2列表示:小時1~~23 (0 表示0點)
第3列表示:日期1~~31
第4列表示:月份1~~12
第5列表示:星期0~~6 (0 表示 星期天)
第6列表示:運行的命令
wKiom1V0-gfBL7syAAHWdnAArFs022.jpg
crontab命令特殊符號:
wKioL1V0-6mhxSflAAGhR_wnkaI596.jpg
wKiom1V0-geyvqkOAAFZpBsaPp0065.jpg
3、案例
30 21 * * * /etc/init.d/nginx restart 每晚21:30 重啟nginx
45 4 1,10,22 * * /etc/init.d/nginx restart 每月1、10、22日的4:45分 重啟nginx
10 1 * * 6,0/etc/init.d/nginx restart 每周六日的1:10 重啟nginx
0,30 18-23 * * * /etc/init.d/nginx restart 18點至23點之間每隔30分鐘重啟nginx
0 23 * * 6 /etc/init.d/nginx restart 每周六的23點重啟nginx
* */1 * * * /etc/init.d/nginx restart 每一小時重啟nginx
* 23-7/1 * * * /etc/init.d/nginx restart 晚上23點到早上7點之間,每小時重啟nginx
0 11 4 * mon-wed /etc/init.d/nginx restart 每月4號的周一到周三 11點重啟nginx
0 4 1 jan * /etc/init.d/nginx restart 一月1號的4點重啟nginx
*/30 * * * * /usr/sbin/ntpdate 210.72.145.20 每30分鐘同步一次時間
crontab命令常見於Unix和類Unix的操作系統之中,用於設置周期性被執行的指令。該命令從標準輸入設備讀取指令,並將其存放於“crontab”文件中,以供之後讀取和執行。該詞來源於希臘語 chronos(χρνο),原意是時間。通常,crontab儲存的指令被守護進程激活, crond常常在後臺運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。
計劃任務分2種:
1、 例外性:按一定的周期循環來執行工作,如每月發薪水、每天一次的工作報告、每天需要的打卡等等;
2、 臨時性:指定時間執行的命令,這次做完下次不必做的,如領導檢查工作等;
這些計劃任務的工作 Linux也都可以幫助我們,如:每天早6:00要叫我起床(當然是通過音頻設備了);下班之前發送一份Email給自己,提醒別忘記發日報等;
對於周期性的任務用cron命令; -- 周期性計劃任務
對於臨時性的任務用 at 命令; -- 一次性計劃任務
at命令:在指定的時間執行指定的命令,執行完之後就從系統中取消該命令;
cron命令:在指定的時間周期性的執行指定的命令;
安裝crontab:
yum install crontabs
說明:
/etc/init.d/crond start啟動服務
/etc/init.d/crond stop 關閉服務
/etc/init.d/crond restart 重啟服務
/etc/init.d/crond reload 重新載入配置
查看crontab服務狀態: /etc/init.d/crondd status
查看crontab服務是否已設置為開機啟動,執行命令:ntsysv
加入開機自啟動: chkconfig –level 35 crond on
2、crontab命令
使用權限:
root用戶和crontab文件的所有者
語法:
crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
說明:
crontab 是用來讓使用者在固定時間或固定間隔執行程序之用,換句話說,也就是類似使用者的時程表。-u user 是指設定指定 user 的時程表,這個前提是你必須要有其權限(比如說是 root)才能夠指定他人的時程表。如果不使用 -u user 的話,就是表示設定自己的時程表。
參數:
-e [UserName]: 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe),編輯定時任務
-r [UserName]: 刪除目前的時程表 刪除定時任務
-l [UserName]: 列出目前的時程表查詢定時任務
-v [UserName]:列出用戶cron作業的狀態 查看定時任務的執行狀態或過程
crontab命令格式:
基本格式: * * * * * command
分 時 日 月 周 命令
第1列表示:分鐘1~~59 每分鐘用*或*/1表示
第2列表示:小時1~~23 (0 表示0點)
第3列表示:日期1~~31
第4列表示:月份1~~12
第5列表示:星期0~~6 (0 表示 星期天)
第6列表示:運行的命令
wKiom1V0-gfBL7syAAHWdnAArFs022.jpg
crontab命令特殊符號:
wKioL1V0-6mhxSflAAGhR_wnkaI596.jpg
wKiom1V0-geyvqkOAAFZpBsaPp0065.jpg
3、案例
30 21 * * * /etc/init.d/nginx restart 每晚21:30 重啟nginx
45 4 1,10,22 * * /etc/init.d/nginx restart 每月1、10、22日的4:45分 重啟nginx
10 1 * * 6,0/etc/init.d/nginx restart 每周六日的1:10 重啟nginx
0,30 18-23 * * * /etc/init.d/nginx restart 18點至23點之間每隔30分鐘重啟nginx
0 23 * * 6 /etc/init.d/nginx restart 每周六的23點重啟nginx
* */1 * * * /etc/init.d/nginx restart 每一小時重啟nginx
* 23-7/1 * * * /etc/init.d/nginx restart 晚上23點到早上7點之間,每小時重啟nginx
0 11 4 * mon-wed /etc/init.d/nginx restart 每月4號的周一到周三 11點重啟nginx
0 4 1 jan * /etc/init.d/nginx restart 一月1號的4點重啟nginx
*/30 * * * * /usr/sbin/ntpdate 210.72.145.20 每30分鐘同步一次時間
限會員,要發表迴響,請先登入