公司网站需要实现自动备份数据库并且要传送到另外一台服务器以方便数据保存,折腾了半个晚上,终于解决。

下面的是数据库服务器要存放的脚本:

#! /bin/bash

echo "Weiqp.cn Database Backup Mysql V1.0"

###date stamp###
datestamp=$(date +%Y-%m-%d)

###path ###
startdir=/home/mysqlbackup

###bakfile prefix###
fileprefix=fiename
echo "Datebase backup is starting.."

###bakup command####
mysqldump -u root -ppassword -l dbname > $startdir/$fileprefix$datestamp.sql

echo "########################################################################"

#echo "Datebase backup successfully."

###tar file ###
cd $startdir

echo "the current directory is :"
pwd

tar zcvf $startdir/$fileprefix$datestamp.tgz $fileprefix$datestamp.sql
###del the sql file###
rm -rf $startdir/$fileprefix$datestamp.sql

echo "#######################################################################"

echo "Backup File Save successfully."
下面的是远程都去备份文件的脚本:
#! /bin/bash
echo "Weiqp.cn Datebase Backup For mysql V1.0"
datestamp=$(date +%Y-%m-%d)
firstname=filename
cd /home/mysqlbackup
wget http://dbbackup.server.com/$firstname$datestamp.tgz
cd ..
echo "Backup File Download Successfully."

这个远程下载脚本,网上有很都使用ssh来传送这个备份,但我在私钥的地方卡了两个小时也没有解决shh自动登陆的问题所以采用了用http方式来更新备份文件
剩下的就是执行自动执行脚本了。
在crontab下按照自己需要的规则来执行脚本就可以了。
vim /etc/crontab
25 23 * * * root sh /home/getDb.sh
我是在每天晚上11点25分开始备份数据库,可以根据自己的需求更改频率跟时间。

看完了要说点啥么?