要编辑配置文件/etc/rsyncd.conf
启动服务rsync --daemon
格式:rsync -av test1/ 192.168.202.130::module/dir/
rsync同步文件
rsync 通过服务的方式同步,首先需要开启一个服务,是cs架构,客户端和服务端
服务端,开启一个rsync服务,并且一个端口,默认是873——>(端口是可以自定义的)
格式:rsync -av test1/ 192.168.133.130::module/dir/
在启动服务之前,首先要编辑配置文件,文件的默认地址是在 /etc/rsyncd.conf——>也可以更改路径,但是在更改路径后,就需要在启动服务的时候,去rsync --daemon//conf=后跟路径
然后启动服务rsync --daemon
从hf机器的文件传输到hf-02机器
rsyncd.conf样例
port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.202.130
[test]
path=/root/rsync
use chroot=true
max connections=4
read only=no
list=true
uid=root
gid=root
auth users=test
secrets file=/etc/rsyncd.passwd
hosts allow=192.168.133.132 1.1.1.1 2.2.2.2 192.168.133.0/24
首先在虚拟机hf上打开/etc/rsyncd.conf文件
vim /etc/rsyncd.conf
然后将上述代码复制到 /etc/rsyncd.conf 文件中——>在打开文件的文件时候,会看到所有文件都存在的,但被注释掉的,我们可以另起一行,粘贴进去
启动服务rsync --daemon
在hf虚拟机上检查服务是否已经启动
在hf虚拟机上检查监听的端口是否为873
会看到监听的端口为873
这里并且指定监听的IP,若是不写监听的IP,就会绑定0.0.0.0,就是所有的网段,全部的IP
在hf虚拟机上检查path指定的路径
这里若是指定root,权限就会有可能不好把握,所以放在tmp目录下
修改/etc/rsyncd.conf目录中的
将path=/root/rsync改为path=/tmp/rsync
并新建目录mkdir=/tmp/rsync
在hf虚拟机上设置权限——>这里设置的777权限是为了方便测试
在另一台虚拟机hf-02上,运行
rsync -avP /tmp/hanfeng.txt 192.168.202.130::test/hanfeng-02.txt
192.168.202.130它是hf虚拟机的IP
::后面跟模块的名称——>模块名称就是/etc/rsyncd.conf中设置的 test 模块
这里模块名称代表的路径就是/tmp/rsync
在hf-02虚拟机上,会提示没有路由到远程机器上去,遇到这种问题,首先在hf-02虚拟机上检查网络连通性
这时在hf-02虚拟机上,检查是否为端口的问题
telnet 命令,用于登录远程主机,对远程主机进行管理。
安装telnet包——>yum install -y telnet
telnet 192.168.202.130 873 //检查端口是否相通的命令
这时候会发现873端口是不通的
首先检查是否为iptables的问题
会看到是iptables的问题,我们需要停掉firewalld 服务停掉(systemctl stop firewalld,如开启的是iptables防火墙,则要用service iptables stop关闭防火墙,且2台机器都要进行关闭防火墙)
这时会发现端口通了
若想退出,按ctrl+],然后在quit就退出了
这时在hf-02虚拟机上,执行rsync -avP /tmp/hanfeng.txt 192.168.202.130::test/hanfeng-02.txt命令,会看到提示要输出密码——因为在/etc/rsyncd.conf文件中,有定义密码
这时可以在hf虚拟机中的/etc/rsyncd.conf文件中,注释掉输入密码
这时在hf-02虚拟机上执行 rsync -avP /tmp/hanfeng.txt 192.168.202.130::test/hanfeng-02.txt
这时就不需要输入密码,就可以传输文件了(将02客户机上的/tmp/hanfeng.txt文件同步到了01服务器设置的path=/tmp/rsync下,并命名为hanfeng-02.txt)
在hf虚拟机中,检查文件
这时就表示实验成功了
从hf-02机器的文件拉到hf机器(在02上接收01上的/tmp/rsync/test2.txt文件到/tmp/目录下并命名为123.txt)
rsyncd.conf配置文件详解
查看日志文件命令cat /var/log/rsync.log
查看模块名
若将 list 改为 false ,则模块名不会列出,会被隐藏
use chroot true会影响到传输文件中软连接文件的传输
传输文件中包含软连接
添加P属性,下载软连接源文件时,由于use chroot true出现报错。
当use chroot 改为false时后,即可成功
vim /etc/rsyncd.conf中若port=873被修改,使用killall rsync(killall:yum install -y psmisc)命令先关闭rsync相关进程再启动,rsync --daemon。接收文件时使用--port指定已修改的端口,rsync -avLP --port 8730 192.168.179.128::test/ /tmp/test/
rsync传输时设置密码
auth users=test 设置用户名为test
secrets file=/etc/rsyncd.passwd 并在/etc/rsyncd.passwd中设置密码文件
在/etc/rsyncd.passwd文件中编辑
格式为test:hanfeng,然后保存退出
然后修改权限为600
chmod 600 /etc/rsyncd.passwd
rsync -avP /tmp/test/ test@192.168.202.130::test/
这时候就需要输入用户名了 test@
在rsync传输文件的时候,在写shell脚本输入密码不好,比如每天凌晨半夜更新数据库文件啥的,那就会很麻烦
这时候在hf-02客户端也定义一个密码文件
vim /etc/rsync_pass.txt
格式:只写一个密码即可 hanfeng 并保存——>客户端上只需写一个密码就行
并修改权限为600
chmod 600 /etc/rsync_pass.txt
rsync -avP /tmp/test/ --password-file=/etc/rsync_pass.txt test@192.168.202.130::test/
这里需要加上--password-file=/etc/rsync_pass.txt
hosts allow
hosts allow,用来定义你允许那些机器去做同步,允许哪一个IP连接,若是多个IP,就用空格隔开,也可以写IP段192.168.133.0/24