zoukankan      html  css  js  c++  java
  • 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
    复制代码
  • 相关阅读:
    网站的安全架构
    Charles Proxy for Mac & Windows (4.1.3)破解激活工具
    charles抓包工具的中文乱码解决方法
    Charles 从入门到精通
    go语言知识点
    Golang Import使用入门
    算法图解之选择排序
    算法图解之数组和链表
    算法图解之大O表示法
    算法图解之内存的工作原理
  • 原文地址:https://www.cnblogs.com/yuewangshanren/p/3588835.html
Copyright © 2011-2022 走看看