全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 10071|回复: 51

Linux vps 使用dropbox定时远程本地备份数据(完整版)

  [复制链接]
发表于 2012-3-25 13:27:37 | 显示全部楼层
dropbox在国内已经解封一段时间了
发表于 2012-3-25 13:25:21 | 显示全部楼层
到底怎么用?
 楼主| 发表于 2012-3-25 13:27:00 | 显示全部楼层
云生 发表于 2012-3-25 13:25
到底怎么用?

刷新下,刚才内容丢失
 楼主| 发表于 2012-3-25 13:22:37 | 显示全部楼层 |阅读模式
本帖最后由 xyz 于 2013-3-10 10:11 编辑

论坛有实时备份的介绍,不过一般用不到。定时备份足够了,也节约内存,详细步骤(超简单):

至少你要有个dropbox帐号吧,dropbox国内是被封的,这个你懂的,不过hostloc的用户用下面的地址注册保证直连,不需要挂 代 理:

http://db.tt/DpMXz2jt(手动复制吧,发链接不太好)(没有功劳,也有苦劳吧,不喜勿喷)(记得注册后下载安装dropbox客户端到电脑,后面用的到)
版本一:

新建一个脚本:
vi dropbox.sh

复制下面的内容,中文注释的地方注意自定义:
  1. #!/bin/bash
  2. DROPBOX_USER="dropbox邮箱帐号"
  3. DROPBOX_PASS="dropbox密码"
  4. #dropbox上传目录 默认是dropbox文件夹
  5. DROPBOX_DIR="/dropbox"
  6. #要备份的文件路径
  7. BACKUP_SRC="/home /var/www /var/git /etc /root"
  8. #临时目录
  9. BACKUP_DST="/tmp"
  10. MYSQL_SERVER="127.0.0.1"
  11. #mysql用户名
  12. MYSQL_USER="root"
  13. #mysql用户密码
  14. MYSQL_PASS="Your MySQL password"

  15. # based on http://davehope.co.uk/Blog/backup-your-linux-vps-to-dropbox/
  16. # based on https://github.com/andreafabrizi/Dropbox-Uploader
  17. NOW=$(date +"%Y.%m.%d")
  18. DESTFILE="$BACKUP_DST/$NOW.tgz"

  19. #
  20. # Upload a file to Dropbox.
  21. # $1 = Source file
  22. # $2 = Destination file.
  23. function dropboxUpload
  24. {
  25.         #
  26.         # Code based on DropBox Uploader 0.6 from http://www.andreafabrizi.it/?dropbox_uploader
  27.         LOGIN_URL="https://www.dropbox.com/login"
  28.         HOME_URL="https://www.dropbox.com/home"
  29.         UPLOAD_URL="https://dl-web.dropbox.com/upload"
  30.         COOKIE_FILE="/tmp/du_cookie_$RANDOM"
  31.         RESPONSE_FILE="/tmp/du_resp_$RANDOM"

  32.     UPLOAD_FILE=$1
  33.     DEST_FOLDER=$2

  34.         # Login
  35.         echo -ne " > Logging in..."
  36.         curl -s -i -c $COOKIE_FILE -o $RESPONSE_FILE --data "login_email=$DROPBOX_USER&login_password=$DROPBOX_PASS&t=$TOKEN" "$LOGIN_URL"
  37.         grep "location: /home" $RESPONSE_FILE > /dev/null

  38.         if [ $? -ne 0 ]; then
  39.                 echo -e " Failed!"
  40.                 rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
  41.                 exit 1
  42.         else
  43.                 echo -e " OK"
  44.         fi

  45.         # Load home page
  46.         echo -ne " > Loading Home..."
  47.         curl -s -i -b "$COOKIE_FILE" -o "$RESPONSE_FILE" "$HOME_URL"

  48.         if [ $? -ne 0 ]; then
  49.                 echo -e " Failed!"
  50.                 rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
  51.                 exit 1
  52.         else
  53.                 echo -e " OK"
  54.         fi

  55.         # Get token
  56.         TOKEN=$(cat "$RESPONSE_FILE" | tr -d '\n' | sed 's/.*<form action="https:\/\/dl-web.dropbox.com\/upload"[^>]*>\s*<input type="hidden" name="t" value="\([a-z 0-9]*\)".*/\1/')

  57.         # Upload file
  58.         echo -ne " > Uploading '$UPLOAD_FILE' to 'DROPBOX$DEST_FOLDER/'..."
  59.     curl -s -i -b $COOKIE_FILE -o $RESPONSE_FILE -F "plain=yes" -F "dest=$DEST_FOLDER" -F "t=$TOKEN" -F "file=@$UPLOAD_FILE"  "$UPLOAD_URL"
  60.     grep "HTTP/1.1 302 FOUND" "$RESPONSE_FILE" > /dev/null

  61.     if [ $? -ne 0 ]; then
  62.         echo -e " Failed!"
  63.                 rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
  64.         exit 1
  65.     else
  66.         echo -e " OK"
  67.                 rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
  68.     fi
  69. }

  70. #mysql数据库备份
  71. mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"
  72. #压缩
  73. tar cfz "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"
  74. #上传
  75. dropboxUpload "$DESTFILE" "$DROPBOX_DIR"

  76. rm -f "$NOW-Databases.sql" "$DESTFILE"
复制代码
然后修改下脚本权限:
chmod 755 dropbox.sh
然后./dropbox.sh 运行测试,如果有下面提示表示成功:

> Logging in... OK
> Loading Home... OK
> Uploading '/tmp/2012.03.25.tgz' to 'DROPBOX/dropbox/'... OK

这时登录你的dropbox帐号,发现dropbox文件夹内已经有了2012.03.25.tgz文件。
然后再来个crontab定时执行脚本。

版本二(一般版本一够用了,下面的可以忽略)
  1. #!/bin/bash
  2. DROPBOX_USER="Your Dropbox username"
  3. DROPBOX_PASS="Your Dropbox password"
  4. DROPBOX_DIR="Directory in your dropbox account to store the backups, e.g. /backups"
  5. BACKUP_SRC="/home /var/www /var/git /etc /root"
  6. BACKUP_DST="/tmp"
  7. MYSQL_USER="Your MySQL username"
  8. MYSQL_PASS="Your MySQL password"

  9. # Stop editing here.
  10. NOW=$(date +"%Y.%m.%d")
  11. DESTFILE="$BACKUP_DST/$NOW.tgz"

  12. # Backup files.
  13. mysqldump -u $MYSQL_USER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"
  14. tar cfz "$DESTFILE" $BACKUP_SRC

  15. dropbox_uploader.sh -u "$DROPBOX_USER" -p "$DROPBOX_PASS" -f "$DESTFILE" -d "$DROPBOX_DIR"

  16. rm -f "$NOW-Databases.sql" "$DESTFILE"
复制代码
dropbox_uploader.sh下载链接见github

https://github.com/andreafabrizi/Dropbox-Uploader





好用记得加分!

评分

参与人数 3威望 +30 收起 理由
meno + 5 很给力!
nacv + 15 很给力!
SolitudeGuest + 10 求SugarSync的教程

查看全部评分

发表于 2012-3-25 14:42:14 | 显示全部楼层
dropbox 没有封呀。
https://www.dropbox.com/
suzizi 该用户已被删除
发表于 2012-3-25 14:22:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
suzizi 该用户已被删除
发表于 2012-3-25 14:23:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2012-3-25 13:29:29 | 显示全部楼层
zccyun 发表于 2012-3-25 13:27
dropbox在国内已经解封一段时间了

没解封吧,我这边打开是连接被重置提示
发表于 2012-3-25 13:31:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2012-3-25 13:32:37 | 显示全部楼层
求SugarSync~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-24 23:31 , Processed in 0.069100 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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