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 时)。