2 Star 1 Fork 0

zhrun8899 / learning-notes

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
rsync-centos6.9安装-utf8.md 9.15 KB
一键复制 编辑 原始数据 按行查看 历史
zhrun8899 提交于 2019-08-15 14:35 . 20190815 commit

准备工作:

由于服务器无法上网,所以需要先把需要的rpm文件准备好.在自己的虚拟机上准备. 1.安装yum插件(centos6.5需要,6.9自带了) yum install yum-plugin-downloadonly 2.下载所有依赖包 rsync编译需要gcc,make,make 需要 perl 确认需要哪些包并下载到/tmp: yum install --downloadonly --downloaddir=/tmp gcc yum install --downloadonly --downloaddir=/tmp perl yum install --downloadonly --downloaddir=/tmp make 3.安装所有下载的包 rpm -ivh *.rpm --nodeps --force

简介

  • rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:
  • 可以镜像保存整个目录树和文件系统。
  • 可以很容易做到保持原来文件的权限、时间、软硬链接等等。
  • 无须特殊权限即可安装。
  • 优化的流程,文件传输效率高。
  • 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
  • 支持匿名传输,以方便进行网站镜象。
  • 软件下载 rysnc的主页地址为: http://rsync.samba.org/

下载、安装rsync

tar zxvf rsync-3.1.3.tar.gz
cd rsync-3.1.3
./configure --prefix=/usr/local/rsync
./configure
make
make install

配置rsync server /etc/rsyncd.conf(需要手动生成)

说明 : rsyncd.conf的参数写在上边就是全局参数和写在模块里的就是模块参数

vi /etc/rsyncd.conf

     ######################################################################################################
     #                      ******进程相关全局配置******
     ######################################################################################################
     # = 后面的值可根据自己的实际情况更改
     #    pid file 守护进程pid文件
     #    port 守护进程监听端口,可更改,由xinetd允许rsyncd时忽略此参数
     #    address 守护进程监听的本机ip,由xinetd允许rsyncd时忽略此参数
     pid file = /usr/local/var/run/rsyncd.pid
     port = 873
     address = 193.169.1.79
     #模块验证密码文件
     secrets file=/etc/rsyncd.secrets
     #rsyncd 守护进程运行系统用户全局配置,也可在具体的块中独立配置,
     uid = root
     gid = root
     #允许 chroot,提升安全性,客户端连接模块,首先chroot到模块path参数指定的目录下
     #chroot为yes时必须使用root权限,且不能备份path路径外的链接文件
     use chroot = no
     #只读
     read only = no
     #只写
     write only = no
     #允许访问rsyncd服务的ip,ip端或者单独ip之间使用空格隔开
     hosts allow = 193.169.1.218
     #不允许访问rsyncd服务的ip,*是全部(不涵盖在hosts allow中声明的ip,注意和hosts allow的先后顺序)
     hosts deny =
     #客户端最大连接数
     max connections = 5
     #欢迎文件路径,可选的
     motd file = /etc/rsyncd.motd
     #日志相关
     #    log file 指定rsync发送消息日志文件,而不是发送给syslog,如果不填这个参数默认发送给syslog
     #    transfer logging 是否记录传输文件日志
     #    log format 日志文件格式,格式参数请google
     #    syslog facility rsync发送消息给syslog时的消息级别,
     #    timeout连接超时时间
     log file = /usr/local/logs/rsyncd.log
     transfer logging = yes
     log format = %t %a %m %f %b
     syslog facility = local3
     timeout = 300
     [mailfiles]
     path = /root/temp
     list=no
     auth users = admin

3、配置rsync密码(在上边的配置文件中已经写好路径) /etc/rsyncd.secrets(

名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户) 账号:密码 #vi /etc/rsyncd.secrets admin:elink@D18

修改权限

chmod 600 /etc/rsyncd.secrets 权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。

rsyncd.motd(配置欢迎信息,可有可无)

vi /etc/rsyncd.motd rsyncd.motd记录了rsync服务的欢迎信息,你可以在其中输入任何文本信息,如: Welcome to use the rsync services!

启动rsync server

RSYNC服务端启动的两种方法

1、启动rsync服务端(独立启动)

/usr/bin/rsync –daemon

2、启动rsync服务端 (有xinetd超级进程启动)

/etc/rc.d/init.d/xinetd reload

自动启动

加入rc.local

在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时把rsync --daemon加载进去。 vi /etc/rc.local /usr/bin/rsync --daemon 或 echo "rsync --daemon" >>/etc/rc.local 或 chkconfig rsync on

五.检查rsync

netstat -a | grep rsync

========================================================================

客户端安装

cwRsync_4.0.5_Installer.exe windows server 端cwrsync-server现在收费了,最后一个免费版本是4.1.0.本处只使用客户端.

同步命令

准备工作

建立 c:/etc/rsyncd.secrets 文件,内容如下,即只存密码即可. elink@D18

1. 拉:将服务器端内容同步到本地

windows: rsync -vzrtopg --progress --delete admin@193.169.1.34::mailfiles /cygdrive/c/temp --password-file=/cygdrive/c/etc/rsyncd.secrets linux: /usr/bin/rsync -vzrtopg --progress --delete admin@193.169.1.34::mailfiles /cygdrive/c/temp --password-file=/etc/rsyncd.secrets

2.推:将本地内容同步到服务器端

windows: rsync -vzrtopg --progress --delete /cygdrive/c/temp/ admin@193.169.1.79::mailfiles --password-file=/cygdrive/c/etc/rsyncd.secrets linux: /usr/bin/rsync -vzrtopg --progress --password-file=/root/rsync.pas /home/backup hening@192.168.0.217::backup 这个命令将把本地机器/home/backup目录下的所有文件(含子目录)全部备份到RSYNC SERVER(172.20.0.6)的backup模块的设定的备份目录下。 请注意如果路径结束后面带有"/",表示备份该目录下的东东,但不会创建该目录,如不带"/"则创建该目录。

注意 :若端口不是标准的873则需要在命令行中加 --port=8730 参数.

RSYNC用法: rsync [OPTION]... [USER@]HOST::SRC [DEST] #从RSYNC SERVER备份文件到本地机器 rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST #从本地机器备份文件到RSYNC SERVER

3、自动运行

linux:crontab -e windows:系统定时任务 建议只进行推的工作,即定时从工作机向服务器推送文件,删除也如此,不进行从服务器向工作机的拉的动作,防止删除工作机新生成的文件.

iptables

只有 11.22.33.44 这个 client IP 能进入这台 rsync server. iptables -A INPUT -p tcp -s ! 11.22.33.44 --dport 873 -j DROP 开放873端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT

rsync命令介绍:-rvlHpogDtS

rsync命令参数 -v表示verbose详细显示 -z表示压缩 -r表示recursive递归 -t表示保持原文件创建时间 -o表示保持原文件属主 -p表示保持原文件的参数 -g表示保持原文件的所属组 -a存档模式 -P表示代替-partial和-progress两者的选项功能 -e ssh建立起加密的连接。 --partial阻止rsync在传输中断时删除已拷贝的部分(如果在拷贝文件的过程中,传输被中断,rsync的默认操作是撤消前操作,即从目标机上 删除已拷贝的部分文件。) --progress是指显示出详细的进度情况 --delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。 --exclude不包含/ins目录 --size-only 这个参数用在两个文件夹中的差别仅是源文件夹中有一些新文件,不存在重名且被修改过的文件,因为这种文件有可能会因为内容被修改可大小一样,而被略过。这个参数可以大大地提高同步的效率,因为它不需要检查同名文件的内容是否相同。 --password-file来指定密码文件,内容包含server端指定认证用户的密码。 这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。 hening@192.168.0.217::backup hening是指server端指定认证的用户 192.168.0.217是指服务器端的ip ::backup 表示服务器端需要同步的模块名称; /home/quack/backup/$DATE是同步后的文件指存放在本机的目录地址。 /var/log/rsync.$DATE是同步后的日志文件存放在本机的目录地址。

注意

不放/ 则目录名也包含mirror,放 / 则只有目录里面的东西mirrors

防火墙问题

1.只开一个端口873是可以正常同步的 2.过防火墙测试 端口映射只需要映射一个873(原生) 或其它(自定义了rsyncd的端口)即可. 环境配置:服务端:8730,防火墙:33333--->193.169.1.34:8730 下面是客户端的命令: rsync -avz --progress --delete /cygdrive/c/temp/ admin@218.26.36.12::mailfiles --password-file=/cygdrive/c/etc/rsyncd.secrets --port=33333 错误解决: @ERROR: Unknown module 'mailfiles' rsync error: error starting client-server protocol (code 5) at main.c(1506) [sender=3.0.7] 解决:服务器加了限制访问IP为193.169.1.218,去除后问题解决.

1
https://gitee.com/zhrun8899/learning-notes.git
git@gitee.com:zhrun8899/learning-notes.git
zhrun8899
learning-notes
learning-notes
master

搜索帮助