全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 2302|回复: 10
打印 上一主题 下一主题

[疑问] 用DropBox做VPS数据备份

[复制链接]
跳转到指定楼层
1#
发表于 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上

  1. # wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
  2. # chmod +x dropbox_uploader.sh
  3. # ./dropbox_uploader.sh
复制代码



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

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


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

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

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

  1. wget http://vpsbar.qiniudn.com/backup.sh
复制代码


然后修改

  1. vim backup.sh
复制代码


下面是修改的信息

  1. #!/bin/bash
  2. #
  3. # when:2013/10/15
  4. # who:http://blog.coocla.org
  5. TODAY=`date -I`                                         # 获取当前日期
  6. BACKUP_LOG=/data/backup/backup_${TODAY}.log             # 备份日志
  7. Expire=`date -d -7day +"%Y-%m-%d"`                      # 获取7天前的日期
  8. MYSQL_USER="root"                                       # Mysql用户
  9. MYSQL_PASS="rootpass"                                   # Mysql密码
  10. MYSQL_DB=('blog' 'yunxiaojia')                          # 要备份的数据库名
  11. BACK_DIR=/data/backup                                   # 备份存放的目录
  12. Dropbox=/${TODAY}                                       # Dropbox上创建的app存放目录,这里的根(/)是指app的根目录
  13. WEB_DATA=/data/www/wwwroot                              # 网页文件目录
  14. #Create Today BackupDirectory
  15. if [ ! -d $BACK_DIR/$TODAY ];then
  16.     mkdir $BACK_DIR/$TODAY
  17. fi
  18. #Backup Mysql DB
  19. echo "###############################################################" > $BACKUP_LOG
  20. echo "Backup Mysql DB." >> $BACKUP_LOG
  21. echo "Start Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  22. for db in ${MYSQL_DB[@]};do
  23.     /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
  24. done
  25. tar zcf ${TODAY}_db_full_back.tar.gz *.sql
  26. rm -f *.sql
  27. mv ${TODAY}_db_full_back.tar.gz ${BACK_DIR}/${TODAY}/
  28. echo "Stop Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  29. #Backup Website Data
  30. echo "###############################################################" >> $BACKUP_LOG
  31. echo "Backup Website Data." >> $BACKUP_LOG
  32. echo "Start Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  33. cd $WEB_DATA
  34. tar zcf ${TODAY}_web_full_back.tar.gz ./* && cd -
  35. mv ${WEB_DATA}/${TODAY}_web_full_back.tar.gz ${BACK_DIR}/${TODAY}/
  36. echo "Stop Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  37. #Upload Dropbox
  38. echo "###############################################################" >> $BACKUP_LOG
  39. echo "Upload backup." >> $BACKUP_LOG
  40. echo "Start Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  41. /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
  42. /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
  43. echo "Stop Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  44. #Delete old data
  45. echo "###############################################################" >> $BACKUP_LOG
  46. echo "Delete expire data." >> $BACKUP_LOG
  47. echo "Start Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
  48. find ${BACK_DIR} -mtime +3 | xargs rm -rf
  49. /usr/local/sbin/dropbox_uploader.sh delete /$Expire/ >> $BACKUP_LOG
  50. echo "Stop Time : `date +%F" "%H:%M:%S`" >> $BACKUP_LOG
复制代码


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

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

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


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

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


2#
发表于 2014-4-24 22:04:12 | 只看该作者
卤煮不是收签名位么 不收了?
3#
 楼主| 发表于 2014-4-24 22:06:37 | 只看该作者
气味 发表于 2014-4-24 22:04
卤煮不是收签名位么 不收了?

都没人好好说。。。 说的也太夸张。。。随之放弃了。。。
4#
发表于 2014-4-24 22:08:57 | 只看该作者
vpsbar 发表于 2014-4-24 22:06
都没人好好说。。。 说的也太夸张。。。随之放弃了。。。

我还给你PM了呢 有需要PM俺 签名位只放三个位置
5#
 楼主| 发表于 2014-4-24 22:43:42 | 只看该作者
气味 发表于 2014-4-24 22:08
我还给你PM了呢 有需要PM俺 签名位只放三个位置

貌似签名还看不到哦=,=
6#
发表于 2014-4-24 22:53:08 | 只看该作者
vpsbar 发表于 2014-4-24 22:43
貌似签名还看不到哦=,=

还木有加上?
7#
 楼主| 发表于 2014-4-24 22:54:54 | 只看该作者

你的签名乱掉了。。。
8#
发表于 2014-4-24 22:56:39 | 只看该作者
vpsbar 发表于 2014-4-24 22:54
你的签名乱掉了。。。

我的签名长得比你的好看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-16 07:18 , Processed in 0.064725 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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