Linux VPS主机网站数据库、文件自动定时备份Dropbox网盘

无论我们是选择月付10美金,还是年付10美金的VPS、服务器,无论我们选择成立3个月的主机商,还是选择成立30年的主机商,只要我们一旦选择使用且用于存储有用的数据,比如网站。我们都需要时刻准备保管和备份数据,要明白数据的重要性。我们可以选择定期手工复制备份至本地,也可以选择利用有些主机商提供的快照备份或者付费备份服务。

在这篇文章中,老蒋将会继续折腾关于Linux VPS主机环境中网站文件和数据库备份的又一个方法,备份至DropBox网盘中。我们很多朋友也应该有所了解这个海外的网盘,算是做的比较久且较好的服务商,但是由于种种原因我们在国内是无法直接打开的,这就决定我们如果需要备份国内主机中的数据是不行的。

所以,在这篇文档中,如果我们是海外主机、服务器备份,可以选择Dropbox,免费用户提供2GB账户,一般的小网站是没有问题的。Dropbox网盘还可以用于同步本地电脑的文档,不过鉴于安全角度考虑,重要的账户数据最好不要同步过去,因为我们还是怕那个万一。(老蒋废话一堆,我们开始吧!)

第一、获取Dropbox授权密钥账户

我们在准备利用Dropbox网盘同步备份网站数据之前,需要先获取授权账户。

获取授权:https://www.dropbox.com/developers/apps/create

获取Dropbox授权账户

根据上图所示,我们需要创建应用。

获取密钥文件

获取App key和App secret,这个我们后面配置授权的时候需要用到。

第二、部署DropBox备份授权脚本

git clone https://github.com/andreafabrizi/Dropbox-Uploader/
cd Dropbox-Uploader
chmod +x dropbox_uploader.sh
mkdir /home/backup/
mv dropbox_uploader.sh /home/backup/

如果我们不能执行git则还需要提前安装yum install git -y,这样部署完毕之后需要执行授权。

./dropbox_uploader.sh

部署DropBox备份授权脚本

根据上图提示,我们在浏览器中输入给予的授权确认地址。

授权确认

这样我们确认授权,完毕。这样我们可以完成当前VPS服务器与DropBox的授权。

第三、部署网站备份脚本

#!/bin/bash
# Settings
DROPBOX_DIR="/backups" #Dropbox中的文件夹名称
BACKUP_SRC="/home/wwwroot/laobuluo.com /home/wwwroot/laojiang.me" #需要备份的文件夹路径,可以同时指定多个
BACKUP_DST="/tmp" #用来存放备份的文件夹路径
MYSQL_SERVER="127.0.0.1" #连接本地MySQL
MYSQL_USER="数据库用户" #本地MySQL的用户
MYSQL_PASS="数据库密码" #本地MySQL的密码

# Stop editing here
NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tgz"
LAST=$(date -d "2 months ago" +"%Y.%m.%d") #这里的时间可以根据需要进行修改,如"3 months ago"

# Backup files
ps -e | grep -c mysql
if [ $? -eq 0 ]; then
echo "Dumping databases..."
/usr/bin/mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$BACKUP_DST/$NOW-Databases.sql" #这里的命令路径可以根据需要进行修改
else
echo "ERROR. Now exiting..."
exit 1
fi

if [ $? -eq 0 ]; then
echo "Packing files..."
tar -czf "$DESTFILE" $BACKUP_SRC "$BACKUP_DST/$NOW-Databases.sql"
else
echo "ERROR. Now exiting..."
exit 1
fi

if [ $? -eq 0 ]; then
/home/backup/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tgz" #这里的脚本路径可以根据需要进行修改
else
echo "ERROR. Now exiting..."
exit 1
fi

# Delete old files
if [ $? -eq 0 ]; then
/home/backup/dropbox_uploader.sh delete "$DROPBOX_DIR/$LAST.tgz" #这里的脚本路径可以根据需要进行修改
else
echo "ERROR. Now exiting..."
exit 1
fi

if [ $? -eq 0 ]; then
echo "Cleaning the backups..."
rm -f "$BACKUP_DST/$NOW-Databases.sql"
rm -f "$BACKUP_DST/$LAST.tgz"
else
echo "ERROR. Now exiting..."
exit 1
fi

我们可以将上面的脚本修改然后命名为dropbox-backup.sh,这里我放一个下载文档:

https://soft.itbulu.com/tools/dropbox-backup.sh

我们根据实际的网站项目需要,修改对应的参数。然后放到VPS自己知道的目录中,因为等会需要执行和配置定时备份。

chmod +x dropbox-backup.sh

./dropbox-backup.sh

这样执行之后就会自动备份网站文件和数据库到我们对应的dropbox网盘中。这里需要提到的,我们可以预先给在上面参数与中设置的网盘文件夹在目录中先添加一个。

第四、设置定时备份脚本

crontab –e

编辑定时脚本,然后添加:

30 3 * * * /root/dropbox-backup.sh

这里我们设置每天3点30分执行定时备份,我们也可以设置时间久一点,一般要根据网站的数据更新度来定。

第五、利用Dropbox备份网站小结

1、由于DropBox只能海外IP访问,所以无法备份国内主机中的网站数据。而且网盘免费用户限制2GB,所以备份文件不能超过网盘大小,要不是无法备份的。

2、备份过程设置还是比较简单的,获取对应的授权码之后配对完毕再添加自定义修改过备份网站的脚本执行。有必要的可以根据数据的增加量设置定时时间。

本文出处:老蒋部落 » Linux VPS主机网站数据库、文件自动定时备份Dropbox网盘 | 欢迎分享( 公众号:QQ69377078 )