rsync 如何编码文件名?

rsync 如何编码文件名?

strace通过在活动进程上使用rsync,我可以看到如下输出:

read(4, "9\0\0\7\1\10\0\1\10\0\1\10\0\1\10\0\1\10\0\1\10\0\1\10\0\1\10\0\1\10\0\1"..., 16384) = 61
write(3, "\357\265mD0e\233:\337\250\241\363\255 \307\5\213\224d\322\323\203i\2671\222m'\252\354\n\211"..., 96) = 96

我已经做了一些谷歌搜索,但没有找到一个好的答案,但是有人可以向我解释如何理解上面的编码吗?

我假设这是某种编码,其中每个单个字符都被转义,并且上面的读取和写入调用使用文件名。那么这一切意味着什么,以及如何将其轻松转换为人类可读的字符串?

我很抱歉没有在最初的帖子中提供更详细的信息!我正在做的是运行如下命令:

/usr/bin/time /usr/bin/ionice -c3 /usr/bin/rsync -cavzP --fake-super --exclude=' bla bla...' --bwlimit=40000 / backup@backup:/mnt/storagedisk/workstation-backup/

ps aux | grep rsync然后会显示类似以下内容:

root      7875  0.0  0.0   4064   348 pts/5    S+   20:29   0:00 /usr/bin/time /usr/bin/ionice -c3 /usr/bin/rsync -cavzP --fake-super --exclude=... --bwlimit=40000 / backup@backup:/mnt/storagedisk/workstation-backup
root      7876 15.3  0.2  52656  8384 pts/5    D+   20:29   0:02 /usr/bin/rsync -cavzP --fake-super --exclude=...  --bwlimit=40000 / backup@backup:/mnt/storagedisk/workstation-backup/
root      7877  0.0  0.0  41680  3252 pts/5    S+   20:29   0:00 ssh -l backup backup rsync --server -vlogDtprcze.iLsf --bwlimit=40000 --partial . /mnt/storagedisk/workstation-backup/

老实说,此时我并不完全确定它是我用 . 连接到的列表中的进程号 2 还是 3 strace。我认为它是该列表中的进程号 2,我有点惊讶我没有在输出中看到文件名strace,但它也可能是进程 3,然后读/写是内容就有意义了通过网络传输。

我再次为第一次询问时没有提供详细信息而道歉,我最初的问题现在看起来有点遥远,因为我不太明白我在看什么,所以整个问题应该重新措辞,或者完全删除为这不是很具体。我让模组决定。 :)

答案1

/usr/bin/rsync -cavzP --fake-super --exclude=' bla bla...' --bwlimit=40000 ...
                   ^-- compress flag

您正在运行 rsync,并带有告诉它执行自己的压缩的标志。您看到的正在读取和写入的数据是压缩数据流。为了理解数据,您必须应用放气对其进行解压算法。

如果您要删除该z标志,rsync I/O 可能会更容易识别。

答案2

联机帮助页说如下:

字符指针被取消引用并打印为 C 字符串。字符串中的非打印字符通常由普通的 C 转义码表示。仅打印字符串的前 strsize(默认为 32)字节;较长的字符串在结束引号后附加了省略号。

您在 FD3 和 FD4 中看到的可能是加密数据(至少在您使用 ssh 时)。

相关内容