1. 程式人生 > 其它 >【Go 語言社群】GO語言多核並行化的問題

【Go 語言社群】GO語言多核並行化的問題

本文轉載自(有刪改):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中%是有特殊含義的,表示換行的意思,如果要用的話必須進行轉義\%