零玖博客

宝塔面板站点与数据库一键备份与恢复脚本

鉴于国内服务器的不确定性,近期经常有丢失数据的,因此特地出了这个宝塔面板站点与数据库一键备份与恢复脚本。分为 2 个文件,分别为备份脚本 (backup.sh) 与恢复脚本 (restore.sh) 。

该脚本相关功能与特色如下:

1 、支持多种备份存储位置,有远程服务器 (scp) 、阿里云 OSS 、腾讯云 COS 、华为云 OBS 、百度云 BOS

2 、不仅可以备份全部网站文件和数据库,还可以备份所有网站的绑定域名、伪静态、反向代理、备注、 SSL 证书等各种网站设置。宝塔自带的备份功能只支持备份网站文件与数据库,不支持备份网站的设置信息。

3 、数据库备份采用 XtraBackup 实现物理热备,即使是大量数据,也能很快完成备份与恢复,并且备份与恢复过程占用系统资源少。宝塔自带的数据库备份是逻辑备份,速度慢而且占用大量 CPU 。

4 、备份脚本设置好之后,添加到 crontab,可实现自动定时备份。

5 、全新安装宝塔面板,下载备份文件,执行一键恢复脚本后,立即恢复网站业务访问,不需要手动创建网站等额外操作。

备份脚本 (backup.sh使用方法:

1 、先安装 XtraBackup,用于数据库物理热备 (以 CentOS 7 为例)

wget http://file.kangle.cccyun.cn/file/percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm
yum -y install percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm

2 、用编辑器打开备份脚本 (千万不能用 Windows 记事本编辑!),修改里面的数据库密码、备份存储位置类型等相关信息。然后上传到服务器。

#给备份脚本执行权限
chmod 755 /root/backup.sh
#添加到 crontab,设置每天 2:00 备份
crontab -e
0 2 * * * /root/backup.sh >/root/backup.log 2>&1

3 、备份存储类型相关配置

如果选择备份到云存储,建议云存储和云服务器不在同一个账号下,否则假如账号被封,相当于没有备份。

(1) 备份存储位置类型为远程 linux 服务器说明:

需要配置免密登录,分别在 2 台服务器执行以下命令

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

在当前需要备份数据的服务器执行以下命令

ssh-copy-id -i ~/.ssh/id_rsa.pub root@远程服务器 IP

然后根据提示输入远程服务器的密码即可完成配置免密登录。

(2) 备份存储位置类型为阿里云 OSS 说明:

执行以下命令完成 ossutil 安装与配置 (参考资料地址

 

wget -O ossutil http://gosspublic.alicdn.com/ossutil/1.7.9/ossutil64
mv ossutil /usr/bin
chmod +x /usr/bin/ossutil
ossutil config -e <OSS Endpoint> -i < 你的 ak> -k < 你的 sk>

(3) 备份存储位置类型为腾讯云 COS 说明:

执行以下命令完成 coscli 安装与配置 (参考资料地址

 

wget -O coscli https://download.fastgit.org/tencentyun/coscli/releases/download/v0.10.2-beta/coscli-linux
mv coscli /usr/bin
chmod +x /usr/bin/coscli
coscli config
#后面根据提示输入 Secret ID 、 Secret Key 、 Bucket Name 、 Bucket Region 参数,其中 Session Token 、 Bucket Alias 可直接留空回车

(4) 备份存储位置类型为华为云 OBS 说明:

执行以下命令完成 obsutil 安装与配置 (参考资料地址

 

wget https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz
tar -xzvf obsutil_linux_amd64.tar.gz
cd obsutil_linux_amd64*
mv obsutil /usr/bin
chmod 755 /usr/bin/obsutil
cd ..
rm -rf obsutil_linux_amd64*
obsutil config -i=<ak> -k=<sk> -e=<endpoint>

(5) 备份存储位置类型为百度云 BOS 说明:

执行以下命令完成 boscmd 安装与配置 (参考资料地址

 

wget https://bce-doc-on.bj.bcebos.com/bce-documentation/BOS/linux-bcecmd-0.3.2.zip
unzip linux-bcecmd-0.3.2.zip
mv linux-bcecmd-0.3.2/bcecmd /usr/bin
chmod 755 /usr/bin/bcecmd
rm -f linux-bcecmd-0.3.2.zip
bcecmd

(6) 备份存储位置类型为七牛云说明:

执行以下命令完成 qshell 安装与配置 (参考资料地址

 

wget https://devtools.qiniu.com/qshell-v2.6.2-linux-amd64.tar.gz
tar zxvf qshell-v2.6.2-linux-amd64.tar.gz
mv qshell /usr/bin
chmod +x /usr/bin/qshell
rm -f qshell-v2.6.2-linux-amd64.tar.gz
qshell account <ak> <sk> <name>

恢复脚本 (restore.sh) 使用方法:

注意:恢复之前必须先安装好宝塔面板,并且确保没有创建任何网站和数据库!如果已创建过需要先删除才能执行恢复脚本!

用编辑器打开备份脚本 (千万不能用 Windows 记事本编辑!),修改里面的数据库密码,然后上传到备份文件所在目录 (目录里面需包含 wwwroot.tgz 、 mysql.tgz 、 config.tgz)

 

#给恢复脚本执行权限
chmod 755 ./restore.sh
#执行恢复
./restore.sh

下载方式:

1:bt_backup.zip(虎绿林七牛云存储下载)

2:bt_backup.zip(彩虹博客附件下载)

 

内容转载自互联网,侵删

虎绿林 @net909 @缤纷彩虹天地

退出移动版