shell指令碼實現刪除過期資料庫中的資料
阿新 • • 發佈:2019-01-05
一個應用系統每天都需不間斷的向資料庫中插入資料,而對於很早之前的資料一般都需要從資料庫中清理,防止資料量無限增大,耗費儲存和影響資料查詢效率。
通過兩個檔案實現,一個檔案為配置檔案,一個為指令碼檔案。
本示例為刪除資料庫中180天(時間可在配置檔案中修改)前的資料。
說明:示例中表格名稱為Talarm,InsertTime欄位為插入資料的時間(內容格式為:2016-11-06 19:36:00)
1)配置檔案:dbinfo.conf
2)指令碼檔案:deletedbdata.shndate=180 #設定天數 dbuser=root #資料庫賬號 dbpassword=123456 #資料庫密碼 dbname=testdb #資料庫名稱
#!/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