【Go 語言社群】GO語言多核並行化的問題
阿新 • • 發佈:2022-05-04
本文轉載自(有刪改):https://blog.csdn.net/laobai1015/article/details/119484017
一、概念
crontab命令常見於Unix和類Unix的作業系統之中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中(是“cron table”的簡寫),以供之後讀取和執行。
該詞來源於希臘語 chronos(χρνο),原意是時間。通常,crontab儲存的指令被守護程序啟用, crond常常在後臺執行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。
簡單點說:就是和鬧鐘的概念類似。就是定時執行
二、下載
#檢視命令在哪個包裡 yum provides crontab #選擇其中一個下載 yum -y install cronie-1.4.11-20.el7_6.x86_64
#啟動
systemctl start crontab
三、crontab命令
3.1 命令格式
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
3.2 命令功能
- 通過crontab 命令,可以在固定的間隔時間執行指定的系統指令或 shell script指令碼
- 時間間隔的單位可以是分鐘、小時、日、月、周及以上的任意組合
- 這個命令非常設合週期性的日誌分析或資料備份等工作
3.3 命令引數
-u | 用來設定某個使用者的crontab服務,例如,“-u ixdba”表示設定ixdba使用者的crontab服務,此引數一般有root使用者來執行 |
file | file是命令檔案的名字,表示將file做為crontab的任務列表檔案並載入crontab,如果在命令列中沒有指定這個檔案,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab |
-e | 編輯某個使用者的crontab檔案內容。如果不指定使用者,則表示編輯當前使用者的crontab檔案 |
-l | 顯示某個使用者的crontab檔案內容,如果不指定使用者,則表示顯示當前使用者的crontab檔案內容 |
-r | 從/var/spool/cron目錄中刪除某個使用者的crontab檔案,如果不指定使用者,則預設刪除當前使用者的crontab檔案 |
-i | 在刪除使用者的crontab檔案時給確認提示 |
3.4 命令格式
每一行都代表一項任務,每行的每個欄位代表一項設定,它的格式共分為六個欄位,前五段是時間設定段,第六段是要執行的命令段,格式如下:
1 minute hour day month week command 2 # For details see man 4 crontabs 3 # Example of job definition: 4 .---------------------------------- minute (0 - 59) 表示分鐘 5 | .------------------------------- hour (0 - 23) 表示小時 6 | | .---------------------------- day of month (1 - 31) 表示日期 7 | | | .------------------------- month (1 - 12) OR jan,feb,mar,apr ... 表示月份 8 | | | | .---------------------- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 表示星期(0 或 7 表示星期天) 9 | | | | | .------------------- username 以哪個使用者來執行 10 | | | | | | .------ command 要執行的命令,可以是系統命令,也可以是自己編寫的指令碼檔案 11 | | | | | | | 12 * * * * * user-name command to be executed
3.5 示例
格式 | 說明 |
*/1 * * * * service httpd restart | 每一分鐘 重啟httpd服務 |
0 */1 * * * service httpd restart | 每一小時 重啟httpd服務 |
30 21 * * * service httpd restart | 每天 21:30 分 重啟httpd服務 |
26 4 1,5,23,28 * * service httpd restart | 每月的1號,5號 23 號 28 號 的4點26分,重啟httpd服務 |
26 4 1-21 * * service httpd restart | 每月的1號到21號 的4點26分,重啟httpd服務 |
*/2 * * * * service httpd restart | 每隔兩分鐘 執行,偶數分鐘 重啟httpd服務 |
1-59/2 * * * * service httpd restart | 每隔兩分鐘 執行,奇數 重啟httpd服務 |
0 23-7/1 * * * service httpd restart | 每天的晚上11點到早上7點 每隔一個小時 重啟httpd服務 |
0,30 18-23 * * * service httpd restart | 每天18點到23點 每隔30分鐘 重啟httpd服務 |
59 1 1-7 4 * test 'date +\%w' -eq 0 && /root/a.sh | 四月的第一個星期日 01:59 分執行指令碼 /root/a.sh ,命令中的 test是判斷,%w是數字的星期幾 |
*/1 * * * * sleep 30s;data >> /tmp/cron.txt | 每30秒 把時間寫入 /tmp/cron.txt 檔案 |
四、配置檔案
檔案 | 說明 |
/etc/crontab | 全域性配置檔案 |
/etc/cron.d | 這個目錄用來存放任何要執行的crontab檔案或指令碼 |
/etc/cron.deny | 該檔案中所列使用者不允許使用crontab命令 |
/etc/cron.allow | 該檔案中所列使用者允許使用crontab命令 |
/var/spool/cron/ | 所有使用者crontab檔案存放的目錄,以使用者名稱命名,比如你是root 使用者,那麼當你新增任務是,就會在該路徑下有一個root檔案。 |
/etc/cron.deny | 該檔案中所列使用者不允許使用crontab命令 |
/var/log/cron | crontab 的日誌檔案 |
五、注意事項
5.1 環境變數
環境變數的值,在crontab 檔案中獲取不到,所以要注意,可以寫指令碼
5.2 %
在crontab中%是有特殊含義的,表示換行的意思,如果要用的話必須進行轉義\%