CentOS7 定時計畫任務設定

2021-09-12 01:16:47 字數 2605 閱讀 2436

就像再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 建立定時...