首頁 > 軟體

Linux中利用crontab建立計劃任務及利用shell方式執行MySQL語句

2020-06-16 17:07:56

本次來說說Linux  crontab定時任務來執行shell指令碼檔案,以及怎麼通過shell指令碼來執行sql語句;

其實crontab跟spring quartz定時任務是差不多的意思,在我看來是完全一樣的;

像這種適合的場景,一般用於簡單的對資料進行操作,適合沒有複雜邏輯的操作,比如本次因為活動需要將某個商品的價格調為活動價,像這種邏輯不是很複雜的,能通過簡單的sql就

能完成的就非常適合用這個定時任務了,>>

如圖本次因為活動需要將原價4388元的ipad價格調為活動價4200,但必須要在10月1號生效,在10月1號之前保持原價,

 下面實現需求:

1.首先本次操作的檔案在伺服器的目錄為/home/she/下,首先在she資料夾下新建檔案shu.sh檔案,內容為(這裡需要會一點shell語言功底):

#!/bin/sh
user=bizme
pass=www123*
db=qianzhao
tablename=ecshop_items
mysql -u$user -p$pass -D $db -e "UPDATE ecshop_items SET price=4200 WHERE id='106U9FQUM4C1Q_12_21';"

根據上圖根據自己的資料庫來調整響應的引數,引數意思都標準畫質除了,每個欄位都標的很清楚了的,

 還有另外一種寫法是將sql語句單獨寫到一個檔案中然後執行執行響應的.sql檔案,具體是:

#!/bin/sh
user=bizme
 pass=www123*
 db=qianzhao
 tablename=ecshop_items
mysql -u$user -p$pass -D $db < /home/she/city.sql

然後在/home/she檔案加下新建一個city.sql檔案內容就是上面需要執行的sql:

UPDATE ecshop_items SET price=4200 WHERE id='106U9FQUM4C1Q_12_21';

好了,檔案都建好了之後現在需要改下許可權不然無法執行的,將剛剛新建的.sh指令碼檔案改下許可權,命令為:chmod 744 shu.sh

如果使用的是標準的linux色彩檢視的話會看到檔案顏色會變為綠色的:

好了,最後就是新建一個定時任務了:命令:crontab -e

新建一行:0 0 1 10 * /home/she/shu.sh  意思為10月1日0點執行:

這個時間設定有點類似於quartz的時間設定,但又不完全相同:  依次為:分鐘,小時,日,月,星期,

編輯好了之後以:wq方式儲存,跟vim編輯器儲存方式相同.

最後上結果:

成功執行了,根據自己的業務邏輯調整sql其實很多定時任務都可以以這種方式來完成.

完!!!

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-09/146893.htm


IT145.com E-mail:sddin#qq.com