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を実行しています。読み書きするデータは圧縮データストリームです。データを理解するには申請する必要があります。収縮解凍アルゴリズムを実行します。

そのフラグを削除すると、zrsync I / Oをより簡単に識別できます。

おすすめ記事