自动备份VPS到Dropbox

2015-02-11 14:16:20    2015-02-11 14:23:18

下载dropbox脚本

先去下载dropbox连接脚本,并修改权限成可执行文件

wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
chmod 700 dropbox_uploader.sh

建立自己的备份脚本

然后我们自己建立一个备份脚本:

vi Backup2Dropbox.sh

里面的内容为:

#!/bin/bash

SCRIPT_DIR="/root" #这个改成你存放刚刚下载下来的dropbox_uploader.sh的文件夹位置
DROPBOX_DIR="/testbackup" #这个改成你的备份文件想要放在Dropbox下面的文件夹名称,如果不存在,脚本会自动创建
BACKUP_SRC="/root/test /root/test2" #这个是你想要备份的本地VPS上的文件,不同的目录用空格分开
BACKUP_DST="/tmp" #这个是你暂时存放备份压缩文件的地方,一般用/tmp即可
MYSQL_SERVER="127.0.0.1" #这个是你mysql服务器的地址,一般填这个本地地址即可
MYSQL_USER="mysqluser" #这个是你mysql的用户名名称,比如root或admin之类的
MYSQL_PASS="password" #这个是你mysql用户的密码

# 下面的一般不用改了
NOW=$(date +"%A")
DESTFILE="$BACKUP_DST/$NOW.tar.gz"

# 备份mysql数据库并和其它备份文件一起压缩成一个文件
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"
tar cfz "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"

# 用脚本上传到dropbox
$SCRIPT_DIR/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tar.gz"

# 删除本地的临时文件
rm -f "$NOW-Databases.sql" "$DESTFILE"

然后再把刚刚我们自己建立的脚本文件改成可执行文件

chmod 700 Backup2Dropbox.sh

建立dropbox app连接

是不是想要赶快试试看这个自己的脚本呢?先别急,如果细心的话你可能已经发现了,这个脚本里面根本没有你Dropbox的用户名和密码。那这个脚本怎么知道上传到谁的Dropbox里面呢?这个dropbox_uploader.sh脚本是用了Dropbox的API,所以不需要你提供Dropbox的密码,更安全可靠。

下面我们来看一下如何设置这个dropbox_uploader.sh脚本连接到你的dropbox上。先运行一下刚刚我们下载的脚本文件:

./dropbox_uploader.sh

你会看到类似下面的提示文字

 This is the first time you run this script.
 Please open this URL from your Browser, and access using your account:
#因为这是第一次使用这个脚本,所以要先用浏览器打开下面的网址去建立一个app
 -> https://www2.dropbox.com/developers/apps
#进入这个网址并登录后,点击"Create an App",应该会出来一个新建app的对话框
 If you haven’t already done, click "Create an App" and fill in the
 form with the following data:
#照着下面它提供给你的信息填进去
  App name: MyUploader631510919    #这个是App的名字
  Description: What do you want... #这一栏是描述,随便填就行了
  Access level: Full Dropbox  #注意权限这一栏要选"Full Dropbox",也就是所有权限
#然后点击"Create"按钮建立新的App
 Now, click on the "Create" button.

 When your new App is successfully created, please insert the
 App Key and App Secret:

#新的App建立后,应该会看到一个叫App key和一个叫App secret的东西
  App key: 1234567890  #把你的key复制到这边
  App secret: 987654321  #把你的secret复制到这边

 > App key is 1234567890 and App secret is 987654321, it’s ok? [y/n] y #确定无误后按y回车

然后会出现下面的信息:

 > Token request... OK

 Please visit this URL from your Browser, and allow Dropbox Uploader
 to access your DropBox account:
#复制下面的链接到你的浏览器里面,打开后按"Allow"允许脚本访问你的Dropbox App
 --> https://www2.dropbox.com/1/oauth/authorize?oauth_token=123456789
#成功后按回车继续
Press enter when done...

如果看到以下的信息,就是成功连上了

 > Access Token request... OK

 Setup completed!

运行备份脚本

这时候我们就可以运行刚刚自己建立的备份脚本备份文件啦。

./Backup2Dropbox.sh

如果需要定时备份,可以通过设置cron来定时运行我们这个脚本。

dropbox_upload.sh脚本通过使用Dropbox API,除了能上传,还能下载,显示,删除dropbox上文件等多种功能,相信大家可以在此基础上开发出更多不同类型更强大的脚本