Linux服务器使用Dropbox的API接口备份网站和数据库

发表时间:2017-09-06 15:04 | 分类:建站经验 | 浏览:1,781 次

在Linux服务器上使用dropbox备份网站或者数据库,需要保证服务器可以连上dropbox。由于国内特殊环境,可能国外服务器更加适合使用这个办法。

1、注册

使用Dropbox备份肯定需要先注册,没有的先注册,注册地址:https://www.dropbox.com/ 。

2、创建APP

登录Dropbox后,打开Apps页面,点击 Create App 按钮,创建一个App。

20170824094724

3、下载Dropbox脚本

使用老外分享的脚本,github地址:https://github.com/andreafabrizi/Dropbox-Uploader 。

登录服务器,下载脚本。

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

4、配置Dropbox

chmod +x dropbox_uploader.sh
./dropbox_uploader.sh info

输入命令后会提示输入token,这个码就从刚刚创建的app内获取。

20170824094725

5、测试Dropbox脚本

然后输入下面命令测试,显示Done就没问题了

./dropbox_uploader.sh upload /etc/passwd /passwd.old

6、创建备份脚本

Dropbox脚本没问题后我们就可以自己写个脚本,把需要的数据文件备份到Dropbox了。下面是我用到的脚本,仅供参考。注意备份脚本和下载的Dropbox脚本需要在同一个目录。

#!/bin/bash

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

# 下面的一般不用改了
NOW=$(date +"%Y.%m.%d")
OLD=$(date -d -15day +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tar.gz"
# 备份mysql数据库并和其它备份文件一起压缩成一个文件
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$BACKUP_DST/$NOW-Databases.sql"
echo "数据库备份完成,打包网站数据中..."
tar cfzP "$DESTFILE" $BACKUP_SRC "$BACKUP_DST/$NOW-Databases.sql"
echo "所有数据打包完成,准备上传..."
# 用脚本上传到dropbox
$SCRIPT_DIR/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/VPS1-$NOW.tar.gz"
if [ $? -eq 0 ];then
     echo "上传完成"
else
     echo "上传失败,重新尝试"
fi
# 删除本地的临时文件
rm -f "$BACKUP_DST/$NOW-Databases.sql" "$DESTFILE"
# 删除15天前的数据
$SCRIPT_DIR/dropbox_uploader.sh delete "$DROPBOX_DIR/VPS1-$OLD.tar.gz"

一切没问题后把脚本放到crontab就好了。

本文标签:

本文链接:https://www.sijitao.net/2614.html

欢迎您在本博客中留下评论,如需转载原创文章请注明出处,谢谢!

一键脚本 博客历程 留言联系 文章归档 网站地图 谷歌地图
Copyright © 2010-2024 章郎虫博客 All Rights Reserved.