rsync安装过程

1、什么是rsync算法

  rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,能够保持原来文件的权限、时间、软硬连接等附加信息。 rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,并且能够经过ssh方式来传输文件,这样其保密性也很是好,另外它仍是免费的软件。bash

2、架设rsync服务器服务器

  架设rsync 服务器比较简单,写一个配置文件rsyncd.conf 。文件的书写也是有规则的,咱们能够参照rsync.samba.org 上的文档来作。固然咱们首先要安装好rsync这个软件才行;ssh

3、rsync的安装;socket

1下载rsync软件tcp

2)tar zxvf rsync-2.1.2.tar.gzui

3). cd rsync-xxx
./configure --prefix=/usr  ;make ;make install 加密

4、配置rsync server操作系统

一、启动RSYNC
#vi /etc/xinetd.d/rsync 把原来的YES改为NO
service rsync
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}
随系统启动RSYNC
  #chkconfig rsync onrest


二、配置/etc/rsyncd.conf(须要手动生成)
   rsyncd.conf的参数写在上边就是全局参数和写在模块里的就是模块参数
#vi /etc/rsyncd.conf 全局参数
uid = root                                   //运行RSYNC守护进程的用户
gid = root                                   //运行RSYNC守护进程的组
use chroot = no                             //不使用chroot
max connections = 4                         // 最大链接数为4
strict modes =yes                          //是否检查口令文件的权限
port = 873                                //默认端口873
          
模块参数
[backup]                       //这里是认证的模块名,在client端须要指定
path = /home/backup/           //须要作镜像的目录,不可缺乏!
comment = This is a test       //这个模块的注释信息 
ignore errors                  //能够忽略一些无关的IO错误
read only = yes               // 只读
list = no                     //不容许列文件
auth users = rsync          //认证的用户名,若是没有这行则代表是匿名,此用户与系统无关
secrets file = /etc/rsync.pas           //密码和用户名对比表,密码文件本身生成
hosts allow = 192.168.1.1,10.10.10.10      //容许主机
hosts deny = 0.0.0.0/0                   //禁止主机
#transfer logging = yes

pid file = /var/run/rsyncd.pid      //pid文件的存放位置
lock file = /var/run/rsync.lock     //锁文件的存放位置
log file = /var/log/rsyncd.log      //日志记录文件的存放位置
 

三、配置rsync密码(在上边的配置文件中已经写好路径) 

/etc/rsync.pas(名字随便写,只要和上边配置文件里的一致便可),格式(一行一个用户) 帐号:密码
#vi /etc/rsync.pas
例子:
rsync:111111
权限:由于rsync.pas存储了rsync服务的用户名和密码,因此很是重要。要将rsync.pas设置为root拥有, 且权限为600。
cd /etc
chown root.root rsync.pas 
chmod 600 rsync.pas
3.rsyncd.motd(配置欢迎信息,无关紧要)
# vi /etc/rsyncd.motd
rsyncd.motd记录了rsync服务的欢迎信息,你能够在其中输入任何文本信息,如:
Welcome to use the rsync services!
四、让配置生效
service xinetd restart

5、启动rsync server
一、启动rsync服务端(独立启动)
#/usr/bin/rsync --daemon

二、启动rsync服务端 (有xinetd超级进程启动)
# /etc/rc.d/init.d/xinetd reload

六:加入rc.local 
在各类操做系统中,rc文件存放位置不尽相同,能够修改使系统启动时把rsync --daemon加载进去。
#vi /etc/rc.local
加入一行/usr/bin/rsync --daemon

检查rsync
#netstat -a | grep rsync
   tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN   
七.配置rsync client
1)设定密码
#vi /etc/rsync.pas
111111
修改权限
#cd /etc
#chown root.root rsync.pas 
#chmod 600 rsync.pas

二、client链接SERVER
  从SERVER端取文件
/usr/bin/rsync -vzrtopg --progress --delete rsync@192.168.0.60::backup /home/backup --password-file=/etc/rsync.pas

  向SERVER端上传文件
   /usr/bin/rsync -vzrtopg --progress --password-file=/etc/rsync.pas  /home/wwwroot rsync@192.168.0.60::backup

    这个命令将把本地机器/home/backup目录下的全部文件(含子目录)所有备份到RSYNC SERVER(192.168.0.60)的backup模块的设定的备份目录下。
请注意若是路径结束后面带有"/",表示备份该目录下的东东,但不会建立该目录,如不带"/"则建立该目录。
 

三、自动运行
1)vi /usr/local/rsync/time.sh  
#!/bin/bash
/usr/bin/rsync -vzrtopg --progress --delete rsync@192.168.0.60::backup /home/backup --password-file=/etc/rsync.pas
2) crontab -e
加入55 * * * * /usr/local/rsync/time.sh     

 

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端指定认证用户的密码。
这样就能够在脚本中使用而无需交互式地输入验证密码了,这里须要注意的是这份密码文件权限属性要设得只有属主可读。
rsync@192.168.0.217::backup
hening是指server端指定认证的用户
192.168.0.217是指服务器端的ip
::backup 表示服务器端须要同步的模块名称;
/home/quack/backup/$DATE是同步后的文件指存放在本机的目录地址。
/var/log/rsync.$DATE是同步后的日志文件存放在本机的目录地址

1.配置主控端 uid = nobody gid = nobody use chroot = no max connections = 4 stirict modes = yes port = 873 [backup] path =/home/backup comment = This is a test ignore errors read only = false list = no hosts allow = 192.168.0.200 hosts deny = 0.0.0.0/0 auth users =rsync secrets file =/etc/rsyncd.pw pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log

相关文章
相关标签/搜索