-
1 rsync简述
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了--remote sync。它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
优化的流程,文件传输效率高。
可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
-
2 rsync安装
1.从原始网站下载:[url]http://rsync.samba.org/ftp/rsync/[/url]
2.[jack@localhost bin]#sudo ./configure
[jack@localhost bin]#sudo make
[jack@localhost bin]#sudo make install
说明一点,客户机和服务器都要安装rsync。客户机以客户端方式运行rsync,服务器端以服务器方式运行rsync,它监听873端口。
3.运行rsync
/usr/local/bin/rsync --daemon
验证启动是否成功:
netstat -na|grep 873
3 rsync应用案例
-
3.1 案例说明
需把服务器A的/home/jack/data目录下的所有内容,备份到服务器B上去 .
-
3.2 rsync配置
-
3.2.1 主服务器A
修改默认配置文件(/etc/rsyncd.conf,若初次安装 rsync ,可能不存在文件,需手工创建),在服务A#sudo vi /etc/rsyncd.conf 添加如下内容 :
port = 873 //rsync的端口 use chroot = no max connections = 3 //允许客户端的最大连接数 strict modes = yes //是否需要密码验证文件 注:这里为yes时,密码文件权限要改为600 pid file = /var/run/rsync.pid lock file = /var/run/rsync.lock log file = /var/log/rsync.log // 日志文件 [upload] //模块一. 自定义的模块,不需密码 path = /home/looming/rsync-databack/upload/ comment = used for user upload data read only = no list = no uid = root //用于同步的属主和属组(必须的,且有时候会涉及到权限问题) gid = root //用于同步的属主和属组 [upload2] //模块二 自定义的模块,需密码 path = /home/looming/rsync-databack/upload2/ comment = used for user upload2 data read only = no //允许客户端上传文件 list = no uid = root gid = root ignore = errors auth users=looming //客户端用来验证的用户名 secrets file = /etc/rsync.pas //密码文件,明文保存密码,如 ming
建立密码文件
#vim /etc/rsync.pas //这个密码文件是要和配置文件中的一致的。 ming #chmod 600 /etc/rsync.pas //修改权限为600
-
3.2.2 从服务器 B
默认配置文件
(作为客户端,不需要修改配置,且也没用上)
建立密码文件
#vim /etc/rsync.pas //这个密码文件是要和配置文件中的一致的。 ming #chmod 600 /etc/rsync.pas //修改权限为600
-
3.3 rsync服务启动
进入主服务器A
#/usr/local/rsync/bin/rsync --daemon //启动守护进程 #ps -ef | grep rsync //查看进程是否启动
-
3.4 rsync测试
在客户端(即服务器B上) $sudo rsync -vzrtopg –progress /home/looming/data looming@master::upload 输出: $sudo rsync -vzrtopg –progress –password-file=/etc/rsyncd.pas /home/looming/data2 looming@master::upload2 输出:
-v, --verbose 详细模式输出 -q, --quiet 精简输出模式 -r, --recursive 对子目录以递归模式处理 -p, --perms 保持文件权限 -o, --owner 保持文件属主信息 -g, --group 保持文件属组信息 --delete 删除那些DST中SRC没有的文件 --progress 显示备份过程 -t, --times 保持文件时间信息 编写脚本并建立定时任务让定时执行备份 #vim /home/bakrsync.sh #!/bin/bash sudo rsync -vzrtopg –progress –password-file=/etc/rsyncd.pas /home/luming/data2 luming@master::upload2 #chmod +x /home/bakrsync.sh #contab -e 01 01 * * * /home/basrsync.sh & //每天凌晨放在后台自动执行
-
4 Rsync常见问题
rsync中常见错误如下(转自http://blog.chinaunix.net/uid-13954085-id-158637.html)
配置一:
ignore errors
说明:这个选项最好加上,否则再很多crontab的时候往往发生错误你也未可知,因为你不可能天天去看每时每刻去看log,不加上这个出现错误的几率相对会很高,因为任何大点的项目和系统,磁盘IO都是一个瓶颈
Rsync error:
错误一:
@ERROR: auth failed on module xxxxx
rsync: connection unexpectedly closed (90 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150)
说明:这是因为密码设置错了,无法登入成功,检查一下rsync.pwd,看客服是否匹配。还有服务器端没启动rsync 服务也会出现这种情况。
错误二:
password file must not be other-accessible
continuing without password file
Password:
说明:这是因为rsyncd.pwd rsyncd.sec的权限不对,应该设置为600。如:chmod 600 rsyncd.pwd
错误三:
@ERROR: chroot failed
rsync: connection unexpectedly closed (75 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150)
说明:这是因为你在 rsync.conf 中设置的 path 路径不存在,要新建目录才能开启同步
错误四:
rsync: failed to connect to 218.107.243.2: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
说明:防火墙问题导致,这个最好先彻底关闭防火墙,排错的基本法就是这样,无论是S还是C,还有ignore errors选项问题也会导致
错误五:
@ERROR: access denied to www from unknown (192.168.1.123)
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(359)
说明:此问题很明显,是配置选项host allow的问题,初学者喜欢一个允许段做成一个配置,然后模块又是同一个,致使导致
错误六:
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(244) [generator=2.6.9]
rsync error: received SIGUSR1 (code 19) at main.c(1182) [receiver=2.6.9]
说明:导致此问题多半是服务端服务没有被正常启动,到服务器上去查查服务是否有启动,然后查看下 /var/run/rsync.pid 文件是否存在,最干脆的方法是杀死已经启动了服务,然后再次启动服务或者让脚本加入系统启动服务级别然后shutdown -r now服务器
错误七:
rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(604) [sender=2.6.9]
说明:原数据目录里没有数据存在
错误八:
rsync: recv_generator: mkdir "test" (in dest) failed: Permission denied (13)
*** Skipping everything below this failed directory ***
说明:找了些资料,发现引起这个问题的原因是因为远程rsync的权限不够,不足以在目标目录下创建文件。
目前知道两个解决办法:
1.将目标目录dest的权限修改:chmod 777 dest;
2.在rsyncd.conf文件中加入uid = root和gid = root。
相关推荐
然而,随着企业业务的扩大和数据量的激增,`rsync`在大规模数据同步场景下的性能瓶颈也日益凸显,尤其是在处理海量文件时的扫描时间过长和无法实时监测同步数据的问题。为了解决这些痛点,`rsync+inotify`的组合方案...
3. **错误处理与日志记录**:在rsync配置文件中指定日志文件路径,以便于后期追踪同步过程中的任何异常情况。 #### 六、注意事项 - 在实际部署中,请根据具体需求调整`rsync`的配置选项,例如`hostsallow`和`...
rsync是一款功能强大的、开源的文件同步工具,广泛应用于Linux和Unix系统中,能够高效地实现本地或远程文件及目录的备份和迁移。它支持增量传输,仅同步源文件与目标文件之间的差异部分,大大节省了网络带宽。 ...
在服务器上安装Rsync是配置的第一步。通常,Rsync作为守护进程运行,可以通过SSH或rsync自身的守护进程模式进行通信。以下是配置步骤: 1. **安装Rsync**:在大多数Linux发行版中,可以使用包管理器(如`apt-get`、...
1. 找到Rsync服务的.pid文件所在目录,通常位于Rsync服务的安装目录下。 2. 执行删除或重命名的操作。可以通过命令行进行,如果使用批处理文件,则可以写入如下代码: ``` @echo off echo y|del D:\program\...
这个名为"shell脚本可配置备份文件夹及子文件异常通过sendEmail25端口发送邮件"的压缩包内容涉及到两个主要技术:Shell脚本和电子邮件通知系统。下面将详细介绍这两个知识点。 **Shell脚本**: Shell脚本是Linux或...
此外,设置日志监控,如使用`syslog-ng`或`rsyslog`,可以及时发现并处理异常行为。 在服务管理方面,理解如何启动、停止和重启服务至关重要。在Linux中,这通常通过`systemctl`、`service`或`init`命令实现。例如...
2. **配置与编译Snort**:使用`./configure`命令进行配置,然后执行`make`和`make install`进行编译安装。 3. **加载规则集**:将下载好的规则集解压并放置到适当的位置。 4. **配置Snort**:编辑Snort的配置文件,...
3. **错误处理**:lsyncd可以设置重试策略和错误日志记录,对同步过程中的异常进行处理,提高了系统的稳定性。 4. **性能优化**:通过限制同步速率、并发连接数等方式,lsyncd可以适应不同的网络环境,避免对系统...
2. **修改rsync配置文件**:编辑`/etc/rsyncd.conf`文件,配置服务端的相关参数,例如禁用chroot、允许的最大连接数、日志文件位置等。 3. **指定同步目录**:例如设置同步目标路径为`/usr/local/tomcat/webapps`。 ...
3. 执行逻辑:核心的同步逻辑,由Swift代码实现,负责解析用户设置,构建并执行rsync命令,处理同步过程中的错误和异常。 4. 日志记录:为了便于问题排查和审计,工具可能会记录每次同步操作的详细日志,包括开始...
- **错误处理**:设计脚本时应考虑异常处理逻辑,确保系统稳定性。 - **文档记录**:详细记录自动化过程中的步骤和注意事项,方便后期维护和扩展。 通过上述知识点和技术要点的学习,可以更好地理解和掌握Linux和...
通过对同步速度、异常处理等方面的性能测试,文章验证了该架构能够有效提高异常处理的自动化程度,并获得较高的数据同步性能。这种性能分析涉及到分布式系统设计的多个方面,包括分布式锁的竞争、网络延迟、以及数据...
- 安装SELinux:确保其配置为“Permissive”模式,避免权限问题。 - 创建用户和限制root权限:创建一个普通用户,用`su`或`sudo`命令进行权限提升。 4. **安装必备软件**: - 安装开发工具:`sudo yum ...
- 配置Rsync和Sersync服务,实现数据备份和实时同步。 - **5.8 Nginx反向代理 + Keepalived** - 设置Nginx作为反向代理,并配置Keepalived实现高可用性。 - **5.9 自启动服务配置** - 确保关键服务能够在系统启动...
在实际操作中,可以使用如`rsync`或`scp`等工具将jar包复制到集群中的每一台服务器,并且更新Hive的相关配置,指向新版本的jar路径。 此外,为了预防类似问题,建议定期检查Hive和其依赖的组件是否有新的版本或补丁...
免密码SSH连接的实现,使得rsync能够无缝执行跨服务器的数据同步任务,大大提高了数据处理的效率和安全性。 总之,SSH远程多机免密码的方法是IT领域中一项非常实用的技能,尤其在高负载的计算环境和自动化运维中...
- **监控与管理进程**:了解如何监控系统运行状态,识别并处理异常进程。 - **服务管理**:掌握服务的启动、停止、重启方法,以及如何配置服务随系统启动自动运行。 ##### 5. 软件包管理 - **软件安装与更新**:...
Cacti安装涉及安装依赖、配置数据库、安装Web界面和配置模板等步骤。 【Cacti与Nagios区别】 Cacti侧重网络监控和绘图,Nagios侧重服务状态监控和警报。 【MySQL主从复制】 MySQL主从复制通过binlog实现,配置...