Como o rsync codifica nomes de arquivos?

0

Usando strace no processo rsync ativo, posso ver a saída como:

read(4, "9
/usr/bin/time /usr/bin/ionice -c3 /usr/bin/rsync -cavzP --fake-super --exclude=' bla bla...' --bwlimit=40000 / backup@backup:/mnt/storagedisk/workstation-backup/
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/
read(4, "9
/usr/bin/time /usr/bin/ionice -c3 /usr/bin/rsync -cavzP --fake-super --exclude=' bla bla...' --bwlimit=40000 / backup@backup:/mnt/storagedisk/workstation-backup/
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/
%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 16384) = 61 write(3, "75mD0e3:70135 734d233i712m'24\n1"..., 96) = 96
%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 16384) = 61 write(3, "75mD0e3:70135 734d233i712m'24\n1"..., 96) = 96

Fiz algumas pesquisas no Google e não consegui uma boa resposta, mas alguém poderia me explicar como entender a codificação acima?

Eu assumo que é algum tipo de codificação onde cada caractere é escapado, e que as chamadas de leitura e gravação acima estão usando nomes de arquivos. Então, o que tudo isso significa, e como eu poderia convertê-lo facilmente para strings legíveis por humanos?

Minhas desculpas por não fornecer informações mais detalhadas no lançamento inicial! O que eu estava fazendo era executar um comando como:

%pre%

ps aux | grep rsync mostraria algo como:

%pre%

Para ser honesto, neste ponto, não tenho certeza se foi o processo número 2 ou 3 na lista em que me conectei com strace . Acho que foi o processo número 2 nessa lista, e fiquei um pouco surpreso por não ter visto nomes de arquivos na saída strace , mas também pode ter sido o processo 3, e então faz sentido que a leitura / as gravações são conteúdo transferido pela rede.

Minhas desculpas novamente por não fornecer informações detalhadas na primeira vez que perguntei, e minha pergunta inicial agora parece um pouco distante, já que eu não entendi exatamente o que estava vendo, então ou a questão toda deve ser reformulada, ou excluído inteiramente porque não era muito específico. Eu deixei os mods decidirem. :)

    
por NordicViking 11.09.2014 / 13:59

2 respostas

1

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

Você está executando o rsync com o sinalizador que diz para executar sua própria compactação. Os dados que você está vendo sendo lidos e gravados são o fluxo de dados compactados. Para entender os dados, você deve aplicar o algoritmo de descompactação DEFLATE a ele.

Se você remover o sinalizador z , a E / S do rsync provavelmente será mais reconhecível.

    
por 19.09.2014 / 16:48
0

A página de manual diz o seguinte:

Character pointers are dereferenced and printed as C strings. Non-printing characters in strings are normally represented by ordinary C escape codes. Only the first strsize (32 by default) bytes of strings are printed; longer strings have an ellipsis appended following the closing quote.

O que você está vendo em FD3 e FD4 é provavelmente os dados criptografados (pelo menos você usa o ssh).

    
por 11.09.2014 / 15:03