无论我们选择虚拟主机,还是选择VPS、服务器,最为关键的就是服务器中的数据。相对而言,选择优质服务商和服务器的意外几率会小一些,但也不是没有。因为服务器的意外不是商家和我们用户控制的,包括服务器中程序的问题,也可能是我们人为的操作问题。
如果网站数据量不大,我们可以采用定期人工备份或者利用定时备份脚本。一键包环境或者是WEB面板都带有自动备份到本地和远程服务器的功能。如果数据量较大,我们其实可以采用Rsync实现同步增量备份。下面的记录是通过Rsync实现文件同步增量备份的。
设置过程却是比较繁琐,如果我们普通项目用户可以使用商家自带的快照定时或者脚本环境带的自动备份功能,以及我们自己的定期备份。(本文来自:https://www.laobuluo.com/1070.html)
第一、准备工作
1、数据备份
如果我们没有把握一次性搞定,我们可以准备两台测试环境服务器实现Rsync同步备份功能之后再用到生产环境。如果用到生产环境,我们可以将服务器快照备份,或者将网站、项目数据备份。
2、服务器准备
这里我们采用的是Rsync同步增量备份,所以我们需要准备主服务器、以及一台备份服务器。鉴于数据备份后的功能,我们可以直接备份到备份服务器某一个目录,或者将备份服务器安装主服务器环境,将需要备份的网站项目备份到对应的同目录中。
3、端口开放
如果我们服务器没有设定iptables防火墙规则,那就不要设置端口。如果我们有设置iptables防火墙,那就需要将873端口添加放行。
vi /etc/sysconfig/iptables
打开iptables规则文档,添加:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
编辑保存之后,然后/etc/init.d/iptables restart
重启才能生效。同样的方法,我们需要在主服务器和备份服务器同时设置。
第二、配置备份服务器
1、安装rsync
2、配置文件
vi /etc/xinetd.d/rsync
将配置文件disable参数从"yes"换成"no"。
3、创建配置文件
vi /etc/rsyncd.conf
创建文件,然后将下面脚本添加:
log file = /var/log/rsyncd.log
pidfile = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
secrets file = /etc/rsync.pass
motd file = /etc/rsyncd.Motd
#创建一个模块名称,后面需要一致
[www.laobuluo.com] #备份服务器目录地址
path = /home/wwwroot/www.laobuluo.com
#对应上面模块名称
comment = www.laobuluo.com
uid = root
gid = root
port = 873
use chroot = no
read only = no
list = no
max connections = 200
timeout = 600
#创建一个同步用户名,随便取,反正后面出现的时候要一致
auth users = www.laobuluo.com_user
#主服务器IP地址
hosts allow = xxx.xxx.xxx.xxx
根据我们网站项目以及服务器实际信息创建文件贴到配置文件中保存退出。
4、创建密码配对文件
vi /etc/rsync.pass
创建密码配对文件:
www.laobuluo.com_user:1234567890passwd
红色字段需要对应上面的auth users,蓝色部分是我们创建配对的密码。后面主服务器配置的时候也需要用到密码,所以必须一致。
5、开放权限和启动
chmod 600 /etc/rsyncd.conf
chmod 600 /etc/rsync.pass
service xinetd restart
第三、配置主服务器
1、安装rsync
yum install rsync xinetd -y
2、配置文件
vi /etc/xinetd.d/rsync
将配置文件disable参数从"yes"换成"no"。
3、创建密码配对文件
将我们上面在备份服务器中蓝色的密码丢进来,必须一致。
4、授权和启动
第四、配置主服务器
这一步我们继续配置主服务器,需要安装和配置inotify-tools来实现同步增量备份。
1、安装环境包
yum install make gcc gcc-c++ -y
2、下载和安装inotify-tools
cd /usr/local/src
wget https://download.laobuluo.com/tools/inotify-tools-3.14.tar.gz
tar -zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr/local/inotify
make
make install
3、配置环境变量
echo "PATH=/usr/local/inotify/bin:$PATH" >>/etc/profile.d/inotify.sh
source /etc/profile.d/inotify.sh
echo "/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.conf
ln -s /usr/local/inotify/include /usr/include/inotify
4、配置参数
参考就脚本 - https://soft.laozuo.org/scripts/rsync.sh
修改自行的文件和目录,然后保存退出。
6、创建排除目录列表
vi /usr/local/inotify/exclude.list
创建一个排除目录,这里可以添加不同步的目录,一行一个目录。如果暂时没有可以留空,以后需要用到在添加。
7、授权和设置开机启动
chmod +x /usr/local/inotify/rsync.sh
这里我们授权。
vi /etc/rc.d/rc.local
最后一行添加:
sh /usr/local/inotify/rsync.sh &
第五、检测以及生效小结
1、检查生效
设置完毕之后,我们可以通过手工检查
sh /usr/local/inotify/rsync.sh &
在主服务器执行脚本,如果看到有目录在进度,说明完美,然后去备份服务器中可以看到已经备份到的文件目录。
2、自动生效
重启主服务器,然后就会自动生效。如果不放心我们可以在主服务器对应目录丢一个文件看看备份服务器是否有增加。
总结,这篇文章较为详细的将Linux VPS、服务器使用Rsync进行同步增量备份文件。