双机热备是应用于服务器的一种解决方案,其构造思想是主机和从机通过TCP/IP网络连接,正常情况下主机处于工作状态,从机处于监视状态,一旦从机发现主机异常,从机将会在很短的时间之内代替主机,完全实现主机的功能。
今天我边介绍一个我一直在现网使用的小工具rsync,rsync就是远程同步的意思remote sync,可以实现在同一台机器的不同文件直接备份,也可以跨服务器备份。推荐的理由是rsync速度快、安全,占用带宽小,最重要的是安装rsync不需要特殊权限。(现网申请权限很麻烦 )
废话不多讲,直接上正题。
部署环境:kali 2023.01
初始化配置
关闭防火墙 systemctl stop firewalld systemctl disable firewalld
关闭Selinux setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
Server 端
安装rsync rpm -qa | grep rsync #检查是否安装 apt-get -y install rsync
编辑rsyncd.conf 配置文件 uid = root #定义以哪个用户的身份启动进程 gid = root #定义以哪个组的身份启动进程 port = 873 #此服务默认端口873 max connections = 0 #最大连接数(正整数),0代表不限制 pid file = /var/run/rsyncd.pid #定义pid文件位置 log file = /var/log/rsyncd.log #定义日志文件位置 lock file = /var/run/rsyncd.lock #定义锁定文件位置,避免多开 motd file = /etc/rsyncd/rsyncd.motd #第一欢迎信息 read only = yes #权限为只读 hosts allow = 172.16.108.0/24 #允许的网段 hosts deny=* #拒绝所有,允许个别 dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 #指定传输时不压缩 [www] #定义共享名称为www path = /data #路径 list = yes #允许别人看到 ignore errors #忽略错误 auth users= tu #授权的账号 secrets file = /etc/rsyncd/rsyncd.secrets #密码文件
建立密码文件 vim /etc/rsyncd/rsyncd.secrets test:123456 chmod 777 /etc/rsyncd/rsyncd.secrets
创建同步文件目录和文件 mkdir /data touch /data/text{1..20}
创建用户 useradd test;echo '123456' | passwd --stdin test
启动服务 rsync --daemon --config=/etc/rsyncd.conf
Client 端
设置密码文件 vim /etc/rsync.pd 123456
同步测试 mkdir /data #创建同步目录
添加计划任务 [root @kali data]# cat /etc/crontab */1 * * * * /usr/bin/rsync -avzP --delete --password-file=/etc/rsync.pw test@172.16.108.254::www /data |