2009-01-06 | millken Posted On :
代码|Code
一般重要的数据库或数据表都需要及时备份,光备份到自身所在服务器是不行的,如果服务器一旦崩溃,拿不到备份文件也是竹篮打水一场空。所以在备份到本地服务器的同时,还应备份到其他的备用服务器里。
于是新建一个whmysqlbackup.sh ,内容为:
#################Script Start###################
#Tish script backup the mysqldatebase
#!/bin/bash
Backupfile=WHDB-$(date +%m-%d-%y-%H)
archive=${1:-$Backupfile}
tar cvf - /var/lib/mysql/wh/wh_sku.* > /var/www/html/DBbackup/$archive.tar
cd /var/www/html/DBbackup
gzip $archive.tar
echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"."
scp $archive.tar.gz root@172.16.1.6:/whdb/
##################Script end######################
该段脚本表明备份数据库wh里的wh_sku这个表打包压缩到/var/www/html/Dbbackup里,同时上传到172.16.1.6这个服务器。#Tish script backup the mysqldatebase
#!/bin/bash
Backupfile=WHDB-$(date +%m-%d-%y-%H)
archive=${1:-$Backupfile}
tar cvf - /var/lib/mysql/wh/wh_sku.* > /var/www/html/DBbackup/$archive.tar
cd /var/www/html/DBbackup
gzip $archive.tar
echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"."
scp $archive.tar.gz root@172.16.1.6:/whdb/
##################Script end######################
脚本写好后,可用sh whmysqlbackup.sh命令测试该脚本,若无误,会同时在两个服务器里出现备份包。
后面的就是用调用计划任务功能来完成每天备份:
crontab -e
加入
59 23 * * * sh /root/whmysqlbackup.sh
表示每天23:59执行一次脚本
保存重启服务
service crond restart