linux rsync 同步两主机间的文件
<p>场景说明:</p>
<pre><code class="language-bash">linux rsync 同步文件 ,linux两台主机增量同步文件
服务端:172.16.3.6
客户端:172.16.3.3</code></pre>
<p>关闭selinux</p>
<pre><code class="language-bash">setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config</code></pre>
<h1>1.在服务端和客户端上安装rsync</h1>
<pre><code class="language-bash">yum -y install rsync</code></pre>
<h1>2.服务端配置(172.16.3.6)</h1>
<p>cat /etc/rsyncd.conf</p>
<pre><code class="language-bash">[svn]
path=/var/svn/
read only = no
list = yes
ignore errors
auth users = mydata
secrets file = /etc/rsyncd.passwd</code></pre>
<pre><code class="language-bash">touch /etc/rsyncd.passwd
echo "mydata:hzsun310012" > /etc/rsyncd.passwd
chmod 600 /etc/rsyncd.passwd</code></pre>
<h1>3.客户端配置(172.16.3.3)</h1>
<pre><code class="language-bash">touch /etc/rsyncd.passwd
echo "hzsun310012" > /etc/rsyncd.passwd
chmod 600 /etc/rsyncd.passwd</code></pre>
<h1>4.在客户端执行同步命令</h1>
<pre><code class="language-bash">rsync -avth --delete --exclude "*.dump" --password-file=/etc/rsyncd.passwd mydata@172.16.3.6::svn /myNFS/MyStorage006</code></pre>
<h1>5.完整脚本用于定时执行</h1>
<pre><code class="language-bash">mkdir -pv log_DataSync-svn3.6
touch /opt/rsync-from-3.6svn.sh
#!/bin/bash
DateTime=`date +%Y-%m-%d-%H:%M:%S`
DtRcLog=$DateTime.log
Days=30
DtRcLogDir=/opt/log_DataSync-svn3.6
/usr/bin/rsync -avth --delete --exclude "*.dump" --password-file=/etc/rsyncd.passwd mydata@172.16.3.6::svn /myNFS/MyStorage006 >> /opt/log_DataSync-svn3.6/datarsync_$DtRcLog</code></pre>
<p>crontab -e</p>
<pre><code class="language-bash">0 23 * * * /opt/.rsync-from-3.6svn.sh</code></pre>
<h1>6.报错信息</h1>
<pre><code class="language-bash">[root@NFS opt]# /usr/bin/rsync -avth --delete --password-file=/etc/rsyncd.passwd mydata@172.16.4.40::gitlab40 /myNFS/MyStorage4.40
receiving incremental file list
rsync: change_dir "/" (in gitlab40) failed: Permission denied (13)
sent 8 bytes received 80 bytes 4.29 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1650) [Receiver=3.1.2]
rsync: read error: Connection reset by peer (104)</code></pre>
<p>解决方案:</p>
<pre><code class="language-bash">cd /var/opt/gitlab
chmod 755 backups/
chmod 644 backups/*</code></pre>
<p>参考资料:</p>
<pre><code class="language-bash">https://blog.csdn.net/qq_27517377/article/details/105147583
https://blog.csdn.net/woshiji594167/article/details/83860993</code></pre>