centos7安装rsync及两台机器进行文件同步
2017-12-21 11:17
344 查看
安装及配置
安装运行:yum -y install rsync #启动rsync服务 systemctl start rsyncd.service systemctl enable rsyncd.service #检查是否已经成功启动 netstat -lnp|grep 873
好了,好了。安装成功。
配置:
首先,配置文件在:
/etc/rsyncd.conf
vim /etc/rsyncd.conf
看到:
好了,先修改成:
uid = root # //设置运行rsync 进程的用户 gid = root use chroot = no max connections = 4 # pid file = /var/run/rsyncd.pid #//CentOS7中yum安装不需指定pid file 否则报错 lock file=/var/run/rsyncd.lock log file = /var/log/rsyncd.log # //此文件定义完成后系统会自动创建 exclude = lost+found/ transfer logging = yes timeout = 900 ignore nonreadable = yes # //同步时跳过没有权限的目录 dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # //传输时不压缩的文件
重启:
systemctl restart rsyncd.service
两个服务器间传输文件
好了,上面配置完rsync了,那么接下来,假设有两台服务器,开发服务器dev及线上测试环境test,现在需要从dev将可运行代码更新到test上面去。注意:每一次传输文件客户端将告诉服务端需要调用哪个传输规则进行传输,而传输规则如下:
[simba] //此名字即客户端使用rsync来同步的路径 path=/usr/local/simba //实际需要同步的路径 comment=simba //和中括号里名字一样就行 ignore errors read only=no //表示可以pull write only=no //表示可以push list=no auth users=rsyncuser //客户端获取文件的身份此用户并不是本机中确实存在的用户 secrets file=/etc/rsyncd.passwd //用来认证客户端的秘钥文件 格式 USERNAME:PASSWD 此文件权 //限一定需要改为600,且属主必须与运行rsync的用户一致。 hosts allow=* //允许所有主机访问
好了,我们自己做一个规则,假定test上面接收的目录是: /data/www/helloRsync
#创建目录 mkdir /data/www/helloRsync
而dev上面也是。。。
请自行创建。
那么在test上面的/etc/rsyncd.conf添加规则:
#规则名称,作为测试用规则,直接用这个算了。 [helloRsync] #同步的路径 path=/data/www/helloRsync #规则描述 comment=测试规则 ignore errors #是否可以pull read only=no #是否可以push write only=no list=no #下面配置同步时候的身份,注意该身份是在rsync里面定义的,并非是本机实际用户。等下说说如何在rsync里面定义身份。 #客户端获取文件的身份此用户并不是本机中确实存在的用户 auth users=rsyncuser #//用来认证客户端的秘钥文件 格式 USERNAME:PASSWD 此文件权 #//限一定需要改为600,且属主必须与运行rsync的用户一致。 secrets file=/etc/rsyncd.passwd #允许所有主机访问 hosts allow=*
给rsync定义身份,如下:
echo 'rsyncuser:123456'>/etc/rsyncd.passwd //文件用户名和路径为上面定义,别写错,密码自己定 chmod 600 /etc/rsyncd.passwd //修改权限
重启服务。
systemctl restart rsyncd.service
客户端的配置
1。创建密码。
echo '123456' >>/etc/rsyncd-test.passwd //注意这里只需要服务器rsyncd.passwd 中的密码 chmod 600 /etc/rsyncd-test.passwd
为了测试顺利,我们添加一些文件进行同步,譬如:
echo 'test,hello'>> /data/www/helloRsync/readme.txt
好了,同步:
rsync -auv --password-file=/etc/rsyncd-test.passwd rsyncuser@120.x.x.x::helloRsync /data/www/helloRsync/
看看服务器上面对应目录
检查原因
test上面看日志:
vim /var/log/rsyncd.log
好了,
auth user 是错的,要用 auth users,也是醉了,都没发现吗?
改过以后重启rsync服务,在尝试
得到:
name or service not kunown
据查这不是问题,怀疑,是rsync命令问题,应该是将test的文件下载下来了,于是将目录调换一下顺序,得到:
rsync -auv --password-file=/etc/rsyncd-test.passwd /data/www/helloRsync/ rsyncuser@120.x.x.x::helloRsync
报错:
好了,是没有放开权限:
放开以后重启终于成功了。泪流满面。坑爹丫。
一份真实环境用的更新脚本demo
src="/usr/local/webroot/java-web-bld" rsync -rauvvt --progress \ --password-file=/etc/rsyncd-test.passwd \ --exclude="console/data" \ --exclude=".svn" \ --exclude="WEB-INF/logs" \ --exclude="res/upload" \ --exclude="WEB-INF/upload" \ --exclude="WEB-INF/temp" \ --exclude="env.properties" \ /usr/local/webroot/java-web-bld/ rsyncuser@xxx.xx.xx.xxx::backend
相关文章推荐
- (11)Linux 服务器安装配置rsync服务,并实现两台机器同步文件
- CentOS安装和配置Rsync进行文件同步
- 利用rsync工具进行同步windows和linux机器之间的文件工作记录20130614
- centos7系统安装sersync+rsync实现服务器同步功能
- 在linux下使用rsync将文件定时同步到另外一台机器
- 利用Rsync进行文件同步
- linux下inotify-tools+rsync进行文件同步的使用
- centos7安装sersync2+rsync+inotify-tools实现文件实时同步
- 文件备份,同步工具rsync服务器端的安装及配置
- [CentOS] rsync同步目录进行备份文件
- 配置rsync服务端及2台机器配置文件同步(Linux 实测通过)
- centos 6.3 安装 rsync文件同步服务端和客户端
- linux使用rsync进行文件同步
- 【实时文件同步】rsync+inotify-tools的安装与配置
- rsync两台服务器之前的文件同步
- rsync 排除指定目录或文件进行同步
- rsync两台服务器文件同步
- centos两台机器文件同步
- 在linux下使用rsync将文件定时同步到另外一台机器
- 用rsync进行文件同步