使用Dropbox备份网站以及数据库

做网站最重要的是什么?数据!数据,是网站之本,备份,是每一个站长都应该重视的事情。但同时,备份也是一件繁琐和重复的事情。所以,这些事情,肯定能做到自动化的。
下面来介绍一下利用Dropbox来备份网站以及数据库。

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

2. 下载 Dropbox-Uploader 脚本到 VPS
git clone https://github.com/andreafabrizi/Dropbox-Uploader.git
然后给出脚本的执行权限并运行它:
chmod +x dropbox_uploader.sh
./Dropbox-Uploader/dropbox_uploader.sh
  • 首次运行时dropbox_uploader,您将被引导通过向导来配置对 Dropbox 的访问。
  • 此配置将存储在~/.dropbox_uploader
接着根据提示输入 Access token:
  • 在创建的 App 里,点击Generate

  • 将出现的 Access token 复制到之前运行的终端连接软件中

  • 然后输入下面命令测试,显示Done就没问题了
./Dropbox-Uploader/dropbox_uploader.sh upload /etc/passwd /backup/passwd.old
3. 创建备份脚本并输入以下内容
#!/bin/bash
SCRIPT_DIR="/root/Dropbox-Uploader" #这个改成你存放刚刚下载下来的dropbox_uploader.sh的文件夹位置
DROPBOX_DIR="/backup" #这个改成你的备份文件想要放在Dropbox下面的文件夹名称,如果不存在,脚本会自动创建
BACKUP_SRC="/home/wwwroot /usr/local/nginx/conf" #这个是你想要备份的本地VPS上的文件,不同的目录用空格分开
BACKUP_DST="/tmp" #这个是你暂时存放备份压缩文件的地方,一般用/tmp即可
MYSQL_SERVER="localhost" #这个是你mysql服务器的地址,一般填这个本地地址即可
MYSQL_USER="mysqluser" #这个是你mysql的用户名名称,比如root或admin之类的
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-Databases.sql"
echo "数据库备份完成,打包网站数据中..."
tar cfzP "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"
echo "所有数据打包完成,准备上传..."
# 用脚本上传到dropbox
$SCRIPT_DIR/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tar.gz"
if [ $? -eq 0 ];then
     echo "上传完成"
else
     echo "上传失败,重新尝试"
fi
# 删除本地的临时文件
rm -f "$NOW-Databases.sql" "$DESTFILE"
  • 然后改为可执行文件:
chmod +x backup.sh #赋予权限
  • 运行的时候就输入下面的代码即可:
./backup.sh
  • 然后通过 cron 来设置定时运行脚本:
crontab -e
  • 加入以下代码,:wq 保存
30 3 * * * /bin/bash /root/backup.sh

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址