rsync远程同步

简介: rsync远程同步

服务器1:
一:配置rsync源服务器

[root@localhost ~]# systemctl stop firewalld #关闭防火墙
[root@localhost ~]# setenforce 0 #关闭selinux

[root@localhost ~]# rpm -q rsync #查看rsync软件是否安装
rsync-3.0.6-9.el6_4.1.x86_64
[root@localhost ~]# vim /etc/rsyncd.conf #修改配置文件(添加时不能把注释也加上,否则会报错)
添加
uid = nobody
gid = nobody
use chroot = yes
address = 192.168.1.10
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.1.0/24
[wwwroot]
path = /var/www/html
comment = Document Root of 娄艺龙
read only = yes
dont compress = .gz .bz2 .tgz .zip .rar .z
auth users = lyl
secrets file = /etc/lyl_rsyncd_users.db

注释:
uid = nobody #指定运行rsync软件的用户
gid = nobody #指定运行rsync软件的组
use chroot = yes #固定到共享的目录
address = 192.168.1.10 #监听本地的哪个ip地址
port 873 #监听的端口号
log file = /var/log/rsyncd.log #日志文件路径
pid file = /var/run/rsyncd.pid #进程文件路径
hosts allow = 192.168.1.0/24 #允许谁访问
[wwwroot] #共享出去的名字
path = /var/www/html #共享的本地目录
comment = Document Root of 娄艺龙 #描述信息
read only = yes #是否只读
dont compress = .gz .bz2 .tgz .zip .rar .z #哪些文件不做压缩
auth users = lyl #指定访问的用户
secrets file = /etc/lyl_rsyncd_users.db #用户的密码数据库

[root@localhost ~]# vi /etc/lyl_rsyncd_users.db #编辑用户密码数据库
添加
lyl:123 #账号:密码
[root@localhost ~]# chmod 600 /etc/lyl_rsyncd_users.db #修改密码数据库的权限
[root@localhost ~]# ls -ld /var/www/html/
drwxr-xr-x. 2 root root 4096 8月 2 2013 /var/www/html/
[root@localhost ~]# rsync --daemon #启动rsync
[root@localhost ~]# netstat -anpt | grep rsync #查看端口号和进程号
tcp 0 0 192.168.1.10:873 0.0.0.0:* LISTEN 13663/rsync
[root@localhost ~]# cd /var/www/html #进入目录,没有自己手动创建一个
[root@localhost html]# ls
[root@localhost html]# touch aaa #创建一个文件

服务器2:
二:使用rsync备份工具
1:命令的基本使用方法
[root@localhost ~]# systemctl stop firewalld #关闭防火墙
[root@localhost ~]# setenforce 0 #关闭selinux

[root@localhost ~]# rsync /etc/fstab /opt #本地同步测试
[root@localhost ~]# rsync -rl /etc/fstab /boot/grub /opt #本地同步目录测试
2:配置源的表示方法(从源下载数据)
[root@localhost ~]# rsync -avz lyl@192.168.1.10::wwwroot /root #远程同步


[root@localhost ~]# rsync -avz rsync:#lyl@192.168.1.10/wwwroot /root #远程同步

3:rsync备份操作实例(下载)
[root@localhost ~]# mkdir /aaa #创建目录
[root@localhost ~]# rsync -avzH --delete lyl@192.168.1.10::wwwroot /aaa

远程同步,保持一致

[root@localhost ~]# ls /aaa #查看是否同步

4:实现自动按计划复制
[root@localhost ~]# vi /etc/server.pass #创建密码文件
添加
123 #密码
[root@localhost ~]# chmod 600 /etc/server.pass #设置权限
[root@localhost ~]# crontab -e #创建计划任务
添加(在同一行,空格隔开)
30 22 * /usr/bin/rsync -az --delete --password-file=/etc/server.pass
lyl@192.168.1.10::wwwroot /aaa/

[root@localhost ~]# systemctl restart crond #重启计划任务
[root@localhost ~]# systemctl enable crond #开机自启动计划任务

三:配置rsync+inotify实时同步

服务器1:
1:在源服务器上修改参数并重启rsync服务
[root@localhost ~]# vi /etc/rsyncd.conf
修改
read only = no
[root@localhost ~]# netstat -anpt | grep rsync
tcp 0 0 192.168.1.10:873 0.0.0.0:* LISTEN 13663/rsync
[root@localhost ~]# pkill rsync
[root@localhost ~]# rsync --daemon

服务器2:
1:调整内核参数)(默认的参数,不用改)
[root@localhost ~]# cat /proc/sys/fs/inotify/max_queued_events
16384 \监控时间队列
[root@localhost ~]# cat /proc/sys/fs/inotify/max_user_instances
128 \最多监控实例数
[root@localhost ~]# cat /proc/sys/fs/inotify/max_user_watches
8192 \每个实例最多监控文件数
2:安装inotify
[root@localhost ~]# cd /usr/src
[root@localhost src]# tar zxvf inotify-tools-3.14.tar.gz -C /usr/src/
[root@localhost src]# cd /usr/src/inotify-tools-3.14/
[root@localhost inotify-tools-3.14]# ./configure
[root@localhost inotify-tools-3.14]# make
[root@localhost inotify-tools-3.14]# make install
[root@localhost inotify-tools-3.14]# inotifywait -mrq -e modify,create,move,delete /var/www/html/
-m:持续监控
-r:递归整个目录
-q:简化输出信息
打开另一个终端(输入以下命令,观察上个终端的变化)
[root@localhost ~]# cd /var/www/html
[root@localhost html]# touch index.php
[root@localhost html]# vi index.php
3:编写同步脚本
[root@localhost html]# vi /opt/inotify_rsync.sh
添加

!/bin/bash

INOTIFY_CMD="inotifywait -mrq -e modify,create,move,delete /var/www/html"
RSYNC_CMD="rsync -avzH --delete --password-file=/etc/server.pass /var/www/html/ lyl@192.168.1.10::wwwroot"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
$RSYNC_CMD
done

[root@localhost html]# chmod +x /opt/inotify_rsync.sh
[root@localhost html]# echo '/opt/inotify_rsync.sh' >> /etc/rc.local
[root@localhost html]# cd /opt
[root@localhost opt]# ./inotify_rsync.sh

打开另一个终端在var/www/html中创建文件
[root@localhost html]# touch 1
[root@localhost html]# touch 2
观察上个终端的变化
在到服务器1上看看var/www/html中的变化

若果遇到下面错误:
rsync: failed to set times on "/." (in wwwroot): Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]
解决方法:
修改rsync的配置文件,修改uid和gid为root
vim /etc/rsyncd.conf
uid = root
gid = root

相关文章
|
UED 开发者
通义千问新增文档解析功能,可处理超万页文档
【2月更文挑战第25天】通义千问新增文档解析功能,可处理超万页文档
1164 6
通义千问新增文档解析功能,可处理超万页文档
|
监控 算法 Linux
使用 Rsync 实现远程同步,以及实时同步
Rsync 全称为:Remote Sync(远程同步),是一款开源的快速备份工具,可以在不同主机间镜像同步整个目录树,支持增量备份,保持链接和权限,采用优化的同步算法,传输前执行压缩,适用于异地备份,镜像服务器等应用(Linux 系统默认安装)
2066 0
使用 Rsync 实现远程同步,以及实时同步
|
5月前
|
弹性计算 安全 Linux
阿里云服务器镜像解析:公共、自定义、共享、云市场及社区镜像对比与选择参考
阿里云服务器ESC镜像包括公共、自定义、共享、云市场及社区五大类型,每种镜像具有不同的特性和适用场景。公共镜像安全稳定;自定义镜像量身定制,可快速部署;共享镜像可跨账号协作;云市场镜像一键部署,省时省心;社区镜像开放共享,满足个性化需求。选择镜像时,用户需考虑操作系统、初始配置、安全性、稳定性及成本。
|
4月前
|
人工智能 弹性计算 自然语言处理
手把手教你部署OpenClaw!阿里云官方提供五种快速部署方案
OpenClaw(原Clawdbot/Moltbot)是开源AI代理平台,支持自然语言控制设备、自动化任务,兼容Qwen/Claude/GPT等大模型。阿里云提供5种可视化部署方案(轻量云、无影云电脑/AgentBay/ECS等),零命令行,新手也能快速搭建专属AI助手,提升办公效率。
1796 2
|
4月前
|
弹性计算 人工智能 运维
2026年阿里云秒级部署OpenClaw(Clawdbot)并接入skills保姆级教程
2026年,OpenClaw(原Clawdbot,曾用名Moltbot)凭借轻量化架构、高适配性及强大的自动化能力,成为阿里云生态下最热门的AI自动化代理工具,其秒级部署方案彻底打破开源工具的技术门槛,无需复杂环境配置,零基础新手也能轻松上手。OpenClaw本身仅提供核心编排框架,而Skills作为其“能力扩展插件”,能赋予它网页浏览、邮件管理、数据统计、多平台联动等实操能力,二者结合可快速搭建专属智能助手,适配个人办公、企业运维、AI创意生产等多场景。
955 6
|
10月前
|
消息中间件 Java 测试技术
RocketMQ-5.3.1异常、原因汇总表
本简介汇总了常见的RocketMQ异常信息及其解决方案,涵盖主题配置、网络通信、SSL设置、权限控制、消息发送与消费等多个方面,帮助开发者快速定位和理解异常原因。
892 72
|
监控 Linux KVM
10 个最佳的 Linux 虚拟化软件,你用过哪些?
10 个最佳的 Linux 虚拟化软件,你用过哪些?
2819 0
10 个最佳的 Linux 虚拟化软件,你用过哪些?
|
网络协议 数据安全/隐私保护
Rsync 服务端配置
Rsync 服务端配置
495 14
|
存储 安全 搜索推荐
这些年在阿里学到的方法论
本文从做事方法、思维方式、目标管理、数据分析、用户增长几方面介绍了相关的方法论,希望能给读者带来一些帮助!
18834 15