1. 程式人生 > >shell指令碼實現刪除過期資料庫中的資料

shell指令碼實現刪除過期資料庫中的資料

一個應用系統每天都需不間斷的向資料庫中插入資料,而對於很早之前的資料一般都需要從資料庫中清理,防止資料量無限增大,耗費儲存和影響資料查詢效率。

通過兩個檔案實現,一個檔案為配置檔案,一個為指令碼檔案。

本示例為刪除資料庫中180天(時間可在配置檔案中修改)前的資料。

說明:示例中表格名稱為Talarm,InsertTime欄位為插入資料的時間(內容格式為:2016-11-06 19:36:00)

1)配置檔案:dbinfo.conf

ndate=180   #設定天數
dbuser=root     #資料庫賬號
dbpassword=123456  #資料庫密碼
dbname=testdb  #資料庫名稱
2)指令碼檔案:deletedbdata.sh
#!/bin/bash
. dbinfo.conf #讀取配置檔案
 
datestr=`date -d "-$ndate day" +%Y-%m-%d` #生成ndate天前的日期,如:2016-07-19 
delSqlStr="DELETE FROM Talarm WHERE InsertTime <'$datestr'" #SQL語句
mysql -u$dbuser -p$dbpassword $dbname -e "$delSqlStr"  #執行SQL語句

3)執行指令碼檔案

[[email protected] tmp]# ./deletedbdata.sh