Chinaunix首页 | 论坛 | 博客
  • 博客访问: 806567
  • 博文数量: 142
  • 博客积分: 10288
  • 博客等级: 上将
  • 技术积分: 2905
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-03 13:19
文章分类

全部博文(142)

文章存档

2019年(2)

2009年(51)

2008年(89)

分类: BSD

2008-04-25 17:16:39

可以先使用rpm -qa |grep rsync 查看rsync是否已经安装

   rsync命令的用法

  在配置完rsync服务器后,就可以从客户端发出rsync命令来实现各种同步的操作。rsync有很多功能选项,下面就对介绍一下常用的选项:

  rsync的命令格式可以为:

  1. rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
  2. rsync [OPTION]... [USER@]HOST:SRC DEST
  3. rsync [OPTION]... SRC [SRC]... DEST
  4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
  5. rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
  6. rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

  rsync有六种不同的工作模式:

  1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。

  2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。
  3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。
  4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。

  5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。

  6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。


    下面说说rsyns的配置过程
    一. 配置服务器端
    首先编辑 /etc/rsyncd.conf 内容如下:(安装rsync后并不会自动创建该配置文件)
    uid = nobody #进行备份的用户 nobody为任何用户
    gid = nobody #进行备份的组 nobody为任何组
    use chroot = no #不使用chroot
    max connections = 10 #最大连接数
    log file = /var/log/rsyncd.log #日志文件

    [backup] # 这里是认证的模块名
    path = /opt/xia/ #参与同步的目录
    ignore errors # 可以忽略一些无关的IO错误
    read only = yes #只读
    list = no #不允许列清单
    anth users = rsync #认证的用户名
    secrets file = /etc/rsyncd.secrets #密码文件存放地址

    然后在/etc下面编辑一个rsyncd.secrets的密码存放文件
    格式为
    用户名:密码 如 rsync:rsync

    2.设定: /etc/xinetd.d/rsync:
    即#vi /etc/xinetd.d/rsync
    #default: off
    #description:The rsync server is a good addition to am ftp server,as it\
    #       allows crc checksumming etc.
       service rsync
      {
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
       }
    把其中的disable = yes 改为 disable = no之后退出保存就可以了,这还没有完成,还需启动rsync的服务。
    #service xinetd restart
   

    或者使用命令
     rsync --daemon
            重起也是上面的命令
    rsync启动的端口为 873端口

    二. 客户端的配置

        1.设定密码文件
        2.测试rsync执行指令
        3.将rsync指令放入工作排程(crontab)

    说明如下:
   1.设定密码文件
   假设把密码文件放在/root/rsyncd.secrets,内容很简单,只要含有一行密码即可:
   #vi /root/rsyncd.secrets
   rsync
  退出vi编辑模式并保存。
  注:为了安全,设定密码档案的属性为:600。rsyncd.secrets的密码一定要和Rsync Server密码设定档案里的密码一样。如果不同,将会出现  如下的错误:
  @ERROR: auth failed on module backup
  rsync: connection unexpectedly closed (90 bytes read so far)
  rsync error: error in rsync protocol data stream (code 12) at io.c(165)


  2.执行命令为:
  rsync  -vazu --delete   --password-file=/etc/rsyncd.secrets rsync@192.168.0.153::backup  /ttt
    参数 v 表示详细提示
    z 表示压缩
    u 表示只进行更新
    topg 保持文件原有属性如属主、时间的参数
    --progress 指显示
    --delete 指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
    root 为用户名
    @192.168.0.153为服务器IP
    ::后面的backup为认证的模块名
    /home/test 为备份到本地的目录名
    --password-file=/etc/rsyncd.secrets 制定密码存放位置的地址

   3.可以编写脚本 rsync.sh
 
   #!/bin/bash
   /usr/bin/rsync  -vazu --delete   --password-file=/etc/rsyncd.secrets rsync@192.168.0.153::backup  /ttt

    然后将该脚本加入到/etc/crontab文件中 定时执行更新

    # crontab -e

  输入以下一行:

  0,30 * * * *  /root/rsync.sh

  保存退出,这样服务器B每个小时的0分和30分时都会自动运行一次rsync.sh,rsync.sh是负责保持服务器B和服务器A同步的。这样就保证了服务器A的所有更新在30钟后,服务器B也一样取得了和服务器A一样的最新的资料。
阅读(989) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~