国庆的时候,智联IDC联系我说:给你赞助服务器,需要啥开口就行。
于是,我要了一台韩国物理机。
大陆优化,我还是保持套用CDN,昨晚已经将论坛迁移上去了,可能是心理作祟,明显觉得响应速度比之前快了。
第一件事还是搞定时备份,数据库好说,压缩下来也就40多MB,搞了个每两小时备份一次到又拍,但是网站压缩包有5GB大,每次自动备份上传都会因为文件过大失败,所以昨晚研究了一下增量备份。
我的操作很简单,这个备份方式也适用所有人,非常方便,以下教程以宝塔为例,把网站数据从主服务器(网站所在)备份到副服务器(专门备份)
首先,安装 rsync:
确保在两台服务器上都安装了 rsync,可以使用以下命令安装,打开终端输入对应命令:
sudo apt-get install rsync # Debian/Ubuntu
sudo yum install rsync # CentOS/RHEL
然后,在主服务器SSH里连接副服务器:
ssh-keygen
ssh-copy-id 副服务器SSH用户名@副服务器IP
回车根据提示输入密码即可,弹出Enter passphrase (empty for no passphrase):
是让你设置密码短语,直接回车不要设置。
然后,在主服务器根目录下的/root/目录里,创建一个文件:backup.sh,内容写:
#!/bin/bash
# 设置变量
SOURCE_DIR="/www/wwwroot/网站目录" # 主服务器上的网站目录
DEST_DIR="副服务器SSH用户名@副服务器IP:/www/wwwroot/网站目录" # 副服务器上的备份目录
LOG_FILE="/root/backup.log" # 日志文件路径
# 输出脚本开始执行的消息
echo "脚本开始执行" | tee -a "$LOG_FILE"
# 使用 rsync 进行增量备份,排除 .user.ini 系统文件
rsync -avz --delete --exclude='.user.ini' "$SOURCE_DIR/" "$DEST_DIR" >> "$LOG_FILE" 2>&1
# 输出备份完成的消息
echo "备份完成" | tee -a "$LOG_FILE"
因为在上面脚本中我们加入了日志,所以还需要在/root目录下手动创建一个backup.log文件,以便备份日志记录。
再次打开终端,执行
chmod +x ~/backup.sh
赋予它执行权限,现在可以运行脚本。执行以下命令:
~/backup.sh
看到提示信息就说明备份成功了,接下来创建一个脚本来定时执行这个任务。
要定时执行 ~/backup.sh 脚本,在终端中运行以下命令,以打开 crontab 编辑器:
crontab -e
crontab 的格式如下:
第一个 * 表示分钟(0 - 59)
第二个 * 表示小时(0 - 23)
第三个 * 表示日期(1 - 31)
第四个 * 表示月份(1 - 12)
第五个 * 表示星期几(0 - 7,0和7都表示星期日)
比如我每小时执行,就是:
0 * * * * ~/backup.sh
按 Ctrl + O 保存,按 Ctrl + X 退出。
查看当前的定时任务是否创建成功:
crontab -l
或者
直接在宝塔定时任务那里添加shell脚本任务,以root身份执行,脚本内容:
sh ~/backup.sh
增量备份机制:
在备份过程中,会比较源目录和备份目录中的文件,它通过检查文件的大小和修改时间来判断文件是否被修改过,如果源目录中的文件被修改,只传输这些变化的文件,而不是重新传输整个目录,这种机制大大减少了需要传输的数据量,提高了备份速度和效率。
假设在主服务器的 /www/wwwroot/www.dalao.net 目录中有以下文件:
file1.txt(未修改)
file2.txt(已修改)
file3.txt(已删除)
当执行命令后:
file1.txt 会保持不变(未修改)。
file2.txt 会被传输到备份服务器,因为它已经被修改。
file3.txt 会从备份服务器中删除,因为它在源目录中被删除了。
以上是网站文件的增量备份,数据库也大同小异,但我没有去做,因为文件不大,直接备份到七牛了,这样增量似乎也可以实现多源站方案。
深怕出问题了这是
太高配了,直接物理机放了一个论坛,这教程感觉好高端啊
等我需要配的时候,必须过来好好学一下
有人赞助的感觉真好😂
我在白嫖甲骨文arm
高配论坛
老板说要每天备份,今年硬盘烧了三块了,吓得我马上搞增量,2小时一次。(PS 泽泽的邮件通知更新版本后好像失效了不通知。。。)
这个配置不开游戏可惜了
就放一个小论坛,大材小用
直接就是24h的
稳
有人赞助是好事,能不能给我开个地方放博客。。。哈哈
就打算放论坛了,实时备份,自己博客都懒得弄上去