分享一个全自动备份VPS网站数据的脚本

优采云 发布时间: 2022-06-13 01:27

  分享一个全自动备份VPS网站数据的脚本

  前几天因为 GigsGigsCloud 香港机房的交换机出了问题,网站宕机了 9 个小时,所以决定将所有有点流量的网站都每天备份了。技术栈是 rsync + crontab,将网站数据备份到另一台 VPS 上。这里分享下这个网站数据全自动每天备份的方法。

  一、数据准备

  除了自己的建站 VPS 之外,你还需要一台备份数据的备份 VPS,对于这台备份 VPS 的网络要求不是很高,但是根据你网站数据的大小需要考虑备份 VPS 的硬盘容量。

  如果没有合适的备份 VPS,可以在 自己找一台合适的,HostDare 和搬瓦工都不错。

  二、数据同步设置

  两台 VPS 之间的数据传输借助的是 rsync,这里介绍一个传输命令:

  rsync -avP data.zip root@104.11.11.11:/root/backup

  这条命令的作用是将建站 VPS 上的 data.zip 传输到备份 VPS(IP 为 104.11.11.11)上的/root/backup目录下。

  备份思路很清楚:

  导出数据库;

  压缩网站数据;

  将数据库数据和网站数据打包好;

  利用 rsync 将打包后的数据传输到备份 VPS 上。

  这里分享一个写好的打包与传输脚本,保存为 backup.sh:

  DATE=$(date +%Y%m)<br />BLOG_DIR='/home/wwwroot/www.pianyivps.com'<br />BLOG_NAME='www.pianyivps.com'<br />MYSQL_USER='user'<br />MYSQL_PASS='password'<br />DB='db'<br />BACKUP_DIR='/root/backup'<br />BACKUP_IP_DEST='104.11.11.11'<br />BACKUP_DIR_DEST='/root/backup'if [ ! -d ${BACKUP_DIR} ]; then<br /> mkdir ${BACKUP_DIR}fi<br />cd ${BACKUP_DIR}<br /> <br />mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${DB} > ${DB}_${DATE}.sql<br /> <br />echo "SQL size: $(wc -c ${DB}_${DATE}.sql | awk '{print $1}')"<br /> <br />zip -r ${BLOG_NAME}_${DATE}.zip ${BLOG_DIR} > /dev/null<br /> <br />echo "WWW size: $(wc -c ${BLOG_NAME}_${DATE}.zip | awk '{print $1}')"<br /> <br />zip ${BLOG_NAME}_${DATE}_ALL.zip ${BLOG_NAME}_${DATE}.zip ${DB}_${DATE}.sql > /dev/null<br /> <br />rsync -avP ${BLOG_NAME}_${DATE}_ALL.zip root@${BACKUP_IP_DEST}:${BACKUP_DIR_DEST}<br /> <br />rm -rf ${DB}_${DATE}.sql ${BLOG_NAME}_${DATE}.zip ${BLOG_NAME}_${DATE}_ALL.zip<br /> <br />echo ${BLOG_NAME}_${DATE}_DONE

  为了防止每次传输数据都需要输入 root 密码,那么可以先配置好 SSH 公钥。

  1.在建站 VPS 上生成 SSH 公钥

  生成 SSH 公钥的命令如下,一路回车即可,生成的公钥为/root/.ssh/id_rsa.pub:

  ssh-keygen

  2.将建站 VPS 的 SSH 公钥保存到备份 VPS 上

  将刚才的 id_rsa.pub 重命名,例如这里我重命名为 pianyivps.pub,再把文件拷贝到备份 VPS 的 /root/.ssh 下,将改公钥保存到备份 VPS 上:

  cat pianyivps.pub >> authorized_keys

  之后,再用 rsync 时就不需要输入 root 密码了。

  三、定时任务设置

  最后的定时任务就是借助 crontab 命令了,例如我希望每天 0:30 备份网站数据:

  # 每天0点30分执行/root/backup.sh脚本,执行的日志保存在/root/backup.log中30 0 * * * /root/backup.sh >> /root/backup.log 2>&1

  OK,大功告成,数据每日自动备份,高枕无忧。

  四、最近便宜的VPS 推荐

  最近值得入手的 VPS 莫过于腾讯云新用户秒杀了,国内 VPS 198元/年,香港 VPS 249元/年,但是很值得入手的:

  秒杀时间:10:00;13:00;16:00;19:00 (每天4场,每场持续3小时)

  秒杀地址:

  二维码直达:

  另外,阿里云香港轻量应用服务器我昨天做了一个演示站,发现建站速度是真的快,30Mbps 的带宽,月付 24 元,虽然去程 NTT,但是回程 CN2 才是网站速度关键,移动和联通直连速度也很快,对于想免备案建站的朋友可以尝试,演示站地址:

  flyzy小站

  VPS测评与优惠,域名教程与优惠,玩机教程,技术分享,欢迎关注

  VPS交流群:950159617VPS优惠通知群(禁言):707910851原文地址:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线