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를 더 쉽게 식별할 수 있습니다 .

답변2

이것맨페이지다음과 같이 말해보세요:

문자 포인터는 역참조되어 C 문자열로 인쇄됩니다. 문자열에서 인쇄되지 않는 문자는 일반적으로 일반 C 이스케이프 코드로 표시됩니다. 문자열의 첫 번째 strsize(기본값 32) 바이트만 인쇄됩니다. 긴 문자열에는 닫는 따옴표 뒤에 줄임표가 추가됩니다.

FD3 및 FD4에 표시되는 것은 아마도 암호화된 데이터일 것입니다(적어도 SSH를 사용하는 경우).

관련 정보