就像再windows上有計畫任務一樣,centos7 自然也有計畫任務,而且設定更為靈活,好用。再centos7 上可以利用crontab 來執行計畫任務, 依賴與 crond 的系統服務,這個服務是系統自帶的,可以直接檢視狀態,啟動,停止。
yum install crontabs
systemctl enable crond (設為開機啟動)
systemctl start crond(啟動crond服務)
systemctl status crond (檢視狀態)
vi /etc/crontab
可以看到:
example of job definition:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) or jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed
shell=/bin/bash
path=/sbin:/bin:/usr/sbin:/usr/bin
mailto=root
# for details see man 4 crontabs
# example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) or jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
0 1 * * * root /root/crontab/datacrawl.sh
即:
分鐘(0-59) 小時(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示週日) 使用者名稱 要執行的命令
載入任務,使之生效:crontab /etc/crontab
檢視任務:crontab -l
$ crontab -u 使用者名稱 -l (列出使用者的定時任務列表)
ps:特別注意,crond的任務計畫, 有並不會呼叫使用者設定的環境變數,它有自己的環境變數,當你用到一些命令時,比如mysqldump等需要環境變數的命令,手工執行指令碼時是正常的,但用crond執行的時候就會不行,這時你要麼寫完整的絕對路徑,要麼將環境變數新增到 /etc/crontab 中。
好了,計畫任務就是這麼簡單了,但是計畫任務,執行的語句如果是多條,則需要用藥shell指令碼,自己先寫乙個shell指令碼,然後在計畫任務中,執行這個指令碼即可。至於shell指令碼的寫法, 這裡不贅述。
開啟文字編輯器(可以使用 vi/vim 命令來建立檔案),新建乙個檔案 test.sh,擴充套件名為 sh(sh代表shell),副檔名並不影響指令碼執行,見名知意就好,如果你用 php 寫 shell 指令碼,副檔名就用 php 好了。
輸入一些**,第一行一般是這樣:
#!/bin/bash
echo "hello world !"
#! 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種 shell。
echo 命令用於向視窗輸出文字。
1、作為可執行程式
將上面的**儲存為 test.sh,並 cd 到相應目錄:
chmod +x ./test.sh #使指令碼具有執行許可權
./test.sh #執行指令碼
注意,一定要寫成 ./test.sh,而不是test.sh,執行其它二進位制的程式也一樣,直接寫 test.sh,linux 系統會去 path 裡尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 path 裡,你的當前目錄通常不在 path 裡,所以寫成 test.sh 是會找不到命令的,要用 ./test.sh 告訴系統說,就在當前目錄找。
栗子:
#!/bin/bash
cd /root/crontabs/feifengdatatomysql/
echo pwd
dotnet feifengdatatomysql.dll
centos7計畫任務
at mldv time at c 任務號碼 m 執行完成後傳送郵件給使用者 l at l相當於atq,列出目前系統上面的所有該使用者的at計畫 d at d相當於atrm,可以取消乙個在at計畫中的任務 v 可以使用較明顯的時間格式列出at計畫中的任務列表 c 可以列出後面接的該項任務的實際命令內...
MySQL定時計畫任務
5.1版本以後,mysql支援定時執行 event 的功能,就跟linux的crontab差不多。一 先檢視一下你的msyql版本,查詢版本資訊的sql語句 sql select version 確定版本支援之後,再檢視一下event是否開啟 二 檢視是否開啟event 1 mysql event功...
ansible windows 定時計畫任務
ansible使用win shell模組執行windows命令。ansible all m win shell a schtasks create sc daily tn restart tr c windows system32 shutdown.exe r f t 1 st 02 00 建立定時...