CentOS 6.5 rsync服务的安装与配置
时间:2019-09-29
本文章向大家介绍CentOS 6.5 rsync服务的安装与配置,主要包括CentOS 6.5 rsync服务的安装与配置使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、rsync 简介
Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录。
Rsync 是用于取代rcp的一个工具,Rsync使用所谓的 “Rsync 算法” 来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。您可以参考 How Rsync Works A Practical Overview 进一步了解 rsync 的运作机制。
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。此外,它在windows平台下也有相应的版本,比较知名的有cwRsync和Sync2NAS。
Rsync 的初始作者是 Andrew Tridgell 和 Paul Mackerras,它当前由 http://rsync.samba.org维护。
Rsync的基本特点如下:
1. 可以镜像保存整个目录树和文件系统;
2. 可以很容易做到保持原来文件的权限、时间、软硬链接等;
3. 无须特殊权限即可安装;
4. 优化的流程,文件传输效率高;
5. 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
6. 支持匿名传输,以方便进行网站镜像。
在使用 rsync 进行远程同步时,可以使用两种方式:远程 Shell 方式(建议使用 ssh,用户验证由 ssh 负责)和 C/S 方式(即客户连接远程 rsync 服务器,用户验证由 rsync 服务器负责)。
无论本地同步目录还是远程同步数据,首次运行时将会把全部文件拷贝一次,以后再运行时将只拷贝有变化的文件(对于新文件)或文件的变化部分(对于原有文件)。
rsync 在首次复制时没有速度优势,速度不如 tar,因此当数据量很大时您可以考虑先使用 tar 进行首次复制,然后再使用 rsync 进行数据同步。
rsync生产常用参数
参数 | 说明 | 默认值 |
exclude | 指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到 exclude 列表中。这等同于在客户端命令中使用 –exclude 来指定模式。 | 空 |
exclude from | 指定一个包含 exclude 规则定义的文件名,服务器从该文件中读取 exclude 列表定义。 | 空 |
include | 指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到 include 列表中。这等同于在客户端命令中使用 –include 来指定模式 。 | 空 |
include from | 指定一个包含 include 规则定义的文件名,服务器从该文件中读取 include 列表定义。 | 空 |
以守护进程(socket)的方式传输数据(这个是rsync自身的重要功能)
防火墙开放873端口(两个节点)
# /sbin/iptables -I INPUT -p tcp --dport 873 -j ACCEPT
# /etc/rc.d/init.d/iptables save
# service iptables restart
关闭selinux(两个节点)
# vi /etc/selinux/config
修改如下内容:
SELINUX=disabled
# setenforce 0
安装相关依赖包(两个节点)
# yum -y install gcc gcc-c++ make perl wget rsync
二、rsync服务器应用案例
A、rsync服务器部署
1.安装两种方式
(1)、yum install -y rsync ###在线安装rsync
(2)、wget http://pkgs.repoforge.org/rsync/rsync-3.0.9-2.el6.rfx.x86_64.rpm
rpm -ivh rsync-3.0.9-2.el6.rfx.x86_64.rpm ###下载rsync软件包之后rpm安装
2.查看是否安装成功
[root@A data]# rpm -qa rsync ###查看是否安装成功
rsync-3.0.6-12.el6.x86_64
3.创建rsync主配置rsyncd.conf文件
[root@A data]# vi /etc/rsyncd.conf uid = nobody gid = nobody use chroot = no max connections = 200 timeout = 300 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log [donglq] path = /donglq/ ignore errors read only = false list = false hosts allow = 192.168.0.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file = /etc/rsync.password [data] path = /data/ gnore errors read only = false list = false hosts allow = 192.168.0.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file = /etc/rsync_data.password
pid file = /var/run/rsyncd.pid log file = /var/log/rsyncd.log lock file=/var/run/rsyncd.lock secrets file = /etc/rsyncd.pw [channel] path = /home/b2b/tomcat-9400-channel/webapps/ROOT comment = channel port = 873 uid = b2b gid = b2b timeout = 600 max connections = 200 use chroot = no read only = yes list = no hosts allow = 10.34.200.195 hosts deny = *
添加如下内容: #/etc/rsyncd.conf #pid文件的存放位置 pid file = /var/run/rsyncd.pid #日志文件位置,启动rsync后自动产生这个文件,无需提前创建 log file = /var/log/rsyncd.log #支持max connections参数的锁文件 lock file=/var/run/rsyncd.lock #用户认证配置文件,里面保存用户名称和密码 secrets file = /etc/rsyncd.pw #rsync启动时欢迎信息页面文件位置 motd file = /etc/rsyncd.motd transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 #自定义名称 [data] #设置需要同步的目录 path = /data/ #模块名称与[data]自定义名称相同 comment = data 指定/data目录下不需要同步的目录:exclude = dd,aa #默认端口 port = 873 #设置rsync运行ID号或账户名称,默认为nobody uid = nobody #设置rsync运行GID号或账户名称,默认为nobody gid = nobody #设置超时时间 timeout = 600 #最大连接数 max connections = 200 #默认为true,修改为no,增加对目录文件软连接的备份 use chroot = no #设置rsync服务端文件为只读 read only = yes #不显示rsync服务端资源列表 list = no #允许进行数据同步的备份节点IP地址 hosts allow = 192.168.0.112 #设置拒绝所有(除hosts allow定义的主机外) hosts deny = *
如果你的 rsync.conf是默认位置即:/etc/rsync.conf 那么你直接执行
/usr/bin/rsync --daemon
即可
如果你的配置文件是自己定的位置,那么在后面跟上conf文件的参数就可以了
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
4.创建rsync虚拟用户密码文件
echo "rsync_backup:123456" >/etc/rsync.password chmod 600 /etc/rsync.password echo "rsync_backup:123456" >/etc/rsync_data.password chmod 600 /etc/rsync_data.password
5.创建共享文件夹并将其用户属组修改为nobody
[root@A data]mkdir /donglq [root@A data]mkdir /data [root@A data]chmod 600 /donglq /data [root@A data]chown nobody.nobody /data /donglq
6.rsync --daemon ###daemon模式启动rsync
[root@A data]# netstat -lntup | grep 873 ###查看rsync是否启动
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1380/rsync
tcp 0 0 :::873 :::* LISTEN 1380/rsync
设置开机启动(源节点) # echo "/usr/bin/rsync --daemon">>/etc/rc.d/rc.local
B、rsync客户端部署
1. 安装
yum install -y rsync ###在线安装rsync
2. 查看是否安装成功
netstat -lntup|grep 873
3. 创建密码文件
echo "123456" >/etc/rsync.password
chmod 600 /etc/rsync.password
echo "123456" >/etc/rsync_data.password
chmod 600 /etc/rsync_data.password
C、rsync调试
[root@B ~]# rsync -avz rsync_backup@192.168.129.128::donglq /data/ --password-file=/etc/rsync.password
[root@C data]# rsync -avz rsync_backup@192.168.129.128::data /data/ --password-file=/etc/rsync_data.password
rsync -avH tom@10.34.200.215::data /home/b2b/data/ rsync -avH --delete --exclude=/home/b2b/data/ROOT/WEB-INF/classes/aggregation.properties tom@10.34.200.215::channel /home/b2b/data rsync -avH --delete --exclude=aggregation.properties tom@10.34.200.215::channel /home/b2b/data 0 * * * * rsync -avH tom@10.34.200.75::data /opt/data75/ > /dev/null 2>&1 0 * * * * rsync -avH tom@10.34.200.11::data /opt/zicai_phone/huichuan/ > /dev/null 2>&1
原文地址:https://www.cnblogs.com/opma/p/11607541.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter基础widgets教程-SizedOverflowBox篇
- 大量类加载器创建导致诡异FullGC
- 下载并安装Git
- 线程的六种状态转换
- 线程池的基本使用
- JavaScript闭包
- Js中Currying的应用
- Qt音视频开发37-USB摄像头解码ffmpeg方案
- Navicat 环境测试 innodb 的事务隔离级别 产生的幻读 和 不可重复读
- leetcode之最长回文串
- Discourse CentOS 8 全新安装手册
- 3分钟短文:Laravel路子真野啊!路由昵称前缀中间件
- CSS中重要的BFC概念
- Redis哨兵集群中哨兵挂了,主从库还能切换吗?
- 你的 Redis 为什么变慢了?