找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 332|回复: 39

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

[复制链接]

31

主题

278

回帖

687

积分

高级会员

积分
687
发表于 2012-3-25 17:46:28 | 显示全部楼层 |阅读模式
本帖最后由 helps 于 2012-3-25 19:53 编辑

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

1.linux上安装dropbox
32位linux[ol]
  • wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86[/ol]复制代码64位linux[ol]
  • wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86_64[/ol]复制代码解压:[ol]
  • tar xzvf dropbox.tar.gz[/ol]复制代码第一次运行生成host_id[ol]
  • ~/.dropbox-dist/dropboxd &[/ol]复制代码生成id后,将host_id替换下面链接后面的字符在浏览器打开,输入你的帐号密码就绑定机器了.[ol]
  • https://www.dropbox.com/cli_link?host_id=XXXXXXXXXXXXXXXXXXX[/ol]复制代码2.建立连接备份网站
    正式开始同步你的网站,通过ln软链接你所有要备份的目录,例如:[ol]
  • cd ~/Dropbox
  • ln -s /home/wwwroot/html
  • ln -s /home/wwwroot/htdocs
  • ...
  • [/ol]复制代码开始运行同步,美国的vps同步速度非常快的,1G的html文件,只花了几分钟全部同步完成[ol]
  • ~/.dropbox-dist/dropboxd &[/ol]复制代码3.为了节省资源,可以不使用实时同步,只定时打开同步一天的文件再关掉以节省资源.
    先关掉同步:[ol]
  • killall dropbox[/ol]复制代码编写定时同步脚本:[ol]
  • vi backup.sh[/ol]复制代码代码如下:[ol]
  • #!/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
  • [/ol]复制代码定时运行和关闭:[ol]
  • chmod +x backup.sh
  • crontab -e[/ol]复制代码每天4点开始同步,5点关闭同步.
    其实一般每天更新数据不多不用打开这么长时间,我自己用的一天只打开10分钟,这个根据各人每天更新的数据量自己来设置.[ol]
  • 0 4 * * * sh /root/backup.sh restart
  • 0 5 * * * sh /root/backup.sh stop
  • [/ol]复制代码4.干脆把我从网上找的备份数据库的脚本一并贡献出来,适合懒人使用[ol]
  • vi bakmysql.sh[/ol]复制代码脚本如下:[ol]
  • #!/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
  • [/ol]复制代码5.删除卸载dropbox方法:[ol]
  • killall dropbox
  • rm -rf .dropbox .dropbox-dist Dropbox dropbox.tar.gz dbmakefakelib.py dbreadconfig.py[/ol]复制代码
  • 回复

    使用道具 举报

    6

    主题

    508

    回帖

    1046

    积分

    金牌会员

    积分
    1046
    发表于 2012-3-25 17:48:00 | 显示全部楼层
    纯技术贴 我喜欢

    回复

    使用道具 举报

    44

    主题

    551

    回帖

    1268

    积分

    金牌会员

    积分
    1268
    发表于 2012-3-25 17:56:42 | 显示全部楼层
    技术贴 我喜欢
    回复

    使用道具 举报

    2

    主题

    24

    回帖

    64

    积分

    注册会员

    积分
    64
    发表于 2012-3-25 18:03:21 | 显示全部楼层
    技术贴 我喜欢
    回复

    使用道具 举报

    3

    主题

    31

    回帖

    81

    积分

    注册会员

    积分
    81
    发表于 2012-3-25 18:04:05 | 显示全部楼层
    谢谢楼主分享自己的技术,呵呵~!
    回复

    使用道具 举报

    8

    主题

    225

    回帖

    494

    积分

    中级会员

    积分
    494
    发表于 2012-3-25 18:07:34 | 显示全部楼层
    好吧,我去试试
    回复

    使用道具 举报

    61

    主题

    1729

    回帖

    3681

    积分

    论坛元老

    积分
    3681
    发表于 2012-3-25 18:11:36 | 显示全部楼层
    不错  技术帖
    回复

    使用道具 举报

    117

    主题

    1965

    回帖

    4317

    积分

    论坛元老

    积分
    4317
    发表于 2012-3-25 18:18:39 | 显示全部楼层
    支持
    回复

    使用道具 举报

    94

    主题

    2489

    回帖

    5300

    积分

    论坛元老

    积分
    5300
    发表于 2012-3-25 18:22:22 | 显示全部楼层
    纯技术贴 我喜欢
    回复

    使用道具 举报

    0

    主题

    1

    回帖

    4

    积分

    新手上路

    积分
    4
    发表于 2012-4-19 14:54:17 | 显示全部楼层


    赞一个!!!!!!!!!!支持。。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-1-11 17:54 , Processed in 0.024344 second(s), 5 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表