数据同步
为了保证主备服务器数据一致,可使用 rsync 工具进行数据同步。在主服务器上设置定时任务,定期将数据同步到备服务器。
1. 安装 rsync
在主服务器和备服务器上都安装 rsync:
sudo apt install rsync
2. 设置 SSH 免密登录
在主服务器上生成 SSH 密钥,并将公钥复制到备服务器:
ssh-keygen -t rsa
ssh-copy-id 192.168.10.23 #192.168.10.23为目标服务器地址
执行ssh-keygen -t rsa 直接默认地址,无需设置秘钥短语,容易踩坑
此处注意,将公钥文件拷贝到目标主机后,用ssh登录一下试试
ssh user@192.168.10.23 #user为用户名,192.168.10.23为目标主机地址
直接可登录说明配置成功。 如果不能直接登录,可以到目标主机更改一下配置文件
sudo vim /etc/ssh/sshd_config
将公钥认证打开
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启ssh服务
sudo systemctl restart sshd
3. 创建同步脚本****
在主服务器上创建一个同步脚本,例如 /root/sync_nfs.sh:
#!/bin/bash
LOG_FILE="/var/log/sync_nfs.log"
echo "$(date): Starting rsync operation" >> $LOG_FILE
rsync -avz -e "ssh -i /home/user/.ssh/id_rsa" /data/files/ user@192.168.10.23:/data/files/ >> $LOG_FILE 2>&1
echo "$(date): Rsync operation completed" >> $LOG_FILE
此处注意,user为将要登录的用户,如果不写默认会以root访问(坑点)
给脚本添加执行权限:
chmod +x /root/sync_nfs.sh
4. 设置定时任务
编辑 /etc/crontab 文件,添加以下内容,每 5 分钟同步一次数据:
*/5 * * * * root /root/sync_nfs.sh