RHEL6.5 MySQL5.5 bak

备忘:
环境:RHEL5 MySQL5.5
1、 每天运行一次
cd /etc/cron.daily
2、编写自动备份
vi mysqlbackup.sh
#!/bin/sh

filename=`date +\%Y-%m-%d`
username="backup"
passwd="backup"
host="127.0.0.1"
mysql_bin_dir="/usr/local/mysql/bin"
mysqlbackup_dir="/data/mysqlbackup"
gzip="/bin/gzip"
mk="/bin/mkdir"
sock="/tmp/mysql.sock"

test ! -w $mysqlbackup_dir && echo "Error: $mysqlbackup_dir is un-writeable." && exit 0
test ! -d "$mysqlbackup_dir/0/" && $mk "$mysqlbackup_dir/0/"
#备份所有包含dotoyo字符的数据库和cms数据库
all_db="$($mysql_bin_dir/mysql -u $username -h $host -p$passwd -S $sock -Bse ' show databases where `database` like "'"dotoyo%"'" or `database` like "'"cms"'" ')"
for db in $all_db
do
#echo "db:$db"
$mysql_bin_dir/mysqldump  -u $username -h $host  -p$passwd $db -S $sock | $gzip -9 > "$mysqlbackup_dir/0/$db.$filename.gz"
done
#只保留一周的备份
test -d "$mysqlbackup_dir/6/" && rm -rf "$mysqlbackup_dir/6"

for int in 5 4 3 2 1 0
do
if(test -d "$mysqlbackup_dir"/"$int")
then
#一定要注意+号两边空格
next_int=`expr $int + 1`
mv "$mysqlbackup_dir"/"$int" "$mysqlbackup_dir"/"$next_int"
fi
done
exit 0;

3、chmod +x mysqlbackup.sh

4、创建目录/data/mysqlbackup

5、测试./mysqlbackup.sh

6、重启
也可以采用crontab -e来实现定时执行

/////////////////////////////////////////////////////

利用crontab,系统每天定时备份mysql数据库

利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。

1、创建保存备份文件的路径/mysqldata

#mkdir /mysqldata

2、创建/usr/sbin/bakmysql文件

#vi /usr/sbin/bakmysql

输入

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

tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql

或者写成

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

mysqldump --all-databases -u root -p密码 > /mysqldata/mysql$rq.sql

/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同

/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。

3、修改文件属性,使其可执行

# chmod +x /usr/sbin/bakmysql

4、修改/etc/crontab

#vi /etc/crontab

在下面添加

01 3 * * * root /usr/sbin/bakmysql

表示每天3点钟执行备份

5、重新启动crond

# /etc/rc.d/init.d/crond restart

猜你喜欢

转载自ssydxa219.iteye.com/blog/2033593
bak