欢迎光临
我们一直在努力

linux shell小脚本分享

我们网站最近要上云,需要数据库迁移,其中有个产生网站查看日志的业务,是每天产生一个表,数据量大概是300万左右,目前数据库里面有将近500天的数据,也就是有500个表,命名规范如下:

MariaDB [log]> show tables;

| pvlogs_20170615 |

| pvlogs_20170616 |

| pvlogs_20170617 |

| pvlogs_20170618 |

| pvlogs_20170619 |

| pvlogs_20170620 |

| pvlogs_20170621 |

| pvlogs_20170622 |

| pvlogs_20170623 |

现在要我把这些表全部dump先来,并且一个表一个文件,这手工一个一个mysqldump,是绝对不行的,于是想到了用shell脚本完成,具体如下:

[root@S143 ~]# cat mysqldumplog.sh

#! /bin/bash

datenum=`date +%Y%m%d -d ‘498 days ago’`

nowdate=`date +%Y%m%d`

while [ $datenum -lt $nowdate ]

do

mysqldump -uroot -p***** log pvlogs_$datenum | gzip >/backup_mysql/mysql_143/log/pvlogs_$datenum.sql;

datenum=`date -d “$datenum 1 days” +”%Y%m%d”`

done

注释:1:date +%Y%m%d -d ‘498 days ago’ 取出498天之前的日期,2:date -d “$datenum 1 days” +”%Y%m%d”是在指定的日期上加一天;

脚本很简单,可是对于刚接触linux shell的人来说,是有意义的,

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。