紫悦博客

不进则退,退一步万丈悬崖!

0%

Linux下Mysql备份脚本

Mysql备份脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
#dump mysql databases
#
#liulipeng

mysqlbin=/usr/local/mysql/bin
mysqldata=/www/mysql
dumpdir=/www/mysql_backup
sockfile=/tmp/mysql.sock
mysqlUser=root
mysqlPassword=123456

#dumpdbname="liu_emlog printonline_stat"
dumpdbname=`/bin/echo show databases | $mysqlbin/mysql -u$mysqlUser -p$mysqlPassword 2>/dev/null | /bin/egrep -wv "Database|information_schema|test"`
weekdaynow=`date +%m%d`
chmod -R 755 $dumpdir
cd $mysqldata
echo `date "+%F %T"` backup start >> $dumpdir/backup.log
for getdumpdbname in $dumpdbname
do

if [ ! -e $dumpdir/$getdumpdbname.$weekdaynow ]
then
mkdir $dumpdir/$getdumpdbname.$weekdaynow
chown mysql.mysql $dumpdir/$getdumpdbname.$weekdaynow
fi

dumptablename=`/bin/echo show tables | $mysqlbin/mysql -u$mysqlUser -p$mysqlPassword -D $getdumpdbname 2>/dev/null | grep -v "Tables_in_"`
#echo "/bin/echo show tables | $mysqlbin/mysql -S $sockfile -D $getdumpdbname"

/bin/rm -rf $dumpdir/$getdumpdbname.$weekdaynow/*

for getdumptablename in $dumptablename
do
$mysqlbin/mysqldump --skip-lock-tables --default-character-set=utf8 $getdumpdbname $getdumptablename > $dumpdir/$getdumpdbname.$weekdaynow/$getdumptablename.dump.`date +%w`
done

/bin/gzip $dumpdir/"$getdumpdbname.$weekdaynow"/*

done
echo `date "+%F %T"` backup end >> $dumpdir/backup.log
chmod -R 000 $dumpdir

配置crontab

1
01 23 * * * /bin/bash /usr/sbin/mysql_backup >/root/dump.log