老谢博客

  • 首页
  • WordPress
  • 网络技术
  • 乱七八糟
  • 运维技术
  • 给我留言
  • 关于老谢

转载:VPS自动备份到dropbox的脚本

分类:运维技术日期:2012-02-13 - 18:21:45作者:老谢

大名鼎鼎的dropbox,终于用上了,感觉还不错的说,下载备份的速度也可以接受,

老谢的现用的备份方案为:每日备份到GD免费空间,每周备份到dropbox,每月增量备份至一台小vps,

dropbox扩容的活动,具体参考:奥义 • Dropbox使用媒体导入快速获取额外5G免费空间

转载:VPS自动备份到dropbox的脚本

#!/bin/bash
DROPBOX_USER="guosuiyu@gmail.com" //Dropbox的账号
DROPBOX_PASS="12345678" //Dropbox的密码
DROPBOX_DIR="/backups" //Dropbox中的文件夹名称
BACKUP_SRC="/blog/rainbow /home /data" //需要备份的文件夹路径,可以同时指定多个
BACKUP_DST="/home/rainbow/backup" //用来存放备份的文件夹路径
MYSQL_SERVER="127.0.0.1" //连接本地MySQL
MYSQL_USER="root" //本地MySQL的用户
MYSQL_PASS="12345678" //本地MySQL的密码
 
#
# Stop editing here.
NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tgz"
 
#
# Upload a file to Dropbox.
# $1 = Source file
# $2 = Destination file.
function dropboxUpload
{
        #
        # Code based on DropBox Uploader 0.6 from http://www.andreafabrizi.it/?dropbox_uploader
        LOGIN_URL="https://www.dropbox.com/login"
        HOME_URL="https://www.dropbox.com/home"
        UPLOAD_URL="https://dl-web.dropbox.com/upload"
        COOKIE_FILE="/tmp/du_cookie_$RANDOM"
        RESPONSE_FILE="/tmp/du_resp_$RANDOM"
 
    UPLOAD_FILE=$1
    DEST_FOLDER=$2
 
        # Login
        echo -ne " > Logging in..."
        curl -s -i -c $COOKIE_FILE -o $RESPONSE_FILE --data "login_email=$DROPBOX_USER&login_password=$DROPBOX_PASS&t=$TOKEN" "$LOGIN_URL"
        grep "location: /home" $RESPONSE_FILE > /dev/null
 
        if [ $? -ne 0 ]; then
                echo -e " Failed!"
                rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
                exit 1
        else
                echo -e " OK"
        fi
 
        # Load home page
        echo -ne " > Loading Home..."
        curl -s -i -b "$COOKIE_FILE" -o "$RESPONSE_FILE" "$HOME_URL"
 
        if [ $? -ne 0 ]; then
                echo -e " Failed!"
                rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
                exit 1
        else
                echo -e " OK"
        fi
 
        # Get token
        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/')
 
        # Upload file
        echo -ne " > Uploading '$UPLOAD_FILE' to 'DROPBOX$DEST_FOLDER/'..."
    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"
    grep "HTTP/1.1 302 FOUND" "$RESPONSE_FILE" > /dev/null
 
    if [ $? -ne 0 ]; then
        echo -e " Failed!"
                rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
        exit 1
    else
        echo -e " OK"
                rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
    fi
}
 
# Backup files.
echo "Dumping databases..."
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"
echo "Packing files..."
tar czf "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"
 
dropboxUpload "$DESTFILE" "$DROPBOX_DIR"
 
echo "Cleaning the backups..."
rm -f "$NOW-Databases.sql"
find $BACKUP_DST -mtime +31 -delete //这里的时间可以根据需要进行修改

#!/bin/bash DROPBOX_USER="guosuiyu@gmail.com" //Dropbox的账号 DROPBOX_PASS="12345678" //Dropbox的密码 DROPBOX_DIR="/backups" //Dropbox中的文件夹名称 BACKUP_SRC="/blog/rainbow /home /data" //需要备份的文件夹路径,可以同时指定多个 BACKUP_DST="/home/rainbow/backup" //用来存放备份的文件夹路径 MYSQL_SERVER="127.0.0.1" //连接本地MySQL MYSQL_USER="root" //本地MySQL的用户 MYSQL_PASS="12345678" //本地MySQL的密码 # # Stop editing here. NOW=$(date +"%Y.%m.%d") DESTFILE="$BACKUP_DST/$NOW.tgz" # # Upload a file to Dropbox. # $1 = Source file # $2 = Destination file. function dropboxUpload { # # Code based on DropBox Uploader 0.6 from http://www.andreafabrizi.it/?dropbox_uploader LOGIN_URL="https://www.dropbox.com/login" HOME_URL="https://www.dropbox.com/home" UPLOAD_URL="https://dl-web.dropbox.com/upload" COOKIE_FILE="/tmp/du_cookie_$RANDOM" RESPONSE_FILE="/tmp/du_resp_$RANDOM" UPLOAD_FILE=$1 DEST_FOLDER=$2 # Login echo -ne " > Logging in..." curl -s -i -c $COOKIE_FILE -o $RESPONSE_FILE --data "login_email=$DROPBOX_USER&login_password=$DROPBOX_PASS&t=$TOKEN" "$LOGIN_URL" grep "location: /home" $RESPONSE_FILE > /dev/null if [ $? -ne 0 ]; then echo -e " Failed!" rm -f "$COOKIE_FILE" "$RESPONSE_FILE" exit 1 else echo -e " OK" fi # Load home page echo -ne " > Loading Home..." curl -s -i -b "$COOKIE_FILE" -o "$RESPONSE_FILE" "$HOME_URL" if [ $? -ne 0 ]; then echo -e " Failed!" rm -f "$COOKIE_FILE" "$RESPONSE_FILE" exit 1 else echo -e " OK" fi # Get token 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/') # Upload file echo -ne " > Uploading '$UPLOAD_FILE' to 'DROPBOX$DEST_FOLDER/'..." 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" grep "HTTP/1.1 302 FOUND" "$RESPONSE_FILE" > /dev/null if [ $? -ne 0 ]; then echo -e " Failed!" rm -f "$COOKIE_FILE" "$RESPONSE_FILE" exit 1 else echo -e " OK" rm -f "$COOKIE_FILE" "$RESPONSE_FILE" fi } # Backup files. echo "Dumping databases..." mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql" echo "Packing files..." tar czf "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql" dropboxUpload "$DESTFILE" "$DROPBOX_DIR" echo "Cleaning the backups..." rm -f "$NOW-Databases.sql" find $BACKUP_DST -mtime +31 -delete //这里的时间可以根据需要进行修改

小提醒:别忘记给脚本执行权限了哦

chmod +x DropboxBackup.sh

chmod +x DropboxBackup.sh

原文地址:http://heylinux.com/archives/1452.html

脚本原址:http://davehope.co.uk/Blog/backup-your-linux-vps-to-dropbox/

原文地址 : https://www.xj123.info/2449.html

本站遵循 : 署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5)

版权声明 : 原创文章转载时,请务必以超链接形式标明文章原始出处

Tags: vps自动备份 , 自动备份 dropbox
  • 上一篇:CentOS编译安装Nginx(附:管理脚本)
  • 下一篇:nginx前端反代,后端apache记录正确访问者ip
31条评论
  1. 大D 说:

    灰常NB啊。。。

    POST:2012-02-13 18:28 回复
    • 老谢 说:

      @大D 免费不用白不用 = =||

      POST:2012-02-13 18:31 回复
  2. suN 说:

    老谢的水印太YD了!!!!!!

    POST:2012-02-13 19:08 回复
  3. DickWu 说:

    这就是我要的菜!

    POST:2012-02-13 20:58 回复
    • 老谢 说:

      @DickWu 感谢推荐使用dropbox~

      POST:2012-02-13 21:00 回复
      • DickWu 说:

        不谢!
        嘿嘿,貌似寒假里在tanky woo那里看到的,我以为是你写的翻半天没翻到~

        POST:2012-02-13 21:16 回复
        • 老谢 说:

          @DickWu 我可没写这种脚本的技术,话说你的博客咋打不开了?

          POST:2012-02-13 21:26 回复
          • DickWu 说:

            我也不知道,南方电信很正常,但是opera mini却打不开,说明中转服务器那里有问题。
            自从上次ddos之后,换了ip就抽风到现在。。。。结果现在我正好还没心思折腾。。。
            乃帮我ping一下看看ip地址对不对,严重怀疑ns服务器也坏了。

            POST:2012-02-13 21:31 回复
          • DickWu 说:

            老谢~~我博客还正常吗?

            POST:2012-02-13 21:56 回复
            • 老谢 说:

              @DickWu 挂代理以后正常了

              POST:2012-02-13 21:59 回复
              • DickWu 说:

                看来IP被和谐了

                POST:2012-02-13 22:02 回复
                • 老谢 说:

                  @DickWu 怪不得无法访问,刚刚ping了下,我本地的网络无法解析你的域名,Orz..

                  POST:2012-02-13 22:09 回复
              • DickWu 说:

                难道是域名被墙?

                POST:2012-02-13 22:17 回复
              • DickWu 说:

                老谢顺便帮我看看50.23.102.87这个IP可不可以直接访问?

                POST:2012-02-13 22:19 回复
                • 老谢 说:

                  @DickWu 直接ping50.23.102.87是通的,似乎真是域名被墙了 = =!!

                  POST:2012-02-13 22:23 回复
                • 老谢 说:

                  @DickWu 知道问题了,原来你在用gd的dns,感觉换成dnspod吧,gd被墙的厉害

                  POST:2012-02-13 22:26 回复
          • DickWu 说:

            看来我得去搞DNSPOD了~还错怪了Hawkhost

            POST:2012-02-13 22:32 回复
  4. Firm 说:

    我站点太大了,只能是备份到本地来着。

    POST:2012-02-13 22:28 回复
  5. 凤翼天堂 说:

    – -马萨卡那是水印么= =

    POST:2012-02-18 19:20 回复
    • 老谢 说:

      @凤翼天堂 还真是。。

      POST:2012-02-28 19:29 回复
  6. VPS ROLL 说:

    我了了个去。。我的DROPBOX每次登入密码都是错误。。每次都得取回密码修改一次。。

    POST:2012-02-28 11:56 回复
    • 老谢 说:

      @VPS ROLL 是不是密码记错了?我这样倒是正常,而且备份也没问题

      POST:2012-02-28 19:30 回复
      • VPS ROLL 说:

        不会出错的。。不知道什么原因 我从DROPBOX官方登入经常都是这情况。。那个密码我最少输入了几千几万次了 这十年里。

        POST:2012-02-29 11:32 回复
  7. 销声匿迹、 说:

    真的是灰常NB,,,这个脚本值得研究一下。。。

    POST:2012-04-24 11:40 回复
  8. fxjudy 说:

    请问多个MYSQL如何修改脚本?

    POST:2013-01-14 23:07 回复
    • 老谢 说:

      @fxjudy 不好意思,不太清楚,没认真研究过这个脚本

      POST:2013-01-16 19:06 回复
  9. DickWu 说:

    如何还原呢?

    POST:2013-07-22 19:56 回复
    • 老谢 说:

      @DickWu 数据文件和数据库都有了,还不好还原?

      POST:2013-07-22 21:13 回复
      • DickWu 说:

        啊。那个包里面是一个文件啊。。。

        POST:2013-07-22 21:31 回复
      • DickWu 说:

        好吧是我后缀看错了。。。

        POST:2013-07-22 21:32 回复
        • 老谢 说:

          @DickWu 哈哈~

          POST:2013-07-22 22:54 回复
发表评论 点击取消评论.

*必填

*必填

  • 文章归档
  • 子网计算
  • 我的共享
  • 锻炼计划
  • 给我留言
  • 关于老谢
2023年 4月
一 二 三 四 五 六 日
 12
3456789
10111213141516
17181920212223
24252627282930
« 10月    

最新文章

  • 2021好久没更新博客
  • Zabbix监控oxidized备份状态
  • Zabbix 5.0 LTS版本MySQL表分区及编译安装随记
  • centos7.9部署oxidized自动备份交换机配置
  • Surface Pro 4更换屏幕与电池
  • VCSA中删除horizon view链接克隆生成的replica-受保护副本
  • Esxi6.7U3安装SanDisk Fusion-io 1.3T ioscale Pci SSD加速卡驱动
  • 搭建ELK日志系统分析处理fortigate的syslog日志
  • 华为USG防火墙配置NAT映射回流解决内网通过公网映射访问内部服务器
  • 飞塔防火墙fortitoken配置

最新评论

  • 无敌风火轮:和索尼没啥关系,这是索尼电脑的...
  • zhudong:老大,有VMware Horizon 7.12相关资...
  • qx:所有连接失效了,求一份
  • RainH:大佬,这个111.111.111.111是什么鬼?...
  • 王叨叨:幸福的人都是相似的,不幸的人各有各...
  • 李海博客:李海博客前来学习!
  • 明月登楼:最近使用了ZeroSSL证书,感觉还不...
  • 鸟叔:尽管不知道干啥的,还是来顶一下
  • 鸟叔:鸟叔来贵博客参观学习,通过十年之约穿...
  • 周良粥凉:往前看。

日志存档

  • 2021年10月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2020年11月
  • 2020年9月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年1月
  • 2019年12月
  • 2019年10月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年3月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年1月
  • 2017年10月
  • 2017年9月
  • 2017年8月
  • 2017年7月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年7月
  • 2016年6月
  • 2016年4月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年10月
  • 2015年9月
  • 2015年7月
  • 2015年5月
  • 2015年4月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2014年5月
  • 2014年4月
  • 2014年3月
  • 2014年2月
  • 2014年1月
  • 2013年12月
  • 2013年11月
  • 2013年10月
  • 2013年9月
  • 2013年8月
  • 2013年7月
  • 2013年6月
  • 2013年5月
  • 2013年4月
  • 2013年3月
  • 2013年2月
  • 2013年1月
  • 2012年12月
  • 2012年11月
  • 2012年9月
  • 2012年8月
  • 2012年7月
  • 2012年6月
  • 2012年5月
  • 2012年4月
  • 2012年3月
  • 2012年2月
  • 2012年1月
  • 2011年12月
  • 2011年11月
  • 2011年10月
  • 2011年9月
  • 2011年8月
  • 2011年7月
  • 2011年6月
  • 2011年5月
  • 2011年4月
  • 2011年3月
  • 2011年2月
  • 2011年1月
  • 2010年12月
  • 2010年11月
  • 2010年10月
  • 2010年9月
  • 2010年8月
  • 2010年7月

W3C

  • XHTML 1.0 Transitional
  • CSS level 3
  • Google+
Copyright © 2010-2023 老谢博客 All rights reserved.
Gzipped 76.5% | Optimized loading 74 queries in 0.277 seconds | Memory 33.61 MB | 皖ICP备13010663号-1
Powered by WordPress. | Hosted By 腾讯云 | Theme by WordPress主题巴士 | 站点地图 | SiteMap | Uptime | 技术支持:苏州天剑计算机系统有限公司