我們網(wǎng)站最近要上云,需要數(shù)據(jù)庫遷移,其中有個產(chǎn)生網(wǎng)站查看日志的業(yè)務(wù),是每天產(chǎn)生一個表,數(shù)據(jù)量大概是300萬左右,目前數(shù)據(jù)庫里面有將近500天的數(shù)據(jù),也就是有500個表,命名規(guī)范如下:
MariaDB [log]> show tables;
| pvlogs_20170615 |
| pvlogs_20170616 |
| pvlogs_20170617 |
| pvlogs_20170618 |
| pvlogs_20170619 |
| pvlogs_20170620 |
| pvlogs_20170621 |
| pvlogs_20170622 |
| pvlogs_20170623 |
現(xiàn)在要我把這些表全部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的人來說,是有意義的,
網(wǎng)站欄目:linuxshell小腳本分享
標題URL:
http://weahome.cn/article/ihsjhe.html