Po ssh'owaniu na zdalnym serwerze, jakie byłoby polecenie skopiowania wszystkich plików z katalogu do katalogu lokalnego na moim komputerze?
Po ssh'owaniu na zdalnym serwerze, jakie byłoby polecenie skopiowania wszystkich plików z katalogu do katalogu lokalnego na moim komputerze?
Odpowiedzi:
Z lokalnego komputera:
rsync -chavzP --stats user@remote.host:/path/to/copy /path/to/local/storage
Z lokalnego komputera z niestandardowym portem ssh:
rsync -chavzP -e "ssh -p $portNumber" user@remote.host:/path/to/copy /local/path
Lub ze zdalnego hosta, zakładając, że naprawdę chcesz pracować w ten sposób, a lokalny komputer nasłuchuje na SSH:
rsync -chavzP --stats /path/to/copy user@host.remoted.from:/path/to/local/storage
Zobacz man rsyncwyjaśnienie moich zwykłych przełączników.
/path/to/local/storage. Podoba mi się /path/to/local/storage/copy. Jeśli tego właśnie chcesz świetnie. Jednak częstszym scenariuszem jest skopiowanie zawartości katalogu zdalnego do katalogu lokalnego. Następnie zrobiłbyś to, /path/to/copy/co umieściłoby zawartość w katalogu /path/to/local/storagebez tworzenia lokalnego katalogu kopii.
Jeśli masz dostęp do SSH, nie musisz najpierw SSH, a następnie kopiować, wystarczy użyć Bezpiecznego kopiowania (SCP) z miejsca docelowego.
scp user@host:/path/file /localpath/file
Obsługiwane są znaki wieloznaczne, więc
scp user@host:/path/folder/* /localpath/folder
skopiuje wszystkie zdalne pliki z tego folderu. jeśli skopiujesz więcej niż jeden katalog.
Uwaga -r skopiuje również wszystkie podfoldery i zawartość.
scpzamiast rsync? Uważaj również, aby twoja powłoka nie próbowała się rozszerzać user@host:/path/folder/*, być może używając pojedynczych cudzysłowów ( ').
scpjest, to nie było moje pytanie. Dlaczego nie używałeś rsync? O to właśnie pyta pytanie, nie wymaga ustalonej sesji SSH i jest często szybsze i bardziej wydajne niż scp.
rsyncbezpośrednio z lokalnego komputera.