标签:rsync服务配置
Rsync是Unix/Linux下的一款应用软件,利用它可以使多台服务器数据保持同步一致性,第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。
Rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。可以很容易做到保持原来文件的权限、时间、软硬链接等。rsync有两种同步方式,一种基于ssh同步不需要配置,一种需要自身秘钥同步就需要进行文件配置了。以下我采用的是自身秘钥的方式:企业用的居多
RSYNC安装
实验两台虚拟机:服务端192.168.2.222,客户端192.168.2.183
便于实验,我这里采用yum安装方式:yum install rsync -y
我这里自定义rsync配置目录mkdir /home/lijq/.rsync/ -p ; 创建配置文件添加以下内容vi rsyncd.conf;
uid = nobody
gid = nobody
use chroot = no
max connections = 30
pid file = /home/lijq/.rsync/rsyncd.pid
lock file = /home/lijq/.rsync/rsyncd.lock
log file = /home/lijq/.rsync/rsyncd.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[test1]
read only = no
path = /data/www
comment = www
auth users = test
secrets file = /home/lijq/.rsync/rsync.pas
hosts allow = 192.168.2.183
cd /home/lijq/.rsync;创建rsync.pas密钥文件test:123456 并给权限chmod 666 rsync.pas
然后启动服务,我这里是自定义配置路径和端口所有启动命令为下:
/usr/bin/rsync --daemon --config=/home/lijq/.rsync/rsyncd.conf --port 7001
使用ps -ef | grep rsync可以查看服务启动情况
客户端配置,只需要在cd /home/lijq/.rsync/下创建rsync.pas密码文件内容123456并赋予600权限即可
然后创建服务端的同步目录,上面配置文件定义的是/data/www
客户端执行rsync -aP --delete test@192.168.2.222::test1 /root/lijq --port=7001 --password-file=/home/lijq/.rsync/rsync.pas
上面命令是客户端同步服务器文件里面的内容,,/root/lijq为客户端目录可以自己定义,端口是我自己定义的,test1是我服务端定义的同步模块名称
如果报错@ERROR: auth failed on module test1请检查秘钥配置文件,如果报错:rsync: failed to connect to 192.168.2.222: No route to host (113)请检查防火墙和selinux,博主深受其害
同步命令执行后,会发现,服务器上的/data/www/下面的文件都同步到了客户端/root/lijq下面了,,done
二.上面的客户端执行的命令同步是服务器上的目录文件同步到客户端来相当于备份,而企业中很多都是从客户端更新数据到服务端故此:在客户端可以执行下列命令就好了
/usr/bin/rsync -avzP --progress --delete --password-file=rsyncd1.pas --port=7001 /root/lijq/ test@192.168.2.222::test1 rsyncd1.pas是我在当前目录创建的一个秘钥文件,,也可以写成之前的那个路径。
如果报错rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]请检查服务端目录权限其他用户要有写的权限哦,done
脚本实现同步:这里的脚本是客户端数据同步到服务端的,其他的可以自己定义:
#!/bin/bash #use for : sh 33.sh test server SYSUSER=test export MOKUAI=test1 export PORT=7001 SRC_DIR=/root/lijq/ SERVERIP=192.168.2.222 SERVERNO=$1 case "$2" in test) echo ${rsyncsource%/*} ;; server) /usr/bin/rsync -avzP --progress --delete --password-file=rsyncd1.pas --port=${PORT $SRC_DIR $SYSUSER@$SERVERIP::$MOKUA I ;; esac
done
后续研究持续更新
本文出自 “毛毛鸭” 博客,请务必保留此出处http://woshitieren.blog.51cto.com/2466034/1679226
标签:rsync服务配置
原文地址:http://woshitieren.blog.51cto.com/2466034/1679226