• rsync命令详解



    安装
    yum install rsync

    rsync 有六种不同的工作模式。
    rsync [OPTION]... SRC DEST
    rsync [OPTION]... SRC [USER@]host:DEST
    rsync [OPTION]... [USER@]HOST:SRC DEST
    rsync [OPTION]... [USER@]HOST::SRC DEST
    rsync [OPTION]... SRC [USER@]HOST::DEST
    rsync [OPTION]...
    rsync://[USER@]HOST[:PORT]/SRC [DEST]
    拷贝本地文件。当 SRC 和 DES 路径信息都不包含有单个冒号 ":" 分隔符时就启动这种工作模式。
    rsync -a /data /backup
    使用一个远程 shell 程序(如 rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当 DST 路径地址包含单个冒号 ":" 分隔符时启动该模式。
    rsync -avz *.c foo:src
    使用一个远程 shell 程序(如 rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当 SRC 地址路径包含单个冒号 ":" 分隔符时启动该模式。
    rsync -avz foo:src/bar /data
    从远程 rsync 服务器中拷贝文件到本地机。当 SRC 路径信息包含 "::" 分隔符时启动该模式。
    rsync -av root@192.168.78.192::www /databack
    从本地机器拷贝文件到远程 rsync 服务器中。当 DST 路径信息包含 "::" 分隔符时启动该模式。
    rsync -av /databack root@192.168.78.192::www
    列远程机的文件列表。这类似于 rsync 传输,不过只要在命令中省略掉本地机信息即可。
    rsync -v rsync://192.168.78.192/www

    参数选项 说明
    -v,--verbose 详细模式输出。
    -q,--quiet 精简输出模式。
    -c,--checksum 打开校验开关,强制对文件传输进行校验。
    -a,--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于 -rlptgoD。
    -r,--recursive 对子目录以递归模式处理。
    -R,--relative 使用相对路径信息。
    -b,--backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为 ~filename。可以使用 --suffix 选项来指定不同的备份文件前缀。
    --backup-dir 将备份文件(如 ~filename)存放在在目录下。
    -suffix=SUFFIX 定义备份文件前缀。
    -u,--update 仅仅进行更新,也就是跳过所有已经存在于 DST,并且文件时间晚于要备份的文件,不覆盖更新的文件。
    -l,--links 保留软链结。
    -L,--copy-links 像对待常规文件一样处理软链结。
    --copy-unsafe-links 仅仅拷贝指向 SRC 路径目录树以外的链结。
    --safe-links 忽略指向 SRC 路径目录树以外的链结。
    -H,--hard-links 保留硬链结。
    -p,--perms 保持文件权限。
    -o,--owner 保持文件属主信息。
    -g,--group 保持文件属组信息。
    -D,--devices 保持设备文件信息。
    -t,--times 保持文件时间信息。
    -S,--sparse 对稀疏文件进行特殊处理以节省DST的空间。
    -n,--dry-run 现实哪些文件将被传输。
    -w,--whole-file 拷贝文件,不进行增量检测。
    -x,--one-file-system 不要跨越文件系统边界。
    -B,--block-size=SIZE 检验算法使用的块尺寸,默认是 700 字节。
    -e,--rsh=command 指定使用 rsh、ssh 方式进行数据同步。
    --rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息。
    -C,--cvs-exclude 使用和 CVS 一样的方法自动忽略文件,用来排除那些不希望传输的文件。
    --existing 仅仅更新那些已经存在于 DST 的文件,而不备份那些新创建的文件。
    --delete 删除那些 DST 中 SRC 没有的文件。
    --delete-excluded 同样删除接收端那些被该选项指定排除的文件。
    --delete-after 传输结束以后再删除。
    --ignore-errors 及时出现 IO 错误也进行删除。
    --max-delete=NUM 最多删除 NUM 个文件。
    --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输。
    --force 强制删除目录,即使不为空。
    --numeric-ids 不将数字的用户和组id匹配为用户名和组名。
    --timeout=time ip 超时时间,单位为秒。
    -I,--ignore-times 不跳过那些有同样的时间和长度的文件。
    --size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间。
    --modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为 0。
    -T --temp-dir=DIR 在 DIR 中创建临时文件。
    --compare-dest=DIR 同样比较 DIR 中的文件来决定是否需要备份。
    -P 等同于 --partial。
    --progress 显示备份过程。
    -z,--compress 对备份的文件在传输时进行压缩处理。
    --exclude=PATTERN 指定排除不需要传输的文件模式。
    --include=PATTERN 指定不排除而需要传输的文件模式。
    --exclude-from=FILE 排除 FILE 中指定模式的文件。
    --include-from=FILE 不排除 FILE 指定模式匹配的文件。
    --version 打印版本信息。
    --address 绑定到特定的地址。
    --config=FILE 指定其他的配置文件,不使用默认的 rsyncd.conf 文件。
    --port=PORT 指定其他的 rsync 服务端口。
    --blocking-io 对远程 shell 使用阻塞 IO。
    -stats 给出某些文件的传输状态。
    --log-format=formAT 指定日志文件格式。
    --password-file=FILE 从FILE中得到密码。
    --bwlimit=KBPS 限制I/O带宽,KBytes per second。
    -h,--help 显示帮助信息。


    使用方式
    无密码同步
    服务端修改配置文件 /etc/rsyncd.conf
    #This is the rsync daemon configuration

    #global settings
    pid file = /var/run/rsyncd.pid
    port = 873
    lock file = /var/run/rsyncd.lock
    log file = /var/log/rsync.log
    gid = root
    uid = root

    #module settings
    [share_data]
    path = /web/rsync/share_data
    use chroot = no
    max connections = 15
    read only = yes
    write only = no
    list = no
    ignore errors = yes
    timeout = 120
    /usr/bin/rsync --daemon
    mkdir -p /web/rsync/share_data
    客户端同步
    rsync -avz --progress root@192.168.1.98::share_data /home/hadoop/share_data
    客户端限制流量同步
    rsync -avz --bwlimit=50 --progress root@192.168.1.98::share_data /home/hadoop/share_data


    有密码同步
    服务端修改配置文件
    #global settings
    pid file = /var/run/rsyncd.pid
    port = 873
    lock file = /var/run/rsyncd.lock
    log file = /var/log/rsync.log
    gid = root
    uid = root

    #module settings
    [auth_data]
    path = /web/rsync/auth_data
    use chroot = no
    max connections = 15
    read only = yes
    write only = no
    list = no
    ignore errors = yes
    timeout = 120
    auth users = hadoop
    secrets file = /etc/rsyncd.passwd
    echo "hadoop:password123" > /etc/rsyncd.passwd
    chmod 600 /etc/rsyncd.passwd
    mkdir -p /web/rsync/auth_data


    客户端同步
    echo "password123" > /home/hadoop/rsyncd.passwd
    chmod 600 /home/hadoop/rsyncd.passwd
    rsync -avz --progress --password-file=/home/hadoop/rsyncd.passwd hadoop@192.168.1.98::auth_data /home/hadoop/auth_data


    写入同步
    服务端修改配置文件
    #global settings
    pid file = /var/run/rsyncd.pid
    port = 873
    lock file = /var/run/rsyncd.lock
    log file = /var/log/rsync.log
    gid = root
    uid = root

    #module settings
    [write_data]
    path = /web/rsync/write_data
    use chroot = no
    max connections = 15
    read only = no
    list = no
    ignore errors = yes
    timeout = 120
    auth users = hadoop
    secrets file = /etc/rsyncd.passwd
    mkdir -p /web/rsync/write_data


    客户端同步
    echo "123" > /home/hadoop/write_file
    export RSYNC_PASSWORD="password123"
    rsync -avz --progress --delete /home/hadoop/write_file hadoop@192.168.1.98::write_data


    限定 IP 或者网段
    #global settings
    pid file = /var/run/rsyncd.pid
    port = 873
    lock file = /var/run/rsyncd.lock
    log file = /var/log/rsync.log
    gid = root
    uid = root

    #module settings
    [write_data]
    path = /web/rsync/write_data
    use chroot = no
    max connections = 15
    read only = no
    list = no
    ignore errors = yes
    timeout = 120
    auth users = hadoop
    secrets file = /etc/rsyncd.passwd
    hosts allow = 192.168.2.32 192.168.1.0/24

    配置 说明
    pid file = <FILE> 进程写入文件。
    port = 指定端口,默认是 873。
    address = 指定服务器 IP 地址。
    uid = 服务器端传输文件时,指定用户执行,默认 nobody。
    gid = 服务器端传输文件时,指定用户组执行,默认 nobody。
    use chroot = 服务器守护程序将 chroot 到文件系统的目录中,好处在于保护系统不被安装漏洞侵袭。缺点是需要超级用户权限。
    read only = yes|no 只读选择,不让客户端上传文件到服务器上。
    write only = yes|no 写入选择。
    hosts allow = 限制 IP 或网段,可以指定单个 IP,也可以指定整个网段,提高安全性。格式是空格间隔。
    max connections = 客户端最多连接数。
    motd file = <FILE> 用于定义服务器信息,当用户登录时会看到文件中的内容信息。
    log file = <FILE> 服务器的日志。
    transfer logging = yes|no 是否打印传输日志
    log format = 日志格式(%t %a %m %f %b)
    lock file = <FILE> 加锁文件。
    path = <DIR> 指定同步文件目录所在位。
    auth users = 认证用户,必须在服务器上存在的用户。
    list = yes|no 是否把 rsync 服务器上提供同步数据的目录在服务器上模块显示出来。默认为 yes。
    ignore errors 忽略 IO 错误。
    secrets file = <FILE> 密码存放文件,有密码登录时用到。
    comment = 注释可自定义。
    exclude = 排除目录或文件,目录之间可用空格分开。
    rsync 的主要有三个配置文件 rsyncd.conf(主配置文件)、rsyncd.passwd(密码文件)、rsyncd.motd(rysnc 服务器信息)。
    将 rsyncd.passwd 密码文件的文件属性设为 root 拥有,且权限要设为 600,否则无法备份成功。
    出于安全目的,文件的属性必需是只有属主可读。
    密码文件格式为:
    用户名:密码

  • 相关阅读:
    从句分析
    artDialog ( v 6.0.2 ) content 参数引入页面 html 内容
    Java实现 LeetCode 13 罗马数字转整数
    Java实现 LeetCode 13 罗马数字转整数
    Java实现 LeetCode 13 罗马数字转整数
    Java实现 LeetCode 12 整数转罗马数字
    Java实现 LeetCode 12 整数转罗马数字
    Java实现 LeetCode 12 整数转罗马数字
    Java实现 LeetCode 11 盛最多水的容器
    Java实现 LeetCode 11 盛最多水的容器
  • 原文地址:https://www.cnblogs.com/luoyan01/p/9734246.html
Copyright © 2020-2023  润新知