【问题标题】:What does rsync's "lq%n%Lrq" default output format mean?rsync 的“lq%n%Lrq”默认输出格式是什么意思?
【发布时间】:2021-04-03 13:27:04
【问题描述】:

关于the documentation,可以通过--out-format标志来定义rsync的详细输出格式:

--out-format=FORMAT 输出更新使用指定的FORMAT

--out-format=FORMAT 这允许您在每次更新的基础上准确指定 rsync 客户端输出给用户的内容。格式是文本 包含嵌入的单字符转义序列前缀的字符串 带有百分号 (%) 字符。假定默认格式为 lq%n%Lrq 如果指定了 -v(它报告文件的名称,并且,如果 item 是一个链接,它指向的地方)。有关可能的完整列表 转义字符,请参阅 rsyncd.conf 中的 lqlog formatrq 设置 手册页。指定 --out-format 选项将提及每个文件, 以重要方式更新的目录等(传输的文件, 重新创建的符号链接/设备,或触摸的目录)。此外,如果 itemize-changes 转义 (%i) 包含在字符串中(例如,如果 --itemize-changes 选项),名称的记录增加以提及任何以任何方式更改的项目(只要接收 边至少为 2.6.4)。请参阅 --itemize-changes 选项 lq%irq的输出说明。

这意味着lq%n%Lrq 是默认值。

另外它说lq%irq 在--itemize-changes 部分解释:

lq%irq 转义有一个 11 个字母长的神秘输出。这 一般格式类似于字符串 YXcstpoguax,其中 Y 替换为 正在完成的更新类型,X 被文件类型替换,并且 其他字母表示可能输出的属性,如果它们是 正在修改中。

好的,现在我和以前一样聪明了^^

lq 是什么意思? %irq 或 YXcstpoguax 是什么意思?

In this answer 有人解释了 %t、%f 和 %b,我发现了那些“变量”in the rsyncd.conf documentation,但是虽然有一个包含 lq 和 rq 的示例,但它并没有解释其含义:

默认的日志格式是 lq%o %h [%a] %m (%u) %f %lrq 和 lq%t [%p] rq

【问题讨论】:

  • 如果我猜的话,我会说该站点的 manpage-to-html 转换器正在生成 lq 和 rq 而不是左右引号字符。例如,lq%irq 可能应该只是 "%i" 或其他东西。 (因此将lq%n%Lrq 渲染成"%n%L"。)

标签: logging rsync


【解决方案1】:

lq 应该是左引号,rq 应该是右引号。

来自 Ubuntu 18.04.5 LTS:

--out-format=格式

这允许您准确指定 rsync 客户端在每次更​​新的基础上输出给用户的内容。该格式是一个文本字符串,其中包含以百分号 (%) 字符为前缀的嵌入式单字符转义序列。如果指定了 --info=name 或 -v,则假定默认格式为“%n%L”(这仅告诉您文件的名称,如果项目是链接,则它指向的位置)。有关可能的转义字符的完整列表,请参阅 rsyncd.conf 手册页中的“日志格式”设置。

指定 --out-format 选项意味着 --info=name 选项,它将提及以重要方式更新的每个文件、目录等(传输的文件、重新创建的符号链接/设备或触摸目录)。此外,如果 itemize-changes 转义 (%i) 包含在字符串中(例如,如果使用了 --itemize-changes 选项),则名称记录会增加以提及以任何方式更改的任何项目(只要因为接收方至少为 2.6.4)。有关“%i”输出的描述,请参见 --itemize-changes 选项。

Rsync 将在文件传输之前输出格式不正确的字符串,除非请求传输统计转义之一,在这种情况下,日志记录在文件传输结束时完成。当此延迟日志记录生效并且还指定了 --progress 时,rsync 还将在其进度信息之前输出正在传输的文件的名称(当然,随后是输出格式输出)。

【讨论】:

  • 好吧,这很尴尬,但谢谢你的启发。
猜你喜欢
  • 2013-01-09
  • 2020-10-24
  • 1970-01-01
  • 2020-08-13
  • 1970-01-01
  • 1970-01-01
  • 2020-02-23
  • 2011-05-28
  • 1970-01-01
相关资源
最近更新 更多