CentOS 6.x 7.x中用rsync远程同步文件

前端之家收集整理的这篇文章主要介绍了CentOS 6.x 7.x中用rsync远程同步文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

CentOS 6.x中用rsync远程同步文件

@H_404_6@系统环境:Centos 6.9x64 (Centos 7.3 x64)

@H_404_6@

@H_404_6@目的:

@H_404_6@服务器110.112.200.12中/u01文件夹需要同步复制到110.210.250.58里面进行备份。

@H_404_6@将200.12做xinetd 服务器,将其/u01 文件夹复制同步到250.58里面去,250.58做客户端。

@H_404_6@

@H_404_6@一、服务器端的配置

@H_404_6@Centos 6.9 x64

@H_404_6@在源服务器110.112.200.12中配置

@H_404_6@[root@mail test]# yum -y install xinetd rsync

@H_404_6@再修改配置: # vi /etc/xinetd.d/rsync

@H_404_6@

@H_404_6@service rsync

@H_404_6@{

@H_404_6@ disable = NO

@H_404_6@ socket_type = stream

@H_404_6@ wait = no

@H_404_6@ user = root

@H_404_6@ server = /usr/bin/rsync

@H_404_6@ server_args = --daemon

@H_404_6@ log_on_failure += USERID

@H_404_6@}

@H_404_6@

@H_404_6@把原来的disable ,由YES改成NO

@H_404_6@

@H_404_6@[root@mail test]# vi /etc/rsyncd.conf

@H_404_6@uid = root

@H_404_6@gid = root

@H_404_6@use chroot = no

@H_404_6@max connections = 20

@H_404_6@secrets file = /etc/rsync_pass

@H_404_6@pid file = /var/run/rsyncd.pid

@H_404_6@log file = /var/log/rsyncd.log

@H_404_6@

@H_404_6@[backup]

@H_404_6@path = /u01

@H_404_6@comment = Rsync share test

@H_404_6@auth users = ruser

@H_404_6@read only = yes

@H_404_6@hosts allow = 110.210.250.58

@H_404_6@hosts deny = *

@H_404_6@

@H_404_6@注意,path = /u01 ;表示要备份的文件夹为/u01

@H_404_6@

@H_404_6@配置同步的帐号、密码

@H_404_6@[root@mail test]# vi /etc/rsync_pass

@H_404_6@ruser:123456

@H_404_6@

@H_404_6@[root@mail test]# chown root:root /etc/rsync_pass

@H_404_6@[root@mail test]# chmod 600 /etc/rsync_pass

@H_404_6@[root@mail test]# chkconfig xinetd on

@H_404_6@[root@mail test]# service xinetd restart

@H_404_6@

@H_404_6@检查是否出现873端口

@H_404_6@[root@mail test]#netstat -natp

@H_404_6@tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 20959/xinetd

@H_404_6@注意:如果服务器上装有防火墙记得要打开端口,默认端口是873

@H_404_6@

@H_404_6@另外一种启动、停止方法(不建议使用)

@H_404_6@有些人喜欢用命令rsync --daemon --config=/etc/rsyncd.conf 来启动rsync,停用它时要用pkill命令来杀掉进程,不如用xinetd来管理启动rsync方便。

@H_404_6@再有些人喜欢写个脚本来启动、停止rsync,系统本身有xinetd来管理启动rsync而不用它,有点舍近求远的味道。

@H_404_6@

@H_404_6@[root@mail test]# rsync --daemon --config=/etc/rsyncd.conf

@H_404_6@[root@mail test]# pgrep -l rsync

@H_404_6@5132 rsync

@H_404_6@[root@mail test]#pkill rsync

@H_404_6@[root@mail test]# pgrep -l rsync

@H_404_6@

@H_404_6@

@H_404_6@------------------------------------------------------------------------------------------

@H_404_6@如果你是用Centos 7.3 x64做服务端,请看下面的配置

@H_404_6@[root@mail test]# rpm -qa|grep rsync

@H_404_6@rsync-3.0.9-17.el7.x86_64

@H_404_6@

@H_404_6@4、配置rsync的配置文件

@H_404_6@vi /etc/rsyncd.conf

@H_404_6@port = 873

@H_404_6@timeout = 200

@H_404_6@lock file = /var/run/rsyncd.lock

@H_404_6@log format = %t %a %m %f %b

@H_404_6@list = yes

@H_404_6@hosts allow = 110.210.250.58

@H_404_6@hosts deny = *

@H_404_6@

@H_404_6@

@H_404_6@[root@mail test]# yum install xinetd.x86_64

@H_404_6@[root@mail test]#rpm -qa xinetd

@H_404_6@xinetd-2.3.15-13.el7.x86_64

@H_404_6@

修改配置: #vi /etc/xinetd.d/rsync

service rsync

{

disable = NO

socket_type = stream

wait = no

user = root

server = /usr/bin/rsync

server_args = --daemon

log_on_failure += USERID

}


把原来的disable ,由YES改成NO


@H_404_6@安装完成后,将xinetd服务加入开机自启动:

@H_404_6@[root@mail test]# systemctl enable xinetd.service

@H_404_6@最后,重新启动服务即可:

@H_404_6@[root@mail test]# systemctl restart xinetd

@H_404_6@

@H_404_6@检查是否出现873端口

@H_404_6@[root@mail test]# tcp6 0 0 :::873 :::* LISTEN 25167/xinetd

@H_404_6@

@H_404_6@加入防火墙允许

@H_404_6@[root@mail test]#firewall-cmd --add-service=rsyncd --permanent

@H_404_6@[root@mail test]#firewall-cmd --reload

@H_404_6@[root@mail test]#systemctl restart firewalld

@H_404_6@

@H_404_6@
-------------------------------------------------------------------------------------------

@H_404_6@二、客户端的配置

@H_404_6@在目标服务器250.58中配置

@H_404_6@[root@vmevan test]# yum -y install rsync

@H_404_6@[root@vmevan test]# 123456

@H_404_6@注意,客户端的密码文件只需要密码,而不需要用户名

@H_404_6@

@H_404_6@[root@vmevan test]# chmod 600 /etc/rsync_pass

@H_404_6@

@H_404_6@建立一个备份用的文件

@H_404_6@[root@vmevan test]# mkdir /bakcup200.12

@H_404_6@

@H_404_6@在客户端中,有些文件(如named.run)不需要同步,所以要添加到排除列表exclude.list中去。

@H_404_6@[root@vmevan test]#vi /etc/exclude.list

@H_404_6@named.run

@H_404_6@

@H_404_6@[root@vmevan test]#chmod 600 /etc/exclude.list

@H_404_6@[root@vmevan test]#vi /usr/sbin/rsyncdns

@H_404_6@#!/bin/bash

@H_404_6@# by evan.li 2017.6.21

@H_404_6@rsync -vzrtopgu --progress --delete --exclude-from="/etc/exclude.list" --password-file=/etc/rsync_pass ruser@110.112.200.12::backup /bakcup200.12

@H_404_6@

@H_404_6@

@H_404_6@[root@vmevan test]#chmod +x /usr/sbin/rsyncdns

@H_404_6@

@H_404_6@每1小时同步

@H_404_6@[root@vmevan test]#vi /etc/crontab

@H_404_6@0 */1 * * * root /usr/sbin/rsyncdns

@H_404_6@

@H_404_6@1、在客户端中,设定异地主机之间的同步

@H_404_6@[root@vmevan test]# rsync -vzrtopgu --progress --delete --password-file=/etc/rsync_pass ruser@110.112.200.12::backup /bakcup200.12

@H_404_6@或者用

@H_404_6@[root@vmevan test]# rsync -zrtopgu --delete --password-file=/etc/rsync_pass ruser@110.112.200.12::backup /bakcup200.12

@H_404_6@

@H_404_6@这个命令行中-vzrtopg里的v是verbose,详细的。

@H_404_6@z是压缩传输,

@H_404_6@r是recursive,递归。

@H_404_6@topg都是保持文件原有属性如属主、时间的参数。

@H_404_6@u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器的时钟的同步。

@H_404_6@�Cprogress是指显示出详细的进度情况,

@H_404_6@�Cdelete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。

@H_404_6@后 面的ruser@110.112.200.12::backup中,之后的backup是模块名, 也就是在/etc/rsyncd.conf中自定义名称, ruser是指定模块中指定的可以同步的用户名

@H_404_6@最后的/bakcup200.12是备份到本地的目录名。

@H_404_6@在这里面,还可以用-e ssh的参数建立起加密的连接。

@H_404_6@可以用�Cpassword-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

@H_404_6@

@H_404_6@在客户端中,将rsync放入crontab计划任务,每天早上5点同步一次

@H_404_6@[root@vmevan test]# 0 5 * * * root /usr/bin/rsync -vzrtopgu --delete --password-file=/etc/rsync_pass ruser@114.112.200.12::backup /bakcup200.12

@H_404_6@50 6 * * * root /usr/bin/rsync -avu �Cprogress �Cdelete /u01 /u03/backup

@H_404_6@

@H_404_6@

@H_404_6@2、在服务端(源服务器中)中, 能建立本地目录之间的同步

@H_404_6@

@H_404_6@[root@vmevan test]# rsync -avu -progress -delete /u01/555 /mnt/sdb1/u01

@H_404_6@将源目录/u01/555,同步放到/mnt/sdb1/u01文件夹下。对src-dir目录内容向dst-dir目录下进行差异更新,有增加/更新则添加替换,有减少则对其删减 。

@H_404_6@

@H_404_6@

@H_404_6@

@H_404_6@测试完成于2017.06.21

@H_404_6@by evan.li

猜你在找的CentOS相关文章