2021-05-12 14:32:11
Linux中利用crontab建立計劃任務及利用shell方式執行MySQL語句
本次來說說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
相關文章