Centos7下 crontab+shell腳本定時執行mysql數據庫的sql語句

一、業務場景

數據庫中產生的一些無效的或者廢棄的數據。需要定期的刪除,又不想寫java的定時器,然後嘗試着使用shell腳本進行處理該業務。

二、業務實現:

1、在服務器創建目錄shell

2、創建腳本文件excute_mysql.sh

 

#!/bin/bash
# Define log 
TIMESTAMP=`date +%Y%m%d%H%M%S` #日期
LOG=execute_sql_${TIMESTAMP}.log  #日誌名稱
echo "Start execute sql statement at `date`." >>${LOG}
# execute sql start 
HOSTNAME="127.0.0.1"     #數據庫信息
PORT="3306"                 #端口號
USERNAME="root"             #數據庫賬戶
PASSWORD="root"             #數據庫密碼
DBNAME="ceshi_data"  #數據庫名稱
TABLENAME1="u_order"        #數據庫中表的名稱
TABLENAME2="u_order_item" #數據庫中表的名稱
#執行的sql語句
delete_sql="DELETE o,d
FROM ${TABLENAME1}  o
LEFT JOIN ${TABLENAME2}  d ON d.order_id = o.id
WHERE 1=1
AND o.state = 0
AND DATE(o.expire_date) < DATE(NOW())"

mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${delete_sql}"

 

3、授權腳本文件

chmod +x excute_mysql.sh

4、創建定時任務

crontab -e

5、每隔20分鐘執行一次

  */20 * * * *  /home/pan/java/shell/excute_mysql.sh

6、重啓crond進程

service crond restart

7、查看crond進程狀態

service crond status

8、查看crond任務

crontab -l

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章