网站自动增量备份到另一台服务器

[复制链接]

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
增量备份方式适用所有人,非常方便,不用每次都全站打包上传,以下教程以宝塔为例,把网站数据从主服务器(网站所在)备份到副服务器(专门备份)

首先,安装 rsync:
确保在两台服务器上都安装了 rsync,可以使用以下命令安装,打开终端输入对应命令:

  1. sudo apt-get install rsync    # Debian/Ubuntu
  2. sudo yum install rsync        # CentOS/RHEL
复制代码
然后,在主服务器 SSH 里连接副服务器:

  1. ssh-keygen
  2. ssh-copy-id 副服务器SSH用户名@副服务器IP
复制代码
回车根据提示输入密码即可,弹出 Enter passphrase (empty for no passphrase): 是让你设置密码短语,直接回车不要设置。

然后,在主服务器根目录下的 /root/ 目录里,创建一个文件:backup.sh,内容写:

  1. #!/bin/bash

  2. # 设置变量
  3. SOURCE_DIR="/www/wwwroot/站点目录"  # 主服务器上的网站目录
  4. DEST_DIR="副服务器SSH用户名@副服务器IP:/www/wwwroot/站点目录"  # 副服务器上的备份目录
  5. LOG_FILE="/root/backup.log"  # 日志文件路径

  6. # 输出脚本开始执行的消息
  7. echo "脚本开始执行" | tee -a "$LOG_FILE"

  8. # 使用 rsync 进行增量备份,排除 .user.ini 系统文件
  9. rsync -avz --delete --exclude='.user.ini' "$SOURCE_DIR/" "$DEST_DIR" >> "$LOG_FILE" 2>&1

  10. # 输出备份完成的消息
  11. echo "备份完成" | tee -a "$LOG_FILE"
复制代码
因为在上面脚本中我们加入了日志,所以还需要在 /root 目录下手动创建一个 backup.log 文件,以便备份日志记录。

再次打开终端,执行

  1. chmod +x ~/backup.sh
复制代码
赋予它执行权限,现在可以运行脚本。执行以下命令:

  1. ~/backup.sh
复制代码

看到提示信息就说明备份成功了,接下来创建一个脚本来定时执行这个任务。

要定时执行~/backup.sh 脚本,在终端中运行以下命令,以打开 crontab 编辑器:

  1. crontab -e
复制代码

crontab 的格式如下:
第一个 * 表示分钟(0 - 59)
第二个 * 表示小时(0 - 23)
第三个 * 表示日期(1 - 31)
第四个 * 表示月份(1 - 12)
第五个 * 表示星期几(0 - 7,0 和 7 都表示星期日)

比如我每小时执行,就是:

  1. 0 * * * * ~/backup.sh
复制代码
按 Ctrl + O 保存,按 Ctrl + X 退出。

查看当前的定时任务是否创建成功:

  1. crontab -l
复制代码

或者

直接在宝塔定时任务那里添加 shell 脚本任务,以 root 身份执行,脚本内容:

  1. sh ~/backup.sh
复制代码

增量备份机制:

在备份过程中,会比较源目录和备份目录中的文件,它通过检查文件的大小和修改时间来判断文件是否被修改过,如果源目录中的文件被修改,只传输这些变化的文件,而不是重新传输整个目录,这种机制大大减少了需要传输的数据量,提高了备份速度和效率。

假设在主服务器的 /www/wwwroot/ 站点目录 目录中有以下文件:
file1.txt(未修改)
file2.txt(已修改)
file3.txt(已删除)

当执行命令后:
file1.txt 会保持不变(未修改)。
file2.txt 会被传输到备份服务器,因为它已经被修改。
file3.txt 会从备份服务器中删除,因为它在源目录中被删除了。

以上是我给 dalao.net 网站文件的增量备份,数据库也大同小异,但我没有去做,因为文件不大,直接备份到七牛了,这样增量似乎也可以实现多源站方案。


(搬运自:大佬论坛)
全部回复1 显示全部楼层
China(UID:49) 发表于 2024-10-10 20:41:33 | 显示全部楼层
保存一下,也许用到,虽然我从来不做备份
3BBS-拥有用户名和UID最多的男人

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼

关于楼主

超级版主
  • 主题

    592
  • 回答

    194
  • 积分

    1774
虚位以待,此位置招租

商务推广

    网盘拉新-短剧推广 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租