一个应用系统每天都需不间断的向数据库中插入数据,而对于很早之前的数据一般都需要从数据库中清理,防止数据量无限增大,耗费存储和影响数据查询效率。
通过两个文件实现,一个文件为配置文件,一个为脚本文件。
本示例为删除数据库中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)运行脚本文件
[root@localhost tmp]# ./deletedbdata.sh