91Linux - back_data
type: channel
link: https://91linux.org/tag/back_data/
items: 自动备份文件到Dropbox

自动备份文件到Dropbox
type: item
date: 2020-04-13T16:42:00+08:00
description: 一、登录Dropbox并创建一个APP如果你还没有注册Dropbox，可以通过这个地址注册：https://db.tt/qN9YBSrNP6登录之后，通过这个地址：https://www.dropbox.com/developers/apps点击Create an app创建一个APP，填写相关信息之后，选择Full Dropbox之后点击Create创建。二、下载Dropbox-UploaderDropbox Uploader是一个用bash脚本写的，可以对Dropbox进行上传、下载、删除、浏览、分享等操作。实在是VPS举家备份，同步，迁移之利器。下载地址：https://github.com/andreafabrizi/Dropbox-Uploader下载之后上传至VPS的root目录。三、赋予执行权限并绑定Dropbox APP用SSH执行，建议使用Xshell。赋予Dropbox-Uploader.sh执行权限chmod +x dropbox_uploader.sh 然后绑定APP./dropbox_uploader.sh info 按提示分别输入App key和App secret，然后输入 Y 确认；之后会出现如下画面：复制图中的链接在浏览器中打开（可能需要翻墙）并点击Allow绑定APP，然后回到Xshell按Enter。之后可以执行下面的命令测试上传，提示Done就是绑定成功了。./dropbox_uploader.sh upload /etc/passwd /backup/passwd.old 四、添加自动备份脚本在Xshell中执行：vi backup.sh 按 i 进入编辑模式适当修改以下内容后，复制粘贴进去#!/bin/bash DROPBOX_DIR="/backup/$(date +%Y-%m-%d)" #Dropbox上的备份目录 MYSQL_USER="root" #数据库帐号 MYSQL_PASS="123456" #数据库密码 YM_DATA=/etc/nginx #nginx配置目录 BACK_DATA=/home/backup #本地备份文件存放目录，手动创建 DATA=/home/www #网站数据存放目录 #定义数据库的名字和旧数据库的名字 DataBakName=Data_$(date +"%Y%m%d").tar.gz WebBakName=Web_$(date +%Y%m%d).tar.gz YMName=YM_$(date +%Y%m%d).tar.gz OldData=Data_$(date -d -6day +"%Y%m%d").tar.gz OldWeb=Web_$(date -d -6day +"%Y%m%d").tar.gz OldYM=YM_$(date -d -6day +"%Y%m%d").tar.gz #定义Dropbox旧数据的名字（30天前） Old_DROPBOX_DIR=/backup/$(date -d -30day +%Y-%m-%d) #Dropbox上的备份目录 #删除本地6天前的数据 rm -rf $BACK_DATA/$OldData $BACK_DATA/$OldWeb $BACK_DATA/$OldYM cd $BACK_DATA #使用命令导出SQL数据库,并且按数据库分个压缩 for db in `mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do (mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz) done #压缩数据库文件合并为一个压缩文件 tar zcf $BACK_DATA/$DataBakName $BACK_DATA/*.sql.gz rm -rf $BACK_DATA/*.sql.gz #压缩网站数据 cd $DATA tar zcf $BACK_DATA/$WebBakName ./* #压缩域名配置数据 cd $YM_DATA tar zcf $BACK_DATA/$YMName ./* cd ~ #开始上传 ./dropbox_uploader.sh upload $BACK_DATA/$DataBakName $DROPBOX_DIR/$DataBakName ./dropbox_uploader.sh upload $BACK_DATA/$WebBakName $DROPBOX_DIR/$WebBakName ./dropbox_uploader.sh upload $BACK_DATA/$YMName $DROPBOX…