Centos网站服务器使用DropBox定时备份方案
时间:2014-03-18 02:39 来源:linux.it.net.cn 作者:it
前不久因为DS的问题,之前的许多数据都丢失了,虽然不是很重要的,可是也让我领略到了数据备份的重要性。做为一名站长,不管用的虚拟主机、vps或者独服也好,有良好的数据备份习惯那是非常重要的。
本人也纯属小白一个,在上次丢数据之后急忙也去网上搜罗学习了一番,这里摘录一个比较不错的VPS数据备份方案:
首先介绍下这里的主角–Dropbox,DropBox是一款非常好用的免费网络文件同步工具或者说是服务,类似于国内的金山快盘,可以让你轻松备份你电脑上的文件,或者是同步到另外一台电脑。不赘述,直接进入正题:
一、安装配置Dropbox:
Dropbox提供了不同操作系统的客服端,win下的话直接安装设置比较简单,而我们大部分的VPS都是linux操作系统,所以首先我们得在我们的VPS上安装dropbox,根据vps的系统位数选择下列命令下载dropbox:
32位:
wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86
64位:
wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86_64
然后解压:
tar xzvf dropbox.tar.gz
解压完成后通过以下命令运行dropbox:
~/.dropbox-dist/dropboxd &
一般情况下因为我们是第一次运行,vps未与你的dropbox账户关联,所以并不会进行同步而是会出现如下提示:
This client is not linked to any account…
Please visit https://www.dropbox.com/cli_link?host_id=XXXXXXXXXX&cl=en_US to link this machine.
这里dropbox已经为你的vps生成的一个host_id,复制上述提示中https://www.dropbox.com/cli_link?host_id=XXXXXXXXXX&cl=en_US这个网址在浏览器打开,然后输入你的帐号密码,dropbox就自动帮你的账户绑定到你的VPS了.
二、建立备份
首先进入dropbox目录:
cd ~/Dropbox
在开始备份之前,我们首先要通过ln软链接你所有要备份的目录,例如:
ln -s /home/wwwroot/abc
ln -s /home/wwwroot/bcd
具体目录可以根据自己的实际情况选择添加。
好了,运行下列命令,dropbox便开始同步了:
~/.dropbox-dist/dropboxd &
三、建立定时备份脚本
dropbox默认是进行实时同步的,这肯定非常耗资源,而我们的vps总是越能节省资源越好,所以我们要设置下dropbox只间隔性的一次性同步然后关闭程序节省资源。
首先关掉同步:
killall dropbox
建立并编写定时同步脚本:
vi backup.sh
将以下代码写入脚本:
#!/bin/sh
start() {
echo starting dropbox
/root/.dropbox-dist/dropboxd &
}
stop() {
echo stoping dropbox
pkill dropbox
}
case “$1″ in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
esac
保存后我们要给backup.sh添加执行权限:
chmod +x backup.sh
然后在var\spool\cron目录下建立root文件或直接运行crontab -e命令添加定时运行:
0 2 * * * sh /root/backup.sh restart
0 3 * * * sh /root/backup.sh stop
这里指的是2点开始同步,3点结束同步,具体运行时间可以根据直接的实际情况调整。而间隔时间也可以根据直接要同步的数据量来进行更改。
四、添加数据库备份
首先建立并编辑备份命令:
vi backupdb.sh
将以下脚本写入,具体需要更改的脚本中已经注释得很清楚了:
#!/bin/bash
DBName=修改为数据库名
DBUser=修改为数据库用户名
DBPasswd=修改为数据库密码
BackupPath=/root/Dropbox/
LogFile=/root/db.log
DBPath=/usr/local/mysql/var/ #备份的数据库目录
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
NewFile=”$BackupPath”db$(date +%y%m%d).tgz
DumpFile=”$BackupPath”db$(date +%y%m%d)
OldFile=”$BackupPath”db$(date +%y%m%d –date=’5 days ago’).tgz #自动删除5天前的备份
echo “——————————————-” >> $LogFile
echo $(date +”%y-%m-%d %H:%M:%S”) >> $LogFile
echo “————————–” >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >> $LogFile 2>&1
echo “[$OldFile]Delete Old File Success!” >> $LogFile
else
echo “[$OldFile]No Old Backup File!” >> $LogFile
fi
if [ -f $NewFile ]
then
echo “[$NewFile]The Backup File is exists,Can’t Backup!” >> $LogFile
else
case $BackupMethod in
mysqldump)
if [ -z $DBPasswd ]
then
mysqldump -u $DBUser –opt $DBName > $DumpFile
else
mysqldump -u $DBUser -p$DBPasswd –opt $DBName > $DumpFile
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo “[$NewFile]Backup Success!” >> $LogFile
rm -rf $DumpFile
;;
mysqlhotcopy)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
else
mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo “[$NewFile]Backup Success!” >> $LogFile
rm -rf $DumpFile
;;
*)
service mysql stop >/dev/null 2>&1
tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
service mysql start >/dev/null 2>&1
echo “[$NewFile]Backup Success!” >> $LogFile
;;
esac
fi
echo “——————————————-” >> $LogFile
保存后同样要先给backupdb.sh添加执行权限:
chmod +x backupdb.sh
然后在var\spool\cron目录下的root文件或直接运行crontab -e命令添加定时运行:
0 1 * * * sh /root/backupdb.sh
一般我喜欢在dropbox运行前建立数据库备份,而具体时间可以自己调整。
最后附上删除卸载dropbox的方法:
killall dropbox
rm -rf .dropbox .dropbox-dist Dropbox dropbox.tar.gz dbmakefakelib.py dbreadconfig.py
以上部分代码由houstloc的helps提供,本人仅编辑并另外加了些闲言碎语,只供笔记~
(责任编辑:IT)
前不久因为DS的问题,之前的许多数据都丢失了,虽然不是很重要的,可是也让我领略到了数据备份的重要性。做为一名站长,不管用的虚拟主机、vps或者独服也好,有良好的数据备份习惯那是非常重要的。 本人也纯属小白一个,在上次丢数据之后急忙也去网上搜罗学习了一番,这里摘录一个比较不错的VPS数据备份方案: 首先介绍下这里的主角–Dropbox,DropBox是一款非常好用的免费网络文件同步工具或者说是服务,类似于国内的金山快盘,可以让你轻松备份你电脑上的文件,或者是同步到另外一台电脑。不赘述,直接进入正题: 一、安装配置Dropbox: Dropbox提供了不同操作系统的客服端,win下的话直接安装设置比较简单,而我们大部分的VPS都是linux操作系统,所以首先我们得在我们的VPS上安装dropbox,根据vps的系统位数选择下列命令下载dropbox: 32位: wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86 64位: wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86_64 然后解压: tar xzvf dropbox.tar.gz 解压完成后通过以下命令运行dropbox: ~/.dropbox-dist/dropboxd & 一般情况下因为我们是第一次运行,vps未与你的dropbox账户关联,所以并不会进行同步而是会出现如下提示: This client is not linked to any account… Please visit https://www.dropbox.com/cli_link?host_id=XXXXXXXXXX&cl=en_US to link this machine. 这里dropbox已经为你的vps生成的一个host_id,复制上述提示中https://www.dropbox.com/cli_link?host_id=XXXXXXXXXX&cl=en_US这个网址在浏览器打开,然后输入你的帐号密码,dropbox就自动帮你的账户绑定到你的VPS了. 二、建立备份 首先进入dropbox目录: cd ~/Dropbox 在开始备份之前,我们首先要通过ln软链接你所有要备份的目录,例如: ln -s /home/wwwroot/abc ln -s /home/wwwroot/bcd 具体目录可以根据自己的实际情况选择添加。 好了,运行下列命令,dropbox便开始同步了: ~/.dropbox-dist/dropboxd & 三、建立定时备份脚本 dropbox默认是进行实时同步的,这肯定非常耗资源,而我们的vps总是越能节省资源越好,所以我们要设置下dropbox只间隔性的一次性同步然后关闭程序节省资源。 首先关掉同步: killall dropbox 建立并编写定时同步脚本: vi backup.sh 将以下代码写入脚本: #!/bin/sh start() { echo starting dropbox /root/.dropbox-dist/dropboxd & } stop() { echo stoping dropbox pkill dropbox } case “$1″ in start) start ;; stop) stop ;; restart) stop start ;; esac 保存后我们要给backup.sh添加执行权限: chmod +x backup.sh 然后在var\spool\cron目录下建立root文件或直接运行crontab -e命令添加定时运行: 0 2 * * * sh /root/backup.sh restart 0 3 * * * sh /root/backup.sh stop 这里指的是2点开始同步,3点结束同步,具体运行时间可以根据直接的实际情况调整。而间隔时间也可以根据直接要同步的数据量来进行更改。 四、添加数据库备份 首先建立并编辑备份命令: vi backupdb.sh 将以下脚本写入,具体需要更改的脚本中已经注释得很清楚了: #!/bin/bash DBName=修改为数据库名 DBUser=修改为数据库用户名 DBPasswd=修改为数据库密码 BackupPath=/root/Dropbox/ LogFile=/root/db.log DBPath=/usr/local/mysql/var/ #备份的数据库目录 #BackupMethod=mysqldump #BackupMethod=mysqlhotcopy #BackupMethod=tar NewFile=”$BackupPath”db$(date +%y%m%d).tgz DumpFile=”$BackupPath”db$(date +%y%m%d) OldFile=”$BackupPath”db$(date +%y%m%d –date=’5 days ago’).tgz #自动删除5天前的备份 echo “——————————————-” >> $LogFile echo $(date +”%y-%m-%d %H:%M:%S”) >> $LogFile echo “————————–” >> $LogFile #Delete Old File if [ -f $OldFile ] then rm -f $OldFile >> $LogFile 2>&1 echo “[$OldFile]Delete Old File Success!” >> $LogFile else echo “[$OldFile]No Old Backup File!” >> $LogFile fi if [ -f $NewFile ] then echo “[$NewFile]The Backup File is exists,Can’t Backup!” >> $LogFile else case $BackupMethod in mysqldump) if [ -z $DBPasswd ] then mysqldump -u $DBUser –opt $DBName > $DumpFile else mysqldump -u $DBUser -p$DBPasswd –opt $DBName > $DumpFile fi tar czvf $NewFile $DumpFile >> $LogFile 2>&1 echo “[$NewFile]Backup Success!” >> $LogFile rm -rf $DumpFile ;; mysqlhotcopy) rm -rf $DumpFile mkdir $DumpFile if [ -z $DBPasswd ] then mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1 else mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1 fi tar czvf $NewFile $DumpFile >> $LogFile 2>&1 echo “[$NewFile]Backup Success!” >> $LogFile rm -rf $DumpFile ;; *) service mysql stop >/dev/null 2>&1 tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1 service mysql start >/dev/null 2>&1 echo “[$NewFile]Backup Success!” >> $LogFile ;; esac fi echo “——————————————-” >> $LogFile 保存后同样要先给backupdb.sh添加执行权限: chmod +x backupdb.sh 然后在var\spool\cron目录下的root文件或直接运行crontab -e命令添加定时运行: 0 1 * * * sh /root/backupdb.sh 一般我喜欢在dropbox运行前建立数据库备份,而具体时间可以自己调整。 最后附上删除卸载dropbox的方法: killall dropbox rm -rf .dropbox .dropbox-dist Dropbox dropbox.tar.gz dbmakefakelib.py dbreadconfig.py 以上部分代码由houstloc的helps提供,本人仅编辑并另外加了些闲言碎语,只供笔记~ (责任编辑:IT) |