备份VPS数据到Dropbox上
以前用wordpress的时候,有个插件可以把vps上的文件和mysql数据库备份到指定的位置上去,比如email、ftp、 dropbox等等。现在用emlog,并没有类似的插件,但是我们有个更简洁更好用的方法,直接利用脚本+cron定时备份数据到dropbox上。下面详述如何来实现 这个功能。
一、下载脚本并赋予可执行权限
#wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh #chmod 700 dropbox_uploader.sh
二、自己建立一个备份脚本,用来调用刚下载的dropbox_uploader.sh
#vi Backup2Dropbox.sh
输入下面的内容:
#!/bin/bash SCRIPT_DIR="/root" #改成dropbox_uploader.sh所在的文件夹位置 DROPBOX_DIR="/vps/bakup" #改成你的备份文件想要放在Dropbox下面的文件夹名称 BACKUP_SRC="/root/test /root/test2" #要备份的本地VPS上的文件,不同的目录用空格分开 BACKUP_DST="/tmp" #暂时存放备份压缩文件的地方,一般用/tmp即可 MYSQL_SERVER="127.0.0.1" #mysql服务器的地址,一般填这个本地地址即可 MYSQL_USER="mysqluser" #mysql的用户名名称,比如root或wp之类的 MYSQL_PASS="password" #mysql用户的密码 # 下面的一般不用改了 NOW=$(date +%Y-%m-%d) DESTFILE="$BACKUP_DST/$NOW.tar.gz" # 备份mysql数据库并和其它备份文件一起压缩成一个文件 mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Datebase.sql" tar cfz "$DESTFILE" $BACKUP_SRC "$NOW-Datebase.sql" # 用脚本上传到dropbox $SCRIPT_DIR/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tar.gz" # 删除本地的临时文件 rm -f "$NOW-Datebase.sql" "$DESTFILE" #删除dropbox上的备份文件,只留最新的三份 $SCRIPT_DIR/dropbox_uploader.sh delete $DROPBOX_DIR/$(date -d -21day +%Y-%m-%d).tar.gz
赋予Backup2Dropbox.sh可执行权限:
#chmod 700 Backup2Dropbox.sh
四、执行一下Backup2Dropbox.sh
#./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回车
根据上面的提示,打开浏览器,到dropbox上做相应的设置,设置完成后,出现
> Access Token request... OK
Setup completed!
则表示运行成功了。
五、设置cron,让脚本在特定的时间运行
crontab -e
输入下面的内容后,保存:
00 4 * * 0 /root/Backup2Dropbox.sh
这表示在每个星期天的凌晨四点运行这个脚本。cron的具体用法参见这篇文章。
至此我们已成功的在vps上设置完成了自动备份脚本,以后它会在你指定的时间把你想要备份的数据都备份到dropbox上,再也不用怕数据丢失了。