Linux - crontab(定時任務)
一、介紹
crontab命令的功能是在一定的時間間隔排程一些命令的執行。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。
二、引數
-u :指定一個使用者
-l :列出某個使用者的任務計劃
-r :刪除某個使用者的任務
-e :編輯某個使用者的任務
三、cron檔案
1、編輯命令
1)、在命令列輸入: crontab -e 然後新增相應的任務,wq存檔退出
2)、直接編輯/etc/crontab 檔案,即vi /etc/crontab,新增相應的任務
2、檔案格式
Minute Hour Day Month DayofWeek CommandPath
3、引數說明
Minute:每個小時的第幾分鐘執行該任務;取值範圍0-59
Hour:每天的第幾個小時執行該任務;取值範圍0-23
Day:每月的第幾天執行該任務;取值範圍1-31
Month:每年的第幾個月執行該任務;取值範圍1-12
DayOfWeek:每週的第幾天執行該任務;取值範圍0-6,0表示週末
CommandPath:指定要執行的程式路徑
4、時間格式
* :表示任意的時刻;如小時位 * 則表示每個小時
n :表示特定的時刻;如小時位 5 就表示5時
n,m :表示特定的幾個時刻;如小時位 1,10 就表示1時和10時
n-m :表示一個時間段;如小時位 1-5 就表示1到5點
5、排程示例
* 1 * * * /opt/script/backup.sh :從1:0到1:59 每隔1分鐘 執行
15 05 * * * /opt/script/backup.sh :05:15 執行
*/10 * * * * /opt/script/backup.sh :每隔10分 執行
0 17 * * 1 /opt/script/backup.sh :每週一的 17:00 執行
2 8-20/3 * * * /opt/script/backup.sh :8:02,11:02,14:02,17:02,20:02 執行
6、後臺執行
1)、說明
當在前臺執行某個作業時,終端被該作業佔據;而在後臺執行作業時,它不會佔據終端。可以使用&命令把作業放到後臺執行
需要與使用者互動的作業當注意不要放在後臺執行
在後臺執行的作業一樣會將結果輸出到螢幕上,如果放在後臺執行的作業會產生大量的輸出,最好將它的輸出重定向到某個檔案中
2)、標識
0 :表示鍵盤輸入
1 :表示標準輸出
2 :表示錯誤輸出
& :後臺執行
> : 覆蓋檔案內容
>>:追加檔案內容
&1 :表示的是檔案描述1,表示標準輸出;如果這裡少了&就成了數字1,就表示重定向到檔案1
2>&1 :將錯誤輸出重定向到標準輸出
1>/dev/null :將標準輸出重定向到檔案/dev/null;1>/dev/null等同於>/dev/null
3)、示例
0 2 * * * /u01/test.sh 1>/dev/null 2>&1 &
這句話的意思就是在後臺執行這條命令,並將錯誤輸出2重定向到標準輸出1,然後將標準輸出1全部放到/dev/null 檔案,也就是清空。
4)、位置
2>&1 需要寫在command 1>file 後面。
在command 1>file 2>&1,首先是 command 1>file 將標準輸出重定向到file中,2>&1 是標準錯誤拷貝了標準輸出,也就是同樣被重定向到file中,最終結果就是標準輸出和錯誤都被重定向到file中。
如果改成:command 2>&1 >file 2>&1,標準錯誤拷貝了標準輸出的行為,但此時標準輸出還是在終端。>file 後輸出才被重定向到file,但標準錯誤仍然保持在終端。
crontab命令的功能是在一定的時間間隔排程一些命令的執行。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。
二、引數
-u :指定一個使用者
-l :列出某個使用者的任務計劃
-r :刪除某個使用者的任務
-e :編輯某個使用者的任務
三、cron檔案
1、編輯命令
1)、在命令列輸入: crontab -e 然後新增相應的任務,wq存檔退出
2)、直接編輯/etc/crontab 檔案,即vi /etc/crontab,新增相應的任務
2、檔案格式
Minute Hour Day Month DayofWeek CommandPath
3、引數說明
Minute:每個小時的第幾分鐘執行該任務;取值範圍0-59
Hour:每天的第幾個小時執行該任務;取值範圍0-23
Day:每月的第幾天執行該任務;取值範圍1-31
Month:每年的第幾個月執行該任務;取值範圍1-12
DayOfWeek:每週的第幾天執行該任務;取值範圍0-6,0表示週末
CommandPath:指定要執行的程式路徑
4、時間格式
* :表示任意的時刻;如小時位 * 則表示每個小時
n :表示特定的時刻;如小時位 5 就表示5時
n,m :表示特定的幾個時刻;如小時位 1,10 就表示1時和10時
n-m :表示一個時間段;如小時位 1-5 就表示1到5點
*/n : 表示每隔多少個時間執行一次;如小時位 */2 就表示每隔2個小時執行,也可以寫成 1-23/2
n/m : 表示在指定的增量n的基礎上每隔多少時間執行一次;如分鐘位 3/5 表示從第3分鐘開始,每5分鐘執行一次(即3,8,13 ...)
5、排程示例
* 1 * * * /opt/script/backup.sh :從1:0到1:59 每隔1分鐘 執行
15 05 * * * /opt/script/backup.sh :05:15 執行
*/10 * * * * /opt/script/backup.sh :每隔10分 執行
0 17 * * 1 /opt/script/backup.sh :每週一的 17:00 執行
2 8-20/3 * * * /opt/script/backup.sh :8:02,11:02,14:02,17:02,20:02 執行
6、後臺執行
1)、說明
當在前臺執行某個作業時,終端被該作業佔據;而在後臺執行作業時,它不會佔據終端。可以使用&命令把作業放到後臺執行
需要與使用者互動的作業當注意不要放在後臺執行
在後臺執行的作業一樣會將結果輸出到螢幕上,如果放在後臺執行的作業會產生大量的輸出,最好將它的輸出重定向到某個檔案中
2)、標識
0 :表示鍵盤輸入
1 :表示標準輸出
2 :表示錯誤輸出
& :後臺執行
> : 覆蓋檔案內容
>>:追加檔案內容
&1 :表示的是檔案描述1,表示標準輸出;如果這裡少了&就成了數字1,就表示重定向到檔案1
2>&1 :將錯誤輸出重定向到標準輸出
1>/dev/null :將標準輸出重定向到檔案/dev/null;1>/dev/null等同於>/dev/null
3)、示例
0 2 * * * /u01/test.sh 1>/dev/null 2>&1 &
這句話的意思就是在後臺執行這條命令,並將錯誤輸出2重定向到標準輸出1,然後將標準輸出1全部放到/dev/null 檔案,也就是清空。
4)、位置
2>&1 需要寫在command 1>file 後面。
在command 1>file 2>&1,首先是 command 1>file 將標準輸出重定向到file中,2>&1 是標準錯誤拷貝了標準輸出,也就是同樣被重定向到file中,最終結果就是標準輸出和錯誤都被重定向到file中。
如果改成:command 2>&1 >file 2>&1,標準錯誤拷貝了標準輸出的行為,但此時標準輸出還是在終端。>file 後輸出才被重定向到file,但標準錯誤仍然保持在終端。
相關文章
- Linux crontab 定時任務Linux
- Linux 定時任務(crontab)Linux
- linux之 crontab 定時任務Linux
- linux的定時任務crontabLinux
- Linux Crontab定時任務命令Linux
- Linux Crontab 定時任務[轉]Linux
- crontab定時任務
- 排查linux 定時任務cron crontabLinux
- CentOS Crontab(定時任務)CentOS
- Linux下的定時任務crontab設定Linux
- 【Linux定時任務】crontab使用經驗Linux
- [Linux]crontab定時任務自動化Linux
- Linux Crontab 定時任務 命令詳解Linux
- linux定時任務的設定 crontab 配置指南Linux
- 定時任務crontab 詳解
- (定時任務)crontab 的用法
- crontab定時任務維護
- linux 定時任務 crontab 詳細解釋!Linux
- linux設定crontab定時執行任務計劃Linux
- crontab使用說明【一文搞懂Linux定時任務Crontab】Linux
- 【Django】Django定時任務之-crontabDjango
- 在solaris下crontab 定時任務
- Crontab 定時任務命令詳解
- Laravel 定時任務以及 crontab 安裝Laravel
- Crontab定時任務排程介紹
- CentOS Linux使用crontab執行定時任務詳解CentOSLinux
- linux 使用crontab 建立定時任務Linux
- linux下定時任務 crontab詳解Linux
- linux 如何建立定時任務?crontab -e 定時任務使用的時間是系統時間Linux
- Linux Crontab Shell指令碼實現秒級定時任務Linux指令碼
- Linux定時任務Crontab不起作用的排查步驟Linux
- Linux下的crontab定時執行任務命令詳解Linux
- Django定時任務Django-crontab的使用Django
- Linux定時任務crontab通俗易懂簡單扼要地解析Linux
- Linux中crontab定時任務未執行錯誤總結Linux
- Linux crontab定時執行任務 命令格式與詳細例子Linux
- 定時自動啟動任務crontab命令用法
- 利用cygwin建立windows下的crontab定時任務Windows