rsync 服务器配置过程
rsync的原理和相关算法不赘述,资料很多
1、准备两台机器并确保都已经安装rsync
a机器:192.168.1.150 ,用作客户端测试 b机器:192.168.1.151用作server端
先介绍个命令,lsof -i :873 检查rsyn服务是否启动,rsync作为守护进程运行时会默认监听873端口
为了试验顺利关闭iptables 和selinux
2、在b机以守护进程方式启动作为server端
有两种方式启动服务,一个是直接rsync --daemon,一个是通过xinetd 启动,如果要通过xinetd启动的话,需要先修改配置文件/etc/xinetd.d/rsync
如下所示:
service rsync
{
disable = no #这里原来是yes 改为no,只需修改这一行即可
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
2、创建/etc/rsyncd.conf文件,系统默认没有这个文件,此文件是rsync作为服务端使用的主要配置文件
内容如下:
uid = nobody
gid = nobody
use chroot = yes #这里使用yes或者no都能正确运行,具体差别可去官网查阅或者google
max connections = 4
pid file = /var/run/rsyncd.pid #自行指定
lock file = /var/run/rsync.lock #自行指定
log file = /var/log/rsyncd.log # 自行指定,这三个文件路径和名字可以随便定
[backup]
path = /data/backup/ #server端用来接收数据的实际路径,注意连接时使用的是上面中括号中的名字backup
read only = true #这里可以也可以改为false 最好是true,更安全
list = false
hosts allow = 192.168.1.0/24 #允许连接的ip范围
auth users = test #允许连接的用户名
secrets file = /etc/rsyncd.password #验证用的用户名和密码,格式为test:test, 路径和名字可以自定义
然后写入用户名密码 echo "test:test" >/etc/rsyncd.password 并设定权限 chmod 600 /etc/rsyncd.password
修改hosts文件,vi /etc/hosts,增加一条192.168.1.150 host01.argb.com,我测试时如果没有这个设置会报一下错误:
name lookup failed for 192.168.1.150: Name or service not known
connect from UNKNOWN (192.168.1.150)
应该是因为内网没有dns服务器的原因。
至此服务器端设置基本完成,启动rsync服务: rsync --daemon
注意:我看有些配置示例上有 ignore errors 这条,但是我实际验证时日志显示这句配置不合法:
params.c:Parameter() - Ignoring badly formed line in configuration file: ignore errors
不知是不是版本问题。
3、进行client端设置
客户端设置很简单,只要配置一个密码文件即可,echo "test">/etc/rsyncd.password
修改文件权限 chmod 600 /etc/rsyncd.password
配置完成
ok,连接测试
rsync -vzrtopg --progress /home/data/test test@192.168.1.151::backup --password-file=/etc/rsyncd.password
done!
rsync可以跟 inotify实现数据的实时备份。
rsync 服务器配置过程的更多相关文章
- Rsync同步过程中遇到的常见问题
一.Rsync服务介绍 Rsync属于一款实现全量及增量同步数据的软件工具,适用于unix/linux/windows等多种操作系统平台. Rsync软件能实现本地复制,远程复制,或者远程守护进程方式 ...
- CentOS6 下rsync服务器配置
一.rsync 简介 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录. Rsy ...
- samba服务器配置过程
SAMBA服务器配置 yum install samba samba-client samba-swat 改变文件权限及用户 vi /etc/samba/smb.conf d+G全删注释 复制下面代码 ...
- (mac)阿里云ECS服务器配置过程
-----首先本人是半只脚入门的iOS开发者,弄这个只是单纯想多学点东西. -----阿里云服务器的配置选择:既然是学习用的,最最基础的配置就行了.1M带宽,1核1G...这就不详述了.没啥可选的,( ...
- Rsync详解
Rsync详解 1.什么是RsyncRsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“Rsync算法”来使本 ...
- rsync unison+inotify双向实时同步
rsync多线程同步 A:文件服务器 ip:10.10.1.10 B:备份服务器 ip:10.10.1.11 1.在B服务器上安装rsync软件 tar xzvf rsync-3.1.0.tar.gz ...
- rsync实现数据同步
希望两台机器指定目录的数据保持一致 192.168.19.252(master) 192.168.19.251(slave) /cache 拉复制 ...
- rsync使用详解
1.什么是Rsync Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“Rsync算法”来使本地和远 程两个 ...
- [Linux]Linux下rsync服务器和客户端配置
一.rsync简介 Rsync(remote sync)是UNIX及类UNIX平台下一款神奇的数据镜像备份软件,它不像FTP或其他文件传输服务那样需要进行全备份,Rsync可以根据数据的变化进行差异( ...
随机推荐
- unity 和 iOS/Android 信息交互(方法调用)
参考文章均来源于[大神雨松momo]的文章. unity -> iOS // unity 程序 usingSystem.Runtime.InteropServices; usingUnityEn ...
- WPF 确认动态加载数据完成
整个wpf程序是读取xml文件生成的,所以当数量较大而且结构复杂的时候,就会出现显示一个空白(我这里设置了背景色,所以显示黑屏,默认是空白的)的窗口,然后才显示控件. 但现在要求必须在控件显示完成后才 ...
- c#之泛型详解(Generic)
这篇文章主要来讲讲c#中的泛型,因为泛型在c#中有很重要的位置,对于写出高可读性,高性能的代码有着关键的作用. 一.什么是泛型? 泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个非 ...
- Entity FreamWork框架
实体框架 (Entity Framework) 1.是微软以ADO.Net为基础所发展出来的对象关系对应(O/R Mapping)解决方案. 2.实体框架Entity Framework是ADO.Ne ...
- .net mvc 获取acion 返回类型
1..net core 中获取 public override void OnActionExecuted(ActionExecutedContext context) { var descripto ...
- [PHP] PHP数组的实现哈希表(HashTable)结构
PHP中使用最为频繁的数据类型非字符串和数组莫属,使用哈希表实现的PHP数组.1.数据结构:保存哈希表容器,保存数据的容器2.哈希函数实现:需要尽可能的将不同的key映射到不同的槽(bucket)中, ...
- hdu 1251 统计难题 字典树第一题。
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submi ...
- hdu 1397 (素数判定)
一开始提交了这个,果断TLE #include <cstdio> #include <iostream> #include <string> #include &l ...
- MVC 导出Execl 的总结几种方式 (一)
在ASP.NET 中导出Execl 表格有很多方式,有利有弊,就是看自己怎么使用了:下面就是自己总结了几种导出Execl 方式的,仅供参考. 导出Execl 的原理都是一样的,其实都是将数据整合成ta ...
- Java与C++区别:重载(Overloading)
Java中一个类的函数重载可以在本类中的函数和来自父类中的函数之间进行,而C++类中的函数重载只能是本类中的(即不包括来自父类的函数),这是他们一个非常重要的区别.在其他方面的要求都是一致的,即要求函 ...