centos6.0安装rsync远程数据同步工具总结

简介:
     Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 
Rsync本来是用于替代rcp的一个工具,目前由rsync.samba.org维护,所以rsync.conf文件的格式类似于samba的主
配置文件。Rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时Rsync server会打开一
个873端口,等待客户端去连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文
件传输。第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份。 
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。此外,它在windows平台下
也有相应的版本,如cwRsync和Sync2NAS等工具。
安装rsync3.0.9版本 
http://rsync.samba.org/ftp/rsync/下载地址
1、 下载二进制源码rsync-3.0.9.tar.gz和补丁程序服务器和客户端都用这个程序。 
2、 解压解包 # tar zxvf rsync-3.0.9.tar.gz 和补丁
3、 配置 # cd rsync-3.0.9 
4       配置./configure --prefix=/usr/local/rsync
5、 编译安装 # make&&make install 
6、 把上述步骤在客户端和服务器端各执行一遍。
7.      配置文件rsyncd.conf
         vi /etc/rsyncd.conf
      #全局参数设置:这部分设置的参数影响整个程序的运行 
      uid = root       #rsync运行时的用户ID (关于用户ID和用户组ID的设置只要保证具有读取要同步文件和文
件夹的权限即可) 
      gid = root        #rsync运行时的用户组ID 
      max connections = 0  #同时最大的连接数,0为不限制 
      pid file = /var/log/rsync/rsyncd.pid   #记录rsync运行时的进程ID 
      lock file = /var/log/rsync/rsync.lock  #以文件的方式锁的方式,保证rsync的一次运行 
      log file = /var/log/rsync/rsyncd.log   #rsync日志信息包括启动信息同步信息等 
      port = 873                             #可以指定rsync运行时使用的端口,默认使用873(不指定则使用
默认)
      use chroot = no                        #不使用chroot
      #同步模块配置
      [data]               #要同步的文件夹的别名,此处直接写的accounts,只是一个名称方便记忆即可,客户
端同时要用到 
      path = /data #指定要同步的具体文件夹,此处为实际同步的文件夹
      comment = backup data  #备注信息,主要是一些说明信息,用来帮助记忆等 
      ignore errors           #忽略一些无关的错误信息 
      read only = false       #是否设置以只读的方式运行,本工具支持对外同步和回传哟 
      list = false            #是否允许客户端查看文件列表 
      hosts allow = 192.168.40.42 #允许同步的客户机IP,多个用","隔开 
      auth users = test           #同步认证时使用的用户名,可以任意指定,但必需存在于下一项的密码文件
中 
      secrets file = /root/rsync.passwd  #密码认证文件,此文件中包含客户端认证时的用户名和密码的对应关
系 ,配置文件名可以任意
centos6的配置文件如下:
服务端配置文件:
[root@localhost rsync]# cat /etc/rsyncd.conf 
uid = root                                          
gid = root
max connections = 200
timeout = 600
use chroot = no
read only = no
port = 873
log file=/var/log/rsyncd.log//记录日志
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[data]//第一行是模块的名字,必须有这行                   
path=/data//指定要同步的具体文件夹,此处为实际同步的文件夹
comment=backup data//备注信息,主要是一些说明信息,用来帮助记忆等 
ignore errors//忽略一些无关的错误信息防止因为资源不足或其他的通信出错导致严重问题 
hosts allow=192.168.40.42//允许同步的客户机IP,多个用","隔开 
auth user=test//验证用户,没有这行表示匿名,安全起见请加上这行
secrets file=/root/rsync.passwd//密码认证文件,此文件中包含客户端认证时的用户名和密码的对应关系 ,配置
文件名可以任意secrets file分两部分,服务器端跟备份服务器端
服务器端 格式为登录用户名:登录用户密码
备份服务器端 格式为登录用户密码(不需要写入登录用户名)
按上要求设置服务器端的密码文件

客户端配置文件
[root@localhost rsync]# cat /etc/rsyncd.conf 
uid = root                                          
gid = root
max connections = 200
timeout = 600
use chroot = no
read only = no
port = 873
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[data]                    
path=/data
comment=backup data
ignore errors
hosts allow=192.168.40.40
auth users=test
secrets file=/root/rsync.passwd

服务端:
[root@localhost ~]# cat rsync.passwd //这个文件一定要设置为chmod 600不然无法完成RSYNC设置
test:123456
户端
[root@localhost ~]# cat rsync.passwd //这个文件一定要设置为chmod 600不然无法完成RSYNC设置
123456
服务端
echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf&">>/etc/rc.local//让系统开机运行
客户端:
echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf&">>/etc/rc.local//让系统开机运行
reboot重启启动后
netstat -an |grep 873 查看服务是否开启并监听端口如有监听服务正常
[root@localhost ~]# netstat -an|grep 873
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      
tcp        0      0 :::873                      :::*                        LISTEN      
unix  3      [ ]         STREAM     CONNECTED     8873   
如果开启的iptables就要
iptables -I INPUT -p tcp --dport 873 -j ACCEPT 命令开启防火墙的873端口

服务端脚本
#!/bin/sh
/usr/local/rsync/bin/rsync -vzrtopg --progress  test@192.168.40.42:/data /data --delete
客户端脚本
#!/bin/sh
/usr/local/rsync/bin/rsync -vzrtopg --progress --password-file=/root/rsync.passwd /data
test@192.168.40.40::data --delete
解释 --progress 显示传输过程
  --delete 通信两端被同步的一段如果之前备份的文件有删除的话备份的那端也删除同样文件
  --password-file是备份机器的密码文件的路径方便crontab调用
   test@192.168.40.40::data /data是用test帐号登录远程服务器192.168.40.40调用test模块备份到本地/data
文件夹下如果命令是/data  test@192.168.40.40::data的话正好相反是讲本地/data的文件同步到远程机器
192.168.40.40的data模块定义的路径地方!!!!!(警告!!!这点一定要搞懂,因为备份使用--delete 删除
已经删除的文件一定要确定备份方向)
 crontab 设置定时任务同步备份实现自动备份

同步参数
常用参数-avz ,--progress,--delete
 
-v, --verbose 详细模式输出
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, --links 保留软链结
-L, --copy-links 想对待常规文件一样处理软链结
-H, --hard-links 保留硬链结
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
--delete 删除那些DST中SRC没有的文件
--force 强制删除目录,即使不为空
-timeout=TIME IP超时时间,单位为秒
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
--progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN 指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式
--exclude-from=FILE 排除FILE中指定模式的文件
--include-from=FILE 不排除FILE指定模式匹配的文件
--version 打印版本信息
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT 指定其他的rsync服务端口
 
测试:在42客户端机器上创建一个test目录
[root@localhost data]# mkdir test
[root@localhost data]# ls
1  2  3  333  4  5  6  ggg  kkk  test
40服务上没有test这个目录
[root@localhost data]# ls
1  2  3  333  4  5  6  ggg  kkk
[root@localhost ~]# sh test.sh
test@192.168.40.42's password: 
receiving incremental file list
data/
data/test/
sent 28 bytes  received 200 bytes  8.29 bytes/sec
total size is 0  speedup is 0.00
[root@localhost data]# ls
1  2  3  333  4  5  6  ggg  kkk  test
 
遇到的问题
1.刚开始/data目录的权限问题所以被拒绝了。
2.还有刚开始用/usr/local/rsync/bin/rsync --daemon 启动发现没有配置文件,所以制定配置文件。


本文转自zh888 51CTO博客,原文链接:http://blog.51cto.com/zh888/780657,如需转载请自行联系原作者

相关文章
|
4月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
773 69
|
3月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
1096 2
|
4月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
388 78
|
3月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
584 16
|
5月前
|
Linux 网络安全 Apache
针对在Centos/Linux安装Apache过程中出现的常见问题集锦
以上每个问题的解决方案应深入分析错误日志、系统消息和各种配置文件,以找到根本原因并加以解决。务必保持系统和Apache软件包更新到最新版本,以修复已知的bugs和安全漏洞。安装和管理Web服务器是一项需要细致关注和不断学习的任务。随着技术的发展,推荐定期查看官方文档和社区论坛,以保持知识的更新。
241 80
|
4月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
336 10
|
5月前
|
人工智能 数据挖掘 Linux
Centos安装Python3.7(亲测可用)
本指南详细介绍了在基于Linux(以CentOS系统为例,使用yum包管理器)的系统上安装Python 3.7版本的完整流程。Python是一种广泛使用的高级编程语言,在各种领域如软件开发、数据分析、人工智能和区块链开发等都有着重要的应用。
491 2
|
4月前
|
运维 网络协议 Linux
CentOS下Bind服务的安装与故障排查
通过以上的步骤,您应该能够在CentOS系统上安装并配置BIND DNS服务,并进行基本的故障排查。
376 0
|
4月前
|
存储 Ubuntu Linux
安卓手机免root安装各种Linux系统:Ubuntu, Centos,Kali等
此外还可以安装Slackware、Archstrike等系统,还可以通过github查找方法安装更多有趣的东西。 昨日小编就是通过Termux安装的Kali Linux工具包。