查看: 488|回复: 0

[基础服务] 史上最简单的RSYNC同步实现上下传方法

[复制链接]
  • TA的每日心情
    奋斗
    2017-8-30 16:53
  • 签到天数: 287 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2016-7-5 19:31:18 | 显示全部楼层 |阅读模式
    本帖最后由 Aicj_rc 于 2016-7-5 20:04 编辑

    一、RSYNC上传下载

    1、rsync介绍

                   对于rsync,相信各位使用过的度知道,目前大部分的中小型公司业务度会有涉及这一块的内容,但是如果使用传统的做法就太麻烦了,因此我自己想出来了另外一种RSYNC的使用方法,希望能给各位带来方便,用法类似于SCP,并且可以显示结果,断点续传。学会以后可以使用这个方法对文件很好的管理。

    2、环境介绍

    #######IP地址############
    A主机:172.16.16.156
    B主机:172.16.16.157
    #######用到的服务##########
    rsync :是一个快速增量文件传输工具
    xinetd:提供了访问控制、加强的日志和资源管理功能

    3、开始安装服务
    yum install -y rsync xinetd

    Installed:
      xinetd.x86_64 2:2.3.14-40.el6                                                                                                

    看到如上提示代表安装完成了

    4、配置免秘钥环境


    1. 1)、在A主机上面创建SSH
    2. [root@test ~]# ssh-keygen
    3. Generating public/private rsa key pair.
    4. Enter file in which to save the key (/root/.ssh/id_rsa):
    5. Created directory '/root/.ssh'.
    6. Enter passphrase (empty for no passphrase):
    7. Enter same passphrase again:
    8. Your identification has been saved in /root/.ssh/id_rsa.
    9. Your public key has been saved in /root/.ssh/id_rsa.pub.
    10. The key fingerprint is:
    11. e0:f0:99:92:2f:75:cf:b7:19:1a:65:9e:44:86:ed:02 root@test
    12. The key's randomart image is:
    13. +--[ RSA 2048]----+
    14. |                 |
    15. |           o     |
    16. |    . . E . +    |
    17. |     = + . +     |
    18. |    o * S . =    |
    19. |     + . o * .   |
    20. |    . .   + =    |
    21. |     .     + +   |
    22. |          . o    |
    23. +-----------------+

    24. 2)、在B主机同上操作

    25. 3)、把A主机的秘钥传送到B主机的/root/.ssh/目录下面即可
    26. [root@test ~]# scp /root/.ssh/id_rsa.pub root@172.16.16.157:/root/.ssh/
    27. The authenticity of host '172.16.16.157 (172.16.16.157)' can't be established.
    28. RSA key fingerprint is c3:cc:54:ad:51:09:74:fe:8a:e5:8f:46:3e:4d:2f:45.
    29. Are you sure you want to continue connecting (yes/no)? yes
    30. Warning: Permanently added '172.16.16.157' (RSA) to the list of known hosts.
    31. root@172.16.16.157's password:
    32. id_rsa.pub                                                                                   100%  391   

    33. 传送完成

    34. 4)、去到B主机上面,进入到/root/.ssh/目录下面执行如下命令即可完成

    35. cat id_rsa.pub >>authorized_keys



    36. </font>
    复制代码
    5、使用操作
    1. rsync参数的具体解释如下:

    2. -v, --verbose 详细模式输出
    3. -q, --quiet 精简输出模式
    4. -c, --checksum 打开校验开关,强制对文件传输进行校验
    5. -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
    6. -r, --recursive 对子目录以递归模式处理
    7. -R, --relative 使用相对路径信息
    8. -b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
    9. --backup-dir 将备份文件(如~filename)存放在在目录下。
    10. -suffix=SUFFIX 定义备份文件前缀
    11. -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
    12. -l, --links 保留软链结
    13. -L, --copy-links 想对待常规文件一样处理软链结
    14. --copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
    15. --safe-links 忽略指向SRC路径目录树以外的链结
    16. -H, --hard-links 保留硬链结     -p, --perms 保持文件权限
    17. -o, --owner 保持文件属主信息     -g, --group 保持文件属组信息
    18. -D, --devices 保持设备文件信息    -t, --times 保持文件时间信息
    19. -S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
    20. -n, --dry-run现实哪些文件将被传输
    21. -W, --whole-file 拷贝文件,不进行增量检测
    22. -x, --one-file-system 不要跨越文件系统边界
    23. -B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
    24. -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
    25. --rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
    26. -C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
    27. --existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
    28. --delete 删除那些DST中SRC没有的文件
    29. --delete-excluded 同样删除接收端那些被该选项指定排除的文件
    30. --delete-after 传输结束以后再删除
    31. --ignore-errors 及时出现IO错误也进行删除
    32. --max-delete=NUM 最多删除NUM个文件
    33. --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
    34. --force 强制删除目录,即使不为空
    35. --numeric-ids 不将数字的用户和组ID匹配为用户名和组名
    36. --timeout=TIME IP超时时间,单位为秒
    37. -I, --ignore-times 不跳过那些有同样的时间和长度的文件
    38. --size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
    39. --modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
    40. -T --temp-dir=DIR 在DIR中创建临时文件
    41. --compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
    42. -P 等同于 --partial
    43. --progress 显示备份过程
    44. -z, --compress 对备份的文件在传输时进行压缩处理
    45. --exclude=PATTERN 指定排除不需要传输的文件模式
    46. --include=PATTERN 指定不排除而需要传输的文件模式
    47. --exclude-from=FILE 排除FILE中指定模式的文件
    48. --include-from=FILE 不排除FILE指定模式匹配的文件
    49. --version 打印版本信息
    50. --address 绑定到特定的地址
    51. --config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
    52. --port=PORT 指定其他的rsync服务端口
    53. --blocking-io 对远程shell使用阻塞IO
    54. -stats 给出某些文件的传输状态
    55. --progress 在传输时现实传输过程
    56. --log-format=formAT 指定日志文件格式
    57. --password-file=FILE 从FILE中得到密码
    58. --bwlimit=KBPS 限制I/O带宽,KBytes per second      
    59. -h, --help 显示帮助信息</font></pre>
    复制代码
    将远程主机文件同步到本地(注:下载):
    1. rsync -avzP --progress  root@172.16.16.157:/usr/local/backup/  /usr/local/backup/
    复制代码
    将本地文件同步到远程主机(注:上传):
    1. rsync -avzP --progress  /usr/local/backup/ root@172.16.16.157:/usr/local/backup/
    复制代码
    6、最终使用结果示范
    看到下面的结果有没发现,和平时我们的SCP命令很像嘛。好了到这里完成了。


    wxid_1721917216012_1467711364542_61.png
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    站长推荐上一条 /1 下一条