rsync是统信uos系统中实现文件可靠同步与远程备份的首选工具,支持守护进程、ssh推送、ssh拉取三种核心模式,并可通过定时脚本实现增量备份与完整性校验。

如果您在统信UOS系统中需要实现文件的可靠、高效同步与远程备份,rsync是首选工具。它支持本地复制、SSH隧道推送/拉取、以及独立守护进程(daemon)模式三种核心同步机制,每种方式适用不同安全策略与网络环境。以下是具体实施步骤:
一、安装rsync并配置守护进程模式
该方式启用独立的rsync服务(监听873端口),使用虚拟用户认证,不依赖SSH,适合内网固定服务器场景,具备更高可控性与权限隔离能力。
1、执行安装命令:sudo apt update && sudo apt install rsync
2、启用守护进程服务:编辑/etc/default/rsync,将RSYNC_ENABLE=false修改为RSYNC_ENABLE=true
3、初始化配置文件:执行sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc/rsyncd.conf
4、配置模块参数:使用vim编辑/etc/rsyncd.conf,添加或修改如下内容:
[backup]
comment = UOS user data backup module
path = /home/uosuser/backup
read only = no
list = yes
auth users = uosbackup
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.1.0/24
5、创建认证密码文件:执行sudo vim /etc/rsyncd.secrets,写入一行格式为uosbackup:your_secure_password,保存后运行sudo chmod 600 /etc/rsyncd.secrets
6、启动服务并验证:sudo systemctl start rsync.service,再执行sudo ss -tuln | grep :873确认端口已监听
二、基于SSH密钥的免密推送式同步
利用系统已有的SSH基础设施进行加密传输,无需额外开放端口或维护独立服务,适用于已有密钥体系的运维环境,部署轻量且兼容性广。
1、生成专用密钥对:运行ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_rsync -N ""
2、部署公钥至目标主机:执行ssh-copy-id -i ~/.ssh/id_rsa_rsync.pub user@192.168.1.100
3、执行增量同步命令:rsync -av --delete --rsh="ssh -i ~/.ssh/id_rsa_rsync -o StrictHostKeyChecking=no" /home/uosuser/docs/ user@192.168.1.100:/backup/uos_docs/
4、校验同步结果:在目标主机上运行ls -l /backup/uos_docs/,比对文件数量、大小及修改时间戳是否一致
三、基于SSH的拉取式远程同步
由UOS本机主动从远程服务器拉取数据,适用于中心化备份管理架构,可集中控制源端权限,避免在备份目标主机上开放写入权限。
1、确保远程服务器已启用SSH服务并允许密码或密钥登录
2、在UOS终端执行拉取命令:rsync -av --progress user@192.168.1.100:/var/log/nginx/ /home/uosuser/logs_backup/
3、如需排除临时文件,追加--exclude='*.tmp' --exclude='.cache'参数
4、添加--delete-after选项可在传输完成后清理本地多余文件,保持目录结构严格一致
四、配置定时增量备份脚本
通过crond实现无人值守周期性执行,结合--link-dest硬链接机制,仅存储变更内容,显著节省磁盘空间与网络带宽。
1、创建备份脚本:sudo vim /usr/local/bin/daily_rsync_backup.sh
2、脚本内容包含以下逻辑:
#!/bin/bash
SOURCE="/home/uosuser/data"
BACKUP_ROOT="/backup/daily"
LATEST=$(ls -d $BACKUP_ROOT/*/ | tail -1)
DATE=$(date +%Y%m%d_%H%M)
rsync -a --delete --link-dest="$LATEST" "$SOURCE/" "$BACKUP_ROOT/$DATE/"
3、赋予执行权限:sudo chmod +x /usr/local/bin/daily_rsync_backup.sh
4、添加定时任务:运行sudo crontab -e,插入行0 3 * * * /usr/local/bin/daily_rsync_backup.sh(每日凌晨3点执行)
五、验证同步完整性与权限一致性
同步操作完成后必须校验数据真实性与元数据准确性,防止因权限误设、符号链接断裂或SELinux上下文丢失导致后续使用异常。
1、比对文件数量与总大小:分别在源与目标执行find /path -type f | wc -l 和 du -sh /path
2、检查关键文件属性:在两端运行ls -l /path/file.txt,确认所有者、组、权限位、时间戳完全一致
3、验证符号链接有效性:对含软链接的目录,执行find /path -type l -exec ls -l {} \; 并人工核对指向路径
4、测试可读性:随机选取若干文件,在目标端用cat或file命令打开,确认无损坏或截断










