小時: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命令使用詳解與總結

登錄

找回密碼

注冊

主站蜘蛛池模板: 色综合五月伊人六月丁香| 欧美亚洲综合成人a∨在线| 少妇高潮喷水在线观看| 国产主播精品福利午夜二区| 樱花草视频www日本韩国| 日本喷奶水中文字幕视频| 5D肉蒲团之性战奶水欧美| 一区二区乱子伦在线播放| 免费看视频的网站| 成全高清在线播放电视剧| 加勒比色综合久久久久久久久| 任我爽精品视频在线播放 | 清苑县| 久久天天躁夜夜躁狠狠 ds005.com | 西和县| 天天干天天干| 精品少妇av蜜臀av| 国产偷倩视频| 国产成人精品国内自产色| 精品午夜久久福利大片| 亚洲中文字幕无码中字| 成人网站av亚洲国产| 国产成人高清精品亚洲| 顺昌县| 高清无码18| 西西人体www大胆高清| 在线a亚洲老鸭窝天堂| 亚洲欧美综合精品成| 国产色爱av资源综合区| 天天爽夜夜爱| 久久一区二区三区黄色片| 国产美女久久久亚洲综合| 亚洲AV无码久久精品日韩| 国产乱码精品一区二区三上| 国产一区二区日韩在线| 色成人精品免费视频| 中文字幕人妻无码一夲道| 又爽又黄无遮挡高潮视频网站| 男女xx00xx的视频免费观看| 国产视频深夜在线观看| 又黄又爽又色的免费网站 |