码迷,mamicode.com
首页 > 数据库 > 详细

linux shell脚本自动删除mysql表前3个月的数据

时间:2015-10-15 18:49:04      阅读:333      评论:0      收藏:0      [点我收藏+]

标签:linux   自动删除   shell脚本   前3个月   mysql表   数据   

RDS有一个数据库表tbl_online表,有6千万数据,需要清理,保留3个月。

步骤如下:

  1. 创建月表

  2. 将需要删除的数据写入月表

  3. 删除数据

  4. 优化表


shell如下:


#!/bin/bash


base="rdsxx.mysql.rds.aliyuncs.com"


#前3个月的日期

months_ago=`date -d "-3 month" +"%Y-%m-%d"`

#前3个月的月份,去掉前面的0

months_ago_mon=`date -d "-3 month" +"%-m"`

#前3个月年份

years_ago_year=`date -d "-3 month" +"%-Y"`


#+++++++++++++++++++++++++++++++++++++

statime=`date +%Y-%m-%d" "%H:%M:%S`

echo "############################" >> /opt/tbl_online.log

#创建月表

/usr/local/mysql/bin/mysql -u root -h $base -e "use kd_shop;create table if not exists tbl_online_bak_"$years_ago_year"_$months_ago_mon like tbl_online;"


echo "$statime开始插入"$months_ago"数据" >> /opt/tbl_online.log

/usr/local/mysql/bin/mysql -u root -h $base -e  "use kd_shop;insert into tbl_online_bak_"$years_ago_year"_$months_ago_mon select * from tbl_online where create_time >= ‘$months_ago 00:00:00‘ and create_time <= ‘$months_ago 23:59:59‘;"


statime=`date +%Y-%m-%d" "%H:%M:%S`

echo "$statime插入数据完成" >> /opt/tbl_online.log


#++++++++++++++++++++++++++++++++++++++

statime=`date +%Y-%m-%d" "%H:%M:%S`


echo "$statime开始删除数据以及优化表" >> /opt/tbl_online.log

/usr/local/mysql/bin/mysql -u root -h $base -e "use kd_shop;delete from tbl_online where create_time >= ‘$months_ago 00:00:00‘ and create_time <= ‘$months_ago 23:59:59‘;optimize table tbl_online;"


statime=`date +%Y-%m-%d" "%H:%M:%S`

echo "$statime删除以及优化表完成" >> /opt/tbl_online.log


最后任务计划条用即可

本文出自 “陨落星空” 博客,请务必保留此出处http://xiao987334176.blog.51cto.com/2202382/1703300

linux shell脚本自动删除mysql表前3个月的数据

标签:linux   自动删除   shell脚本   前3个月   mysql表   数据   

原文地址:http://xiao987334176.blog.51cto.com/2202382/1703300

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!