系统运维


rsync服务端和客户端

<h2>环境:Centos 7.9</h2> <p><code>server: 192.168.10.141</code> <code>client: 192.168.10.147</code></p> <h2>server端配置</h2> <h3>关闭防火墙</h3> <pre><code class="language-bash">systemctl stop firewalld systemctl disable firewalld setenforce 0</code></pre> <h3>rsync安装</h3> <p>源码安装包:<a href="https://rsync.samba.org/ftp/rsync/">https://rsync.samba.org/ftp/rsync/</a> 本地安装:yum install rsync -y</p> <h3>创建目录</h3> <pre><code class="language-bash">创建的目录如下: rsyncd.conf : rsync配置文件 rsyncd.secrets : 客户端访问时所需要的用户和密码 rsyncd.motd : 客户端登录成功后的公告 mkdir /etc/rsyncd touch /etc/rsyncd/rsyncd.conf touch /etc/rsyncd/rsyncd.secrets touch /etc/rsyncd/rsyncd.motd chmod 600 /etc/rsyncd/rsyncd.secrets </code></pre> <h3>rsyncd.conf配置内容</h3> <pre><code class="language-bash"># 端口 port=873 # RSYNC守护进程的用户 uid = root # 运行RSYNC守护进程的组 gid = root # 不使用chroot use chroot = no # 最大连接数是200 max connections = 200 # 超时时间 timeout = 600 # pid文件存放位置 pid file = /var/run/rsyncd.pid # 锁文件存放位置 lock file = /var/run/rsyncd.lock # 日志文件存放位置 log file = /var/run/rsyncd.log # 用户登录成功显示的公告 motd file = /etc/rsyncd/rsyncd.motd # 模块 [logs] # 要同步的目录 path = /data/backup/ # 忽略无关的IO错误 ignore errors # 只读,不能上传 read only = no # 禁止查看文件列表 list = no # 允许访问服务的ip hosts allow = 192.168.10.141 # 禁止访问服务的ip # hosts deny = 0.0.0.0/32 # 认证的用户名,系统必须存在的用户,但是密码需要在secrets file 配置,不是系统的密码。 auth users = test # 认证用户密码文件,配置auth users的密码 secrets file = /etc/rsyncd/rsyncd.secrets </code></pre> <h3>配置文件注意事项</h3> <pre><code class="language-bash">[logs] : 是设置的模块,等会客户端要用到这个 path : 你要同步的文件路径 hosts allows : 你客户端的ip,可以有多个。。在后面添加就行了,注意格式和用空格隔开 secrets file :对应的文件是你设置的用户密码 rsync.secrtes 中 录入你设置的用户和密码 : 如: test:test 冒号前是账号,后面是密码。。 可以有多个,换行添加就行了 rsync.motd 中录入的是公告: 就是告诉你登录成功的logo</code></pre> <h3>启动rsync服务</h3> <pre><code class="language-bash">rsync --daemon --config=/etc/rsyncd/rsyncd.conf</code></pre> <h3>验证服务是否运行成功</h3> <pre><code class="language-bash">#因为在配置文件中设置的端口是873 , 所以通过 lsof -i:873 来检查是否启动成功 lsof -i:873</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=7e2268ed766691897ea984e3722576b7&amp;file=file.png" alt="" /></p> <h2>客户端配置</h2> <pre><code class="language-bash">systemctl stop firewalld systemctl disable firewalld setenforce 0</code></pre> <h3>安装rsync</h3> <pre><code class="language-bash">#一般Linux不是最小安装,Centos7.9 rsync默认是安装的3.1.2版本 yum install rsync</code></pre> <h3>创建密码文件,客户端拉取服务端文件时验证用</h3> <pre><code class="language-bash">mkdir /etc/rsyncd echo "test" &gt; /etc/rsyncd/rsyncd.pass # 这里的密码是服务端配置的密码,必须一致 </code></pre> <h3>更改密码文件权限600</h3> <pre><code class="language-bash">chmod 600 /etc/rsyncd/rsyncd.pass</code></pre> <p>客户端做到这一步基本上也就完成了</p> <h3>测试</h3> <p>【1】客户端从服务端/data/backup/目录下拉取数据存放到客户端/data目录下:</p> <pre><code class="language-bash">rsync -avz --password-file=/etc/rsyncd/rsyncd.pass --port=873 test@192.168.10.141::logs /data/ #命令格式:-a 表示以递归方式传输文件,并保持所有属性 -v 打印信息 -z 传输过程中压缩 -P 保留文件权限 --password-file=客户端与服务端的密码文件,密码要一致 --port=服务端rsync端口 服务端创建的用户@服务端IP::服务端设置的模块 客户端的保存路径</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=53751253d3fe32795b725377d70ef23d&amp;file=file.png" alt="" /></p> <p>【2】客户端上传文件到服务端,文件权限以服务端设定为主(服务端设定目录文件和文本文件权限755) <strong>incoming chmod = Du=rwx,Dgo=rx,Fu=rwx,Fgo=rx</strong> 解析:D表示目录文件,F表示文本文件,r读 w写 x执行 Du=rwx,Dgo=rx 表示目录文件主用户拥有可读可写可执行权限,组用户和其他用户拥有读和执行权限。</p> <p>客户端执行</p> <pre><code class="language-bash">#查看当前文件权限 [root@client data]# ll total 0 -rw-r--r--. 1 root root 0 Dec 10 15:32 644.txt [root@client data]# rsync -avz /data/ test@192.168.10.141::logs Password: 输入服务端密码 sending incremental file list ./ 644.txt sent 125 bytes received 46 bytes 38.00 bytes/sec total size is 0 speedup is 0.00</code></pre> <p>服务端查看</p> <pre><code class="language-bash">[root@server backup]# ll total 0 -rwx--r-xr-x. 1 root root 0 Dec 10 15:32 644.txt</code></pre> <p>[========]</p> <h2>rsync六种不同的工作模式:</h2> <p>1.拷贝本地文件,将/home/c1 目录下的文件拷贝到/c2目录下</p> <p><code>$ rsync -avSH /home/c1/ /c2/</code></p> <p>2.拷贝本地机器的内容到远程机器</p> <p><code>$ rsync -av /home/c1/ 192.168.11.12:/home/c2/</code></p> <p>3.拷贝远程机器的内容到本地机器</p> <p><code>$ rsync -av 192.168.11.11:/home/c1/ /home/c2/</code></p> <p>4.拷贝远程rsync服务器(daemon形式运行rsync)的文件到本地机</p> <p><code>$ rsync -av root@172.16.78.192::www /databack</code></p> <p>5.拷贝本地机器文件到远程rsync服务器(daemon形式运行rsync)中。当DST路径信息包含”::”分隔符时启动该模式 <code> $ rsync -av /databack root@172.16.78.192::www</code></p> <p>6.显示远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可</p> <p><code>$ rsync -v rsync://192.168.11.11/data</code></p>

页面列表

ITEM_HTML