找回密码
 立即注册

rsync命令

[复制链接]
69伙伴 发表于 2023-6-26 03:26:36 | 显示全部楼层 |阅读模式
rsync 是一个能够高效远程更新的文件传输程序,使用快速差分算法。
常用的几个参数

实例:
  1. rsync -av  --size-only --update /usr/local/lighthouse/softwares/btpanel/backup/site /usr/local/lighthouse/softwares/btpanel/backup/database /usr/local/lighthouse/softwares/btpanel/backup/path /usr/local/lighthouse/softwares/btpanel/wwwroot/Web-DB/BackUp

  2. 常用的几个参数为
  3. rsync -av  --size-only --update
  4. rsync -avc --delete

  5. 备注:
  6. 非常重要,默认情况下,rsync 通过比较文件的最后修改时间(mtime)和文件的大小(size)来确认哪些文件需要被同步过去。
  7. 在实际使用时,他的时间比较是非常精准的 毫米级 着就会导致 同步时源和目标文件的 mtime 是不一样的 从而反复同步已有文件

  8. 解决办法:
  9. --modify-window=NUM
  10. 使用降低的精度比较修改时间

  11. --size-only
  12. 跳过匹配大小的文件(就是跳过一样大小的文件)

  13. -c,--checksum
  14. 基于校验而不是修改时间和大小来跳转
  15. (不建议使用,太耗时.常规备份 比较大小最合适.)


  16. --update
  17. 不进行同步 只往远端传送

  18. --delete
  19. 删除远端多余的文件,( 目标端内没有的文件)

  20. -z,--compress
  21. 传输时压缩文件数据。
复制代码


/usr/local/lighthouse/softwares/btpanel/backup/site
/usr/local/lighthouse/softwares/btpanel/backup/database
/usr/local/lighthouse/softwares/btpanel/backup/path
备份到
/usr/local/lighthouse/softwares/btpanel/wwwroot/Web-DB/BackUp




参数 -avc


以下都没用为各种参数手册
____________________________________________________________________________________________________________________________________________


-c,--checksum
基于校验而不是修改时间和大小来跳转

        -a,--archive
归档模式,等于 -rlptgoD(不是 -H,-A,-X)

        -r,--recursive
递归目录

        -d,--dirs
不递归目录。

       -u,--update
接收端较新的文件不进行同步



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

  9. ':' 用法通过远程 shell 连接,而 '::' 和 'rsync://' 用法连接到 rsync 守护程序,并要求 SRC 或 DEST 以模块名称开头。

  10. 选项
  11.         -v,--verbose

  12.                 详细模式

  13.         --info=FLAGS

  14.                 细粒度的详细信息

  15.         --debug=FLAGS

  16.                 细粒度的详细调试信息

  17.         --msgs2stderr

  18.                 用于调试的特殊输出处理

  19.         -q,--quiet

  20.                 不显示非报错信息

  21.         -c,--checksum

  22.                 基于校验而不是修改时间和大小来跳转

  23.         -a,--archive

  24.                 归档模式,等于 -rlptgoD(不是 -H,-A,-X)

  25.         --no-OPTION

  26.                 关闭一个已使用的选项(例如 --no-D)

  27.         -r,--recursive

  28.                 递归目录

  29.         -R,--relative

  30.                 使用关联路径名

  31.         --no-implied-dirs

  32.                 不使用 --relative 发送隐含目录

  33.         -b,--backup

  34.                 创建备份(参考 --suffix 和 --backup-dir)

  35.         --backup-dir=DIR

  36.                 创建备份 DIR

  37.         --suffix=SUFFIX

  38.                 设置备份的后缀

  39.         -u,--update

  40.                 接收端较新的文件不进行同步

  41.         --inplace

  42.                 rsync 默认创建新副本,并在完成后放到新位置。但这个选项会直接将数据写到新                  位置。

  43.         --append

  44.                 使用将数据追加到文件末尾的方式更新文件,这是假设前边的数据都一致。如果                    接收端的文件比发送端的大小更大或一样,则跳过这个文件。

  45.         --append-verify

  46.                 和 --append 选项类似,但接收端的现有数据包含在完整文件校验和验证步骤中,                  如果最终验证步骤失败,这将导致重新发送文件。

  47.         -d,--dirs

  48.                 不递归目录。

  49.         -l,--links

  50.                 将软链作为软链同步。

  51.         -L,--copy-links

  52.                 同步软链指向的文件或目录,而不是软链本身。

  53.         --copy-unsafe-links

  54.                 只同步“不安全的”软链。

  55.         --safe-links

  56.                 忽略指向资源树以外的软链。

  57.         --munge-links

  58.                 munge 软链接使它们更安全(但无法使用)。

  59.         -k,--copy-dirlinks

  60.                 将指向目录的软链接转换为所指目录。

  61.         -K,--keep-dirlinks

  62.                 将接收端的软链目录视为普通目录。

  63.         -H,--hard-links

  64.                 保留硬链接。

  65.         -p,--perms

  66.                 保留权限。

  67.         -E,--executability

  68.                 保留文件的执行能力。

  69.         --chmod=CHMOD

  70.                 影响文件和/或目录的权限。

  71.         -A,--acls

  72.                 保留ACL(隐含 --perms)。

  73.         -X,--xattrs

  74.                 保留扩展参数。

  75.         -o,--owner

  76.                 保留属主(超级用户专享)。

  77.         -g,--group

  78.                 保留属组。

  79.         --devices

  80.                 保留设备文件(超级用户专享)。

  81.         --copy-devices

  82.                 作为标准文件复制设备内容。

  83.         --specials

  84.                 保留特殊文件。

  85.         -D

  86.                 等于 --devices --specials

  87.         -t,--times

  88.                 保留修改时间。

  89.         -O,--omit-dir-times

  90.                 忽略从 --times 得到的目录。

  91.         -J,--omit-link-times

  92.                 忽略从 --times 得到的软链。

  93.         --super

  94.                 接收端尝试以超级用户执行。

  95.         --fake-super

  96.                 保存/恢复在使用 --xattrs 时的权限。

  97.         -S,--sparse

  98.                 有效地处理稀疏文件。

  99.         --preallocate

  100.                 写入目标文件之前预分配。

  101.         -n,--dry-run

  102.                 执行不做更改的试运行。

  103.         -W,--whole-file

  104.                 使用此选项,不使用 rsync 的 delta-transfer 算法,而是按原样发送整个文件。

  105.         -x,--one-file-system

  106.                 在当前文件系统中。

  107.         -B,--block-size=SIZE

  108.                 强制固定的校验和的 block-size。

  109.         -e,--rsh=COMMAND

  110.                 指定要使用的远程的 shell。

  111.         --rsync-path=PROGRAM

  112.                 指定在远程机器上运行的 rsync。

  113.         --existing

  114.                 不在接收端创建新文件。

  115.         --ignore-existing

  116.                 不更新接收端存在的文件。

  117.         --remove-source-files

  118.                 删除发送端的已同步的文件。

  119.         --del

  120.                 --delete-during 的别名。

  121.         --delete

  122.                 在接收端删除发送端没有的文件。

  123.         --delete-before

  124.                 接收端在同步前删除。

  125.         --delete-during

  126.                 接收端在同步时删除。

  127.         --delete-delay

  128.                 在传输期间计算接收方的文件删除(如 --delete-during),然后在传输完成后删                      除。

  129.         --delete-after

  130.                 接收端在同步之后删除。

  131.         --delete-excluded

  132.                 从接收端删除排除的文件。

  133.         --ignore-missing-args

  134.                 忽略因找不到源参数的报错。

  135.         --delete-missing-args

  136.                 从接收端删除找不到的源参数。

  137.         --ignore-errors

  138.                 即使是I/O报错也删除。

  139.         --force

  140.                 即使是非空目录也强制删除。

  141.         --max-delete=NUM

  142.                 删除最多 NUM 个文件。

  143.         --max-size=SIZE

  144.                 大于 SIZE 的文件不删除。

  145.         --min-size=SIZE

  146.                 小于 SIZE 的文件不删除。

  147.         --partial

  148.                 保留部分(未完成)传输的文件。

  149.         --partial-dir=DIR

  150.                 将部分(未完成)传输的文件放到 DIR 中。

  151.         --delay-updates

  152.                 将所有更新的文件放到传输的最后。

  153.         -m,--prune-empty-dirs

  154.                 从文件列表中去掉空目录。

  155.         --numeric-ids

  156.                 不要按用户/组名映射 uid/gid 值。

  157.         --usermap=STRING

  158.                 设置用户名映射。

  159.         --groupmap=STRING

  160.                 设置组名映射。

  161.         --chown=USER:GROUP

  162.                 单用户名/组名映射。

  163.         --timeout=SECONDS

  164.                 以秒为单位设置I/O超时。

  165.         --contimeout=SECONDS

  166.                 以秒为单位设置守护连接超时。

  167.         -I,--ignore-times

  168.                 不跳过匹配大小和修改时间的文件。

  169.         -M,--remote-option=OPTION

  170.                 只把 OPTION 发给远端。

  171.         --size-only

  172.                 跳过匹配大小的文件。

  173.         --modify-window=NUM

  174.                 使用降低的精度比较修改时间。

  175.         -T,--temp-dir=DIR

  176.                 在 DIR 目录中创建临时文件。

  177.         -y,--fuzzy

  178.                 如果接收端找不到对应文件,找一个相似文件做基准。

  179.         --compare-dest=DIR

  180.                 比较相对于 DIR 的接收端文件。

  181.         --copy-dest=DIR

  182.                 类似 --compare-dest,包括将不变的文件从 DIR 拷贝到接收端目录。

  183.         --link-dest=DIR

  184.                 类似 --copy-dest,包括将不变的文件从 DIR 硬链接到接收端目录。

  185.         -z,--compress

  186.                 传输时压缩文件数据。

  187.         --compress-level=NUM

  188.                 设置压缩等级。

  189.         --skip-compress=LIST

  190.                 以 LIST 作为后缀的文件不压缩。

  191.         -C,--cvs-exclude

  192.                 自动忽略和 CVS 相同算法的文件。

  193.         -f,--filter=RULE

  194.                 设置文件过滤规则。

  195.         -F

  196.                 等于 --filter='dir-merge /.rsync-filter',第二次使用等于 --filter='exclude .rsync-filter'

  197.         --exclude=PATTERN

  198.                 排除匹配 PATTERN 的文件。

  199.         --exclude-from=FILE

  200.                 从 FILE 读取排除规则。

  201.         --include=PATTERN

  202.                 包括匹配 PATTERN 的文件。

  203.         --include-from=FILE

  204.                 从 FILE 读取包括规则。

  205.         --files-from=FILE

  206.                 从 FILE 中读取源文件列表。

  207.         -0,--from0

  208.                 所有 *-from/filter 文件用 0 分隔。

  209.         -s,--protect-args

  210.                 没有空间分割,只有通配符特殊字符。

  211.         --address=ADDRESS

  212.                 将传出套接字的地址绑定到守护进程。

  213.         --port=PORT

  214.                 指定双冒号备用端口号。

  215.         --sockopts=OPTIONS

  216.                 指定设置 TCP 选项。

  217.         --blocking-io

  218.                 使用块 I/O 作为远程 shell。

  219.         --stats

  220.                 设置文件传输 stats。

  221.         -8,--8-bit-output

  222.                 使输出中的高位字符不转义。

  223.         -h,--human-readable

  224.                 可读性好的方式输出数字。

  225.         --progress

  226.                 展示传输进度。

  227.         -P

  228.                 等于 --partial --progress

  229.         -i,--itemize-changes

  230.                 输出一个源端和目的端的文件的区别的一个报告。有区别的文件会展示文件名和                    一个11位的字符串(YXcstpoguax)标示出具体区别。

  231.                 Y代表更新方式:

  232.                         <        发送到远端

  233.                         >        从远端发来

  234.                         c        改变或创建

  235.                         h        硬链接

  236.                         .         未更新

  237.                         *         列表其余部分包括一个消息

  238.                 X代表文件类型:

  239.                         f         文件

  240.                         d        目录

  241.                         L         软链

  242.                         D        设备

  243.                         S         特殊文件(命名套接字或管道)

  244.                 其他位每位只有两个值,字母或'.':

  245.                         c 表示常规文件具有不同的校验和(需要 --checksum)或符号链接、设备或                          特殊文件具有更改的值。

  246.                         s 表示常规文件的大小不同,将通过文件传输进行更新。

  247.                         t 表示修改时间不同,正在更新为发送端的值(需要 --times)。t 的另一个                              值意味着修改时间将设置为传输时间,这发生在没有 --times 的情况下更新文                          件/符号链接/设备以及更改符号链接并且接收者无法设置其时间时。

  248.                         p 表示权限不同,正在更新为发送端的值(需要 --perms)。

  249.                         o 表示所有者不同并且正在更新为发送端的值(需要 --owner 和超级用户权                            限)。

  250.                         g 表示组不同并且正在更新为发送端的值(需要 --group 和设置组的权限)。

  251.                         u 暂时用不到。

  252.                         a 表示ACL信息发生了变化。

  253.                         x 表示扩展参数信息发生了变化。

  254.         --out-format=FORMAT

  255.                 使用格式 FORMAT 输出更新。

  256.         --log-file=FILE

  257.                 输出日志到 FILE。

  258.         --log-file-format=FMT

  259.                 使用格式 FMT 记录更新。

  260.         --password-file=FILE

  261.                 从 FILE 中读取可访问传输守护进程的密码。

  262.         --list-only

  263.                 只列出文件,不复制。

  264.         --bwlimit=RATE

  265.                 限制套接字I/O带宽。

  266.         --outbuf=N|L|B

  267.                 设置输出缓冲区为 None,Line或Block。

  268.         --write-batch=FILE

  269.                 向 FILE 写入批量更新。

  270.         --only-write-batch=FILE

  271.                 类似 --write-batch,但排除在创建批量任务时接收端没有更新的情况。

  272.         --read-batch=FILE

  273.                 从 FILE 读取批量更新。

  274.         --protocol=NUM

  275.                 强制使用较老的协议版本。

  276.         --iconv=CONVERT_SPEC

  277.                 请求文件名的字符集转化。

  278.         --checksum-seed=NUM

  279.                 设置块/文件校验和种子(高级)。

  280.         -4,--ipv4

  281.                 优先使用ipv4。

  282.         -6,--ipv6

  283.                 优先使用ipv6。

  284.         --version

  285.                 打印版本号。

  286.         --help

  287.                 展示帮助文档。
复制代码

https://blog.csdn.net/yspg_217/article/details/122326503


------------
man rsyncd.conf
服务端配置主配置文件 /etc/rsyncd.conf
  1. # RSYNC Config
  2. # 指定传输文件使用的用户
  3. uid = rsync
  4. # 指定传输文件使用的用户组
  5. gid = rsync
  6. # 安全设置,切换到安全目录
  7. use chroot = no
  8. # 最大连接数
  9. max connections = 10
  10. # 客户端超时时间,单位秒,设置为 0 不超时
  11. timeout = 900
  12. # PID 文件
  13. pid file = /var/run/rsyncd.pid
  14. # 锁文件
  15. lock file = /var/run/rsync.lock
  16. # 日志文件
  17. log file = /var/log/rsyncd.log
  18. # 日志记录方式
  19. transfer logging = yes
  20. # 忽略文件
  21. exclude = lost+found/
  22. # 忽略不可读文件
  23. ignore nonreadable = yes
  24. # 传输时不压缩的文件
  25. dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
  26. # 现在的版本需要添加,保留文件的完整属性
  27. fake super = yes

  28. # 模块
  29. [data]
  30.     # 对应的目录
  31.     path = /data
  32.     # 传输的删除时忽略 I/O 错误,报错会跳过--delete
  33.     ignore errors
  34.     # 允许写入
  35.     read only = false
  36.     # 不允许列出
  37.     list = false
  38.     # 允许的网段,多个使用空格隔开
  39.     hosts allow = 192.168.200.0/24
  40.     # 拒绝的网段,拒绝所有
  41.     hosts deny = 0.0.0.0/32
  42.     # 连接的虚拟用户,非系统用户
  43.     auth users = rsync_user
  44.     # 虚拟用户的账号密码文件
  45.     secrets file = /etc/rsync-data.password
  46.     # 注释说明
  47.     comment = Test file share
复制代码

https://blog.csdn.net/jiaofan_yun/article/details/122379546


临时交流 ⇨点我留言
【附件·直下】非必要·勿注册

网格·联系我们 ( 京ICP备16001788号|京公网安备 11010502049360号 ) | 网站地图 | 2012- WGPro.CoM |

GMT+8, 2024-4-27 15:56

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表