Dropbox 备份站点文件+数据库

Linux
27 0

创建 Dropbox app

https://www.dropbox.com/developers/apps

alt

Dropbox 脚本

准备输入 token

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

alt

获取 token

alt

测试上传

# 上传本地文件到网盘(file.txt -> file_backup.txt)
./dropbox_uploader.sh upload /root/file.txt /file_backup.txt

# 输出
> Uploading "/root/file.txt" to "/file_backup.txt"... DONE

备份脚本 backup.sh(Unix 格式)

#!/bin/bash

# 这个改成你存放刚刚下载下来的 dropbox_uploader.sh 的文件夹位置
SCRIPT_DIR="/root/jobs/dropbox"

# 这个改成你的备份文件想要放在 Dropbox 下面的文件夹名称,如果不存在,脚本会自动创建
DROPBOX_DIR=""

# 这个是你想要备份的本地 VPS 上的文件,不同的目录用空格分开
BACKUP_SRC="/home/wwwroot /usr/local/nginx/conf"

# 这个是你暂时存放备份压缩文件的地方,一般用/tmp 即可
BACKUP_DST="/tmp"

# 这个是你 mysql 服务器的地址,一般填这个本地地址即可
MYSQL_SERVER="localhost"

# 这个是你 mysql 的用户名名称,比如 root 或 admin 之类的
MYSQL_USER="root"

# 这个是你 mysql 用户的密码
MYSQL_PASS="root"

# 下面的一般不用改了
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"

备份&定时

chmod +x backup.sh
./backup.sh

# 定时
crontab -e
* * 8 * * cd ~ ./backup.sh > /dev/null 2>&1 &

alt
alt

感谢

Github:Dropbox-Uploader

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

更新 2018-04-12
评论 ( 0 )
私信
pic
code
pre