在Linux服务器上使用dropbox备份网站或者数据库,需要保证服务器可以连上dropbox。由于国内特殊环境,可能国外服务器更加适合使用这个办法。
1、注册
使用Dropbox备份肯定需要先注册,没有的先注册,注册地址:https://www.dropbox.com/ 。
2、创建APP
登录Dropbox后,打开Apps页面,点击 Create App 按钮,创建一个App。
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内获取。
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就好了。