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

用DropBox做VPS数据备份

[复制链接]

7

主题

69

回帖

163

积分

注册会员

积分
163
发表于 2014-4-24 21:45:09 | 显示全部楼层 |阅读模式
本帖最后由 vpsbar 于 2014-4-24 21:48 编辑

转载自vpsbar.im.

博客原文 http://blog.vpsbar.im/?p=322

Dropbox,一个提供同步本地文件的网络存储在线应用,它提供了丰富的API,我们可以通过API将自己VPS备份的数据立刻同步到DropBox中,而DropBox提供的免费空间最够大部分站长的备份空间需求。我们利用DropBox这样的第三方脚本,来实现同步与删除。

配置自己的Dropbox,创建一个app

下载DropBox脚本,到自己的VPS上

[ol]
  • # wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
  • # chmod +x dropbox_uploader.sh
  • # ./dropbox_uploader.sh[/ol]复制代码


    运行该脚本,根据以下提示进行DropBox的设置

    [ol]
  • This is the first time you run this script.
  • 1) Open the following URL in your Browser, and log in using your account: https://www2.dropbox.com/developers/apps
  • 在浏览器中打开,https://www2.dropbox.com/developers/apps
  • 2) Click on "Create App", then select "Dropbox API app"
  • 点击"Create App"按钮,然后选择"Dropbox API app"
  • 3) Select "Files and datastores"
  • 选择"Files and datastores"选项
  • 4) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder
  • 现在去进行配置,选择这个app对你整个Dropbox文件夹的访问权限
  • 5) Enter the "App Name" that you prefer (e.g. MyUploader113012919723169)
  • 输入一个你喜欢的App名称
  • Now, click on the "Create app" button.
  • When your new App is successfully created, please type the
  • App Key, App Secret and the Permission type shown in the confirmation page:
  • # App key: xxxxxxxxxx
  • # App secret: xxxxxxxxx
  • # Permission type, App folder or Full Dropbox [a/f]: a
  • > App key is xxxxxxxxxx, App secret is xxxxxxxxxx and Access level is App Folder, it's ok? [y/n]y
  • > Token request... OK
  • Please open the following URL in your Browser, and allow Dropbox Uploader
  • to access your DropBox folder:
  • --> https://www2.dropbox.com/1/oauth/authorize?oauth_token=iP0TqrmjjKcAUfwW
  • Press enter when done...
  • > Access Token request... OK
  • Setup completed![/ol]复制代码

    到此为止,关于Dropbox的设置就结束了,接下来按照自己的情况编写备份同步脚本。

    脚本下载地址  http://vpsbar.qiniudn.com/backup.sh

    同学们可以修改好以后在上传,或者直接在vps里面下载方法如下

    [ol]
  • wget http://vpsbar.qiniudn.com/backup.sh[/ol]复制代码

    然后修改

    [ol]
  • vim backup.sh[/ol]复制代码

    下面是修改的信息

    [ol]
  • #!/bin/bash
  • #
  • # when:2013/10/15
  • # who:http://blog.coocla.org
  • TODAY=`date -I`                                         # 获取当前日期
  • BACKUP_LOG=/data/backup/backup_${TODAY}.log             # 备份日志
  • Expire=`date -d -7day +"%Y-%m-%d"`                      # 获取7天前的日期
  • MYSQL_USER="root"                                       # Mysql用户
  • MYSQL_PASS="rootpass"                                   # Mysql密码
  • MYSQL_DB=('blog' 'yunxiaojia')                          # 要备份的数据库名
  • BACK_DIR=/data/backup                                   # 备份存放的目录
  • Dropbox=/${TODAY}                                       # Dropbox上创建的app存放目录,这里的根(/)是指app的根目录
  • WEB_DATA=/data/www/wwwroot                              # 网页文件目录
  • #Create Today BackupDirectory
  • if [ ! -d $BACK_DIR/$TODAY ];then
  •     mkdir $BACK_DIR/$TODAY
  • fi
  • #Backup Mysql DB
  • echo "###############################################################" > $BACKUP_LOG
  • echo "Backup Mysql DB." >> $BACKUP_LOG
  • echo "Start Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  • for db in ${MYSQL_DB[@]};do
  •     /usr/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS --skip-opt --add-drop-table --create-options -q -e --set-charset --routines --single-transaction --master-data=2 $db > ${TODAY}_${db}_full_back.sql --log-error=$BACKUP_LOG
  • done
  • tar zcf ${TODAY}_db_full_back.tar.gz *.sql
  • rm -f *.sql
  • mv ${TODAY}_db_full_back.tar.gz ${BACK_DIR}/${TODAY}/
  • echo "Stop Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  • #Backup Website Data
  • echo "###############################################################" >> $BACKUP_LOG
  • echo "Backup Website Data." >> $BACKUP_LOG
  • echo "Start Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  • cd $WEB_DATA
  • tar zcf ${TODAY}_web_full_back.tar.gz ./* && cd -
  • mv ${WEB_DATA}/${TODAY}_web_full_back.tar.gz ${BACK_DIR}/${TODAY}/
  • echo "Stop Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  • #Upload Dropbox
  • echo "###############################################################" >> $BACKUP_LOG
  • echo "Upload backup." >> $BACKUP_LOG
  • echo "Start Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  • /usr/local/sbin/dropbox_uploader.sh upload ${BACK_DIR}/${TODAY}/${TODAY}_db_full_back.tar.gz ${Dropbox}/${TODAY}_db_full_back.tar.gz >> $BACKUP_LOG
  • /usr/local/sbin/dropbox_uploader.sh upload ${BACK_DIR}/${TODAY}/${TODAY}_web_full_back.tar.gz ${Dropbox}/${TODAY}_web_full_back.tar.gz >> $BACKUP_LOG
  • echo "Stop Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  • #Delete old data
  • echo "###############################################################" >> $BACKUP_LOG
  • echo "Delete expire data." >> $BACKUP_LOG
  • echo "Start Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  • find ${BACK_DIR} -mtime +3 | xargs rm -rf
  • /usr/local/sbin/dropbox_uploader.sh delete /$Expire/ >> $BACKUP_LOG
  • echo "Stop Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG[/ol]复制代码

    然后将该脚本和dropbox_uploader.sh脚本放置于/usr/local/sbin或同一目录下,然后定义crontab计划任务:

    根据日志中开始时间和结束时间,小伙伴们可以定义crontab开始的时间,由于我的内容比较少,在1分钟只能即可完成,我的crontab设置如下:

    [ol]
  • 59 23 * * * /bin/sh /usr/local/sbin/backup.sh > /dev/null 2>&1[/ol]复制代码

    同学们下载DropBox客户端安装在自己的PC或Mac上,然后进行同步,手动运行以上脚本或者等待计划任务执行后,待自动同步后,即可在windows或Mac下查看的到刚才同步上去的备份文件啦!

    最后~ 小站新开求IP  www.vpsbar.im  上百家VPS推荐


  • 回复

    使用道具 举报

    228

    主题

    5383

    回帖

    1万

    积分

    论坛元老

    积分
    11522
    发表于 2014-4-24 22:04:12 | 显示全部楼层
    卤煮不是收签名位么 不收了?

    回复

    使用道具 举报

    7

    主题

    69

    回帖

    163

    积分

    注册会员

    积分
    163
     楼主| 发表于 2014-4-24 22:06:37 | 显示全部楼层

    气味 发表于 2014-4-24 22:04

    卤煮不是收签名位么 不收了?

    都没人好好说。。。 说的也太夸张。。。随之放弃了。。。
    回复

    使用道具 举报

    228

    主题

    5383

    回帖

    1万

    积分

    论坛元老

    积分
    11522
    发表于 2014-4-24 22:04:00 | 显示全部楼层

    vpsbar 发表于 2014-4-24 22:06

    都没人好好说。。。 说的也太夸张。。。随之放弃了。。。



    我还给你PM了呢 有需要PM俺 签名位只放三个位置
    回复

    使用道具 举报

    7

    主题

    69

    回帖

    163

    积分

    注册会员

    积分
    163
     楼主| 发表于 2014-4-24 22:08:57 | 显示全部楼层

    气味 发表于 2014-4-24 22:08

    我还给你PM了呢 有需要PM俺 签名位只放三个位置

    貌似签名还看不到哦=,=
    回复

    使用道具 举报

    228

    主题

    5383

    回帖

    1万

    积分

    论坛元老

    积分
    11522
    发表于 2014-4-24 22:06:00 | 显示全部楼层

    vpsbar 发表于 2014-4-24 22:43

    貌似签名还看不到哦=,=



    还木有加上?
    回复

    使用道具 举报

    7

    主题

    69

    回帖

    163

    积分

    注册会员

    积分
    163
     楼主| 发表于 2014-4-24 22:43:42 | 显示全部楼层

    气味 发表于 2014-4-24 22:53

    还木有加上?



    你的签名乱掉了。。。
    回复

    使用道具 举报

    228

    主题

    5383

    回帖

    1万

    积分

    论坛元老

    积分
    11522
    发表于 2014-4-24 22:08:00 | 显示全部楼层

    vpsbar 发表于 2014-4-24 22:54

    你的签名乱掉了。。。



    我的签名长得比你的好看
    回复

    使用道具 举报

    67

    主题

    332

    回帖

    913

    积分

    高级会员

    积分
    913
    发表于 2014-4-24 22:53:08 | 显示全部楼层
    劉明
    回复

    使用道具 举报

    0

    主题

    1

    回帖

    4

    积分

    新手上路

    积分
    4
    发表于 2014-4-24 22:43:00 | 显示全部楼层
    好东西话说现在250G 的VPS才4刀一月,有必要费那功夫么? 买个VPS 用SFTP不就结了
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-1-29 07:33 , Processed in 0.019890 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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