DropBox定时备份方案,非网页上传,非常好用

文章地址:http://www.hostloc.com/thread-114247-1-1.html

 

=================================================================================

另外一贴是以前登陆网站上传备份,不那么好用,而且使用网站上传有限制.
我这个备份方案是直接使用dropbox同步,如果想实时同步就一直守护dropbox进程,会占用一定资源.推荐小内存的VPS和我一样使用cron定时备份.

1.linux上安装dropbox
32位linux

  1. wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86
复制代码

64位linux

  1. wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86_64
复制代码

解压:

  1. tar xzvf dropbox.tar.gz
复制代码

第一次运行生成host_id

  1. ~/.dropbox-dist/dropboxd &
复制代码

生成id后,将host_id替换下面链接后面的字符在浏览器打开,输入你的帐号密码就绑定机器了.

  1. https://www.dropbox.com/cli_link?host_id=XXXXXXXXXXXXXXXXXXX
复制代码

2.建立连接备份网站
正式开始同步你的网站,通过ln软链接你所有要备份的目录,例如:

  1. cd ~/Dropbox
  2. ln -s /home/wwwroot/html
  3. ln -s /home/wwwroot/htdocs
  4. ...
复制代码

开始运行同步,美国的vps同步速度非常快的,1G的html文件,只花了几分钟全部同步完成

  1. ~/.dropbox-dist/dropboxd &
复制代码

3.为了节省资源,可以不使用实时同步,只定时打开同步一天的文件再关掉以节省资源.
先关掉同步:

  1. killall dropbox
复制代码

编写定时同步脚本:

  1. vi backup.sh
复制代码

代码如下:

  1. #!/bin/sh
  2. start() {
  3. echo starting dropbox
  4. /root/.dropbox-dist/dropboxd &
  5. }
  6. stop() {
  7. echo stoping dropbox
  8. pkill dropbox
  9. }
  10. case "$1" in
  11. start)
  12. start
  13. ;;
  14. stop)
  15. stop
  16. ;;
  17. restart)
  18. stop
  19. start
  20. ;;
  21. esac
复制代码

定时运行和关闭:

  1. chmod +x backup.sh
  2. crontab -e
复制代码

每天4点开始同步,5点关闭同步.
其实一般每天更新数据不多不用打开这么长时间,我自己用的一天只打开10分钟,这个根据各人每天更新的数据量自己来设置.

  1. 0 4 * * * sh /root/backup.sh restart
  2. 0 5 * * * sh /root/backup.sh stop
复制代码

4.干脆把我从网上找的备份数据库的脚本一并贡献出来,适合懒人使用

  1. vi bakmysql.sh
复制代码

脚本如下:

  1. #!/bin/bash
  2. DBName=修改为数据库名
  3. DBUser=修改为数据库用户名
  4. DBPasswd=修改为数据库密码
  5. BackupPath=/root/Dropbox/
  6. LogFile=/root/db.log
  7. DBPath=/usr/local/mysql/var/ #备份的数据库目录
  8. #BackupMethod=mysqldump
  9. #BackupMethod=mysqlhotcopy
  10. #BackupMethod=tar
  11. NewFile="$BackupPath"db$(date +%y%m%d).tgz
  12. DumpFile="$BackupPath"db$(date +%y%m%d)
  13. OldFile="$BackupPath"db$(date +%y%m%d --date=‘5 days ago‘).tgz  #自动删除5天前的备份
  14. echo "-------------------------------------------" >> $LogFile
  15. echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
  16. echo "--------------------------" >> $LogFile
  17. #Delete Old File
  18. if [ -f $OldFile ]
  19. then
  20.         rm -f $OldFile >> $LogFile 2>&1
  21.         echo "[$OldFile]Delete Old File Success!" >> $LogFile
  22. else
  23.         echo "[$OldFile]No Old Backup File!" >> $LogFile
  24. fi
  25. if [ -f $NewFile ]
  26. then
  27.         echo "[$NewFile]The Backup File is exists,Can‘t Backup!" >> $LogFile
  28. else
  29.         case $BackupMethod in
  30.         mysqldump)
  31.                 if [ -z $DBPasswd ]
  32.                 then
  33.                         mysqldump -u $DBUser --opt $DBName > $DumpFile
  34.                 else
  35.                         mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile
  36.                 fi
  37.                 tar czvf $NewFile $DumpFile >> $LogFile 2>&1
  38.                 echo "[$NewFile]Backup Success!" >> $LogFile
  39.                 rm -rf $DumpFile
  40.                 ;;
  41.         mysqlhotcopy)
  42.                 rm -rf $DumpFile
  43.                 mkdir $DumpFile
  44.                 if [ -z $DBPasswd ]
  45.                 then
  46.                         mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
  47.                 else
  48.                         mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
  49.                 fi
  50.                 tar czvf $NewFile $DumpFile >> $LogFile 2>&1
  51.                 echo "[$NewFile]Backup Success!" >> $LogFile
  52.                 rm -rf $DumpFile
  53.                 ;;
  54.         *)
  55.                 service mysql stop >/dev/null 2>&1
  56.                 tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
  57.                 service mysql start >/dev/null 2>&1
  58.                 echo "[$NewFile]Backup Success!" >> $LogFile
  59.                 ;;
  60.         esac
  61. fi
  62. echo "-------------------------------------------" >> $LogFile
复制代码

5.删除卸载dropbox方法:

  1. killall dropbox
  2. rm -rf .dropbox .dropbox-dist Dropbox dropbox.tar.gz dbmakefakelib.py dbreadconfig.py
复制代码

DropBox定时备份方案,非网页上传,非常好用,布布扣,bubuko.com

DropBox定时备份方案,非网页上传,非常好用

上一篇:MyBatis 示例-插件


下一篇:.Net Framework介绍