Linux vps 使用dropbox远程备份数据

事先准备dropbox帐号一个是必须的,dropbox国内是被封了,这个大家都知道。大家使用下面的链接保证直接可以注册,而且不用挂代理

点击我打开注册页面

注册好以后记得安装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 ’
    ’ | 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.30.tgz文件。

然后再来个crontab定时执行脚本。



把数据拿到自己的电脑上只需要安装dropbox客户端,然后就可以了。

© 版权声明
THE END
喜欢就支持以下吧
点赞0
评论 共2条
    • 小文
    • 沧月0
      @andy:几十块,不贵的..跟主机差不多的价格
      2021年前回复
    • 小文
    • andy0
      这是个好东西,学学!~vps是不是特贵啊
      2021年前回复