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 定時任務cron crontabLinux
- crontab定時任務
- linux定時任務的設定 crontab 配置指南Linux
- crontab使用說明【一文搞懂Linux定時任務Crontab】Linux
- linux 使用crontab 建立定時任務Linux
- Linux Crontab Shell指令碼實現秒級定時任務Linux指令碼
- Linux定時任務Crontab不起作用的排查步驟Linux
- Linux下的crontab定時執行任務命令詳解Linux
- Laravel 定時任務以及 crontab 安裝Laravel
- linux 如何建立定時任務?crontab -e 定時任務使用的時間是系統時間Linux
- Linux(Debian)使用crontab設定定時任務Linux
- Linux定時任務crontab通俗易懂簡單扼要地解析Linux
- Django定時任務Django-crontab的使用Django
- Linux 定時任務Linux
- Linux | 定時任務Linux
- [Linux常用命令之定時任務Crontab命令] 2018-10-12Linux
- 日誌切割logrotate和定時任務crontab詳解logrotate
- 簡單介紹Shell中的定時任務 crontab
- crontab定時任務環境變數使用問題變數
- crontab任務
- celery筆記七之週期/定時任務及crontab定義筆記
- 在dotnet core實現類似crontab的定時任務
- Centos 7下利用crontab定時執行任務詳解CentOS
- linux定時任務cron配置Linux
- Linux 定時任務排程Linux
- Linux系統中延時任務及定時任務Linux
- linux中crontab計劃任務怎麼刪除?linux中crontab計劃任務的刪除方法Linux
- linux crontab 定時任務 郵件問題 及其相關的 dead.letter 問題Linux
- 給root外的其他使用者新增 crontab 定時任務
- linux系統怎麼新增每天定時任務? linux系統新增定時任務的教程Linux
- Linux 學習筆記--任務計劃 crontabLinux筆記
- linux實現一個定時任務Linux
- linux 定時任務替代大牛 工具 cronsunLinux
- Linux系統管理之定時任務Linux
- Linux中如何實現定時任務Linux
- crontab 定時
- 小白折騰伺服器(四):佇列 supervisor 與定時任務 crontab伺服器佇列
- WGCLOUD使用筆記 - 監測主機的Crontab定時任務資訊GCCloud筆記