Zawsze używałem następującą komendę przy kopiowaniu z serwera:
rsync --progress -avze ssh user@host:/path/to/files ./here
. Jednak przyjaciel umysłu pokazał mi, że mogę to po prostu zrobić rsync --progress -avz user@host:/path/to/files ./here
. Pytanie brzmi: czy nie potrzebujesz, -e ssh
dlaczego tak jest?
22
-i
w twoim przykładzie jest opcja ssh lub rsync? A jeśli dotyczy ssh, to czy działa bez pojedynczych cudzysłowów wokół polecenia?Nie potrzebujesz -e ssh, aby używać ssh. W rzeczywistości, jeśli określisz cel jako użytkownik @ host: / ścieżka / do / plików, domyślnie używasz ssh. Zostało to w a) ze względu na kompatybilność i b) na marginesie przypadków, w których możesz mieć kombinację hostów rsyncd i ssh.
źródło
Zależy to od tego, co określono dla
--with-rsh
opcji konfiguracji w czasie kompilacji. Domyślną wartością jest teraz ssh, jeśli ta opcja nie została określona. W przeszłości był to rsh, jednak nawet jeśli jest to rsh, może nie być konieczne, ponieważ ssh może być domyślną implementacją rsh w wielu urządzeniach. Na przykład na wszystkich moich komputerachreadlink -f $(which rsh)
pokazuje, że rsh jest tak naprawdę tylko dowiązaniem symbolicznym wskazującym na / usr / sbin / sshźródło