Opção Rsync -e para ssh

Opção Rsync -e para ssh

Tenho tentado descobrir se a opção -e é necessária? Não estou fazendo ssh sem ele simplesmente fazendo user@serverao executar o rsync?

Responder1

Supondo que você não precise considerar o rsyncprotocolo em si, isso depende das opções de compilação usadas para sua versão do rsync.

Costumava ser o caso que rsyncusava o rshprotocolo por padrão (a menos que o padrão de tempo de construção tivesse sido alterado), mas o padrão de tempo de construção mudou para ssh2004.

Em caso de dúvida, inicie o rsyncprocesso transferindo um arquivo relativamente grande (ou coleção de arquivos) e em outro terminal execute ps -ef | grep '[r]sync'. Isso mostrará se você está ou não usando sshum transporte. Aqui está um exemplo de um dos meus servidores, que mostra claramente o sshtransporte:

root     28057 27173  1 09:48 pts/4    00:00:00 rsync -avHP --dry-run /home roaima@otherserver:
root     28058 28057  0 09:48 pts/4    00:00:00 ssh -l roaima otherserver rsync --server -vnlHogDtpre.iLsfx --partial . .

Finalmente, esteja ciente de que o padrão de compilação pode ser substituído pela RSYNC_RSHvariável de ambiente. (Veja a página de manual para mais detalhes.)

Responder2

-eé para quando você deseja um shell remotooutro que não sejao padrão ssh. rsyncusa sshcomo transporte por padrão, mas pode usar qualquer shell remoto (com algumas restrições*), não importacomoele se conecta a um servidor remoto.

* O shell remoto que você usa deve se comportar como um shell. Ele deve interpretar seu argumento zero como o destino e cada argumento seguinte como um comando a ser executado; o comando que o rsync passa pelo shell remoto é um rsync --server …comando que inicia um servidor rsync na extremidade remota. Deve também anexar o seuSTDINpara o comandoSTDIN, e o comandoSTDOUTparaSTDOUT, para que o rsync e o servidor rsync possam se comunicar pelo shell remoto.

informação relacionada