小時:1-23
日期:1-31
月份:1-12
星期:0-6(0表示周日)

還可以用一些特殊符號:

*: 表示任何時刻
,: 表示分割
-:表示一個段,如第二端里: 1-5,就表示1到5點
/n : 表示每個n的單位執行一次,如第二段里,*/1, 就表示每隔1個小時執行一次命令。也可以寫成1-23/1.

一些示例:

00 8,12,16 * * * /data/app/scripts/monitor/df.sh
30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh
10 8,12,16 * * * /data/app/scripts/monitor/check_ind_unusable.sh
10 8,12,16 * * * /data/app/scripts/monitor/check_maxfilesize.sh
10 8,12,16 * * * /data/app/scripts/monitor/check_objectsize.sh
43 21 * * *       21:43 執行
15 05 * * *       05:15 執行
0 17 * * *        17:00 執行
0 17 * * 1        每周一的 17:00 執行
0,10 17 * * 0,2,3    每周日,周二,周三的 17:00和 17:10 執行
0-10 17 1 * *      毎月1日從 17:00到7:10 毎隔1分鐘 執行
0 0 1,15 * 1       毎月1日和 15日和 一日的 0:00 執行
42 4 1 * *        毎月1日的 4:42分 執行
0 21 * * 1-6       周一到周六 21:00 執行
0,10,20,30,40,50 * * * * 每隔10分 執行
*/10 * * * *       每隔10分 執行
* 1 * * *         從1:0到1:59 每隔1分鐘 執行
0 1 * * *         1:00 執行
0 */1 * * *        毎時0分 每隔1小時 執行
0 * * * *         毎時0分 每隔1小時 執行
2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02 執行
30 5 1,15 * *       1日 和 15日的 5:30 執行

Crontab命令后臺執行&

當在前臺運行某個作業時,終端被該作業占據;而在后臺運行作業時,它不會占據終端。可以使用&命令把作業放到后臺執行。

如:

30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh &

在后臺運行作業時要當心:需要用戶交互的命令不要放在后臺執行,因為這樣你的機器就會在那里傻等。

不過,作業在后臺運行一樣會將結果輸出到屏幕上,干擾你的工作。如果放在后臺運行的作業會產生大量的輸出,最好使用下面的方法把它的輸出重定向到某個文件中:

如:

command >out.file 2>&1 &

在這個例子中,2>&1表示所有的標準輸出和錯誤輸出都將被重定向到一個叫做out.file 的文件中。

Crontab命令 2>&1 含義

先看一個例子:

0 2 * * * /u01/test.sh >/dev/null 2>&1 &

這句話的意思就是在后臺執行這條命令,并將錯誤輸出2重定向到標準輸出1,然后將標準輸出1全部放到/dev/null 文件,也就是清空。

在這里有有幾個數字的意思:

0表示 鍵盤輸入
1表示 標準輸出
2表示 錯誤輸出

我們也可以這樣寫:

0 2 * * * /u01/test.sh 1>/u01/out.file &
0 2 * * * /u01/test.sh 2>/u01/out.file &
0 2 * * * /u01/test.sh 2>/u01/out.file 2>&1 &

將tesh.sh 命令輸出重定向到out.file, 即輸出內容不打印到屏幕上,而是輸出到out.file文件中。

2>&1 是將錯誤輸出重定向到標準輸出。 然后將標準輸入重定向到文件out.file。

&1 表示的是文件描述1,表示標準輸出,如果這里少了&就成了數字1,就表示重定向到文件1。

& :后臺執行

測試:

ls 2>1 : 不會報沒有2文件的錯誤,但會輸出一個空的文件1;
ls xxx 2>1: 沒有xxx這個文件的錯誤輸出到了1中;
ls xxx 2>&1: 不會生成1這個文件了,不過錯誤跑到標準輸出了;
ls xxx >out.txt 2>&1 == ls xxx 1>out.txt 2>&1:  因為重定向符號>默認是1,這句就把錯誤輸出和標準輸出都傳到out.txt 文件中。

Crontab命令 2>&1寫在后面的原因

格式:command > file 2>&1   ==  command  1> file 2>&1

首先是command > file將標準輸出重定向到file中, 2>&1 是標準錯誤拷貝了標準輸出,也就是同樣被重定向到file中,最終結果就是標準輸出和錯誤都被重定向到file中。

如果改成: command 2>&1 >file

2>&1 標準錯誤拷貝了標準輸出的行為,但此時標準輸出還是在終端。>file 后輸出才被重定向到file,但標準錯誤仍然保持在終端。

經驗教訓:

打算在服務器上 每天晚上23:00 定時執行Python腳本,去備份MySql數據庫,命令如下:

* 23 * * * python /var/www/html/crontab_python/back_db.py >/dev/null 2>&1

結果呢,每次備份都產生了 60份 備份文件,仔細查看定時任務命令,發現在“分”的位置上,少加了個“0”,因為“*”表示該位置的任何一個值,修改如下:

0 23 * * * python /var/www/html/crontab_python/back_db.py >/dev/null 2>&1

然后是PHP腳本的定時執行

0 4 * * * /usr/local/php/bin/php /usr/local/nginx/www/backup-db/backup_db.php 172.16.8.26 >/dev/null 2>&1
0 4 * * * /usr/local/php/bin/php /usr/local/nginx/www/backup-db/backup_db.php 172.16.10.151 >/dev/null 2>&1
贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » Linux定時任務Crontab命令使用詳解與總結

登錄

找回密碼

注冊

主站蜘蛛池模板: 四虎成人精品永久网站| 亚洲国产精品视频一二区| 亚洲午夜伦费影视在线观看| 性一交一乱一伦| 久久91精品牛牛| 国产区成人精品视频| 亚洲AVAV天堂AV在线网阿V| 亚洲av区一区二区三区| 亚洲国产精品日韩AV专区| 色吊丝中文字幕在线观看| 人人爽人人爽人人片av东京热| 行唐县| 久久精品不卡一区二区| 999精品全免费观看视频| 欧美va亚洲va在线观看| 久久精品国产久精国产| 扬中市| 国产综合亚洲区在线观看| 九九热视频精品在线播放| 国产成人麻豆亚洲综合无码精品| 国产日韩精品中文字幕| 在线高清免费不卡全码| 亚洲天堂一区二区成人在线| 亚洲熟女少妇乱色一区二区 | 国产欧美综合在线观看第十页| 偷窥少妇久久久久久久久| 国产精品中文字幕一二三| 亚洲鸥美日韩精品久久| 婷婷四虎东京热无码群交双飞视频 | 国产福利一区二区三区在线观看| 万盛区| 免费国产va在线观看| 精品国产一区二区三区国产区| 亚洲国产99精品国自产拍| 高清免费毛片| 国产精品视频免费一区二区| 亚洲一区二区中文av| 香蕉EEWW99国产精选免费| 国产无遮挡猛进猛出免费软件| 古交市| 欧美人与动zozo在线播放|