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 rsync
wyjaś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/storage
bez 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ść.
scp
zamiast 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 ( '
).
scp
jest, 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
.
rsync
bezpośrednio z lokalnego komputera.