Jak skopiować folder ze zdalnego hosta na host lokalny scp
?
Używam ssh
do logowania mojego serwera.
Następnie chciałbym skopiować folder zdalny foo
do lokalnego /home/user/Desktop
.
Jak to osiągnąć?
Jak skopiować folder ze zdalnego hosta na host lokalny scp
?
Używam ssh
do logowania mojego serwera.
Następnie chciałbym skopiować folder zdalny foo
do lokalnego /home/user/Desktop
.
Jak to osiągnąć?
Odpowiedzi:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
Nie dołączając końcowego „/” na końcu foo, przeniesiesz sam katalog (wraz z zawartością), a nie tylko zawartość katalogu.
Od man scp
(patrz instrukcja online )
-r Rekurencyjnie kopiuj całe katalogi
-C
flaga dodaje kompresję, a -c
flaga pozwala przekazywać inne typy szyfrów dla lepszej wydajności, jak scp -c blowfish a@b:something .
widać w odpowiedzi dimuthu
Desktop/foo
lub trzeba będzie Desktop/allcontentsofFooGohere
SCP wydaje się działać dziwne czasami mi się to nie jedno, potem drugi
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
tobą powinien skończyć z Desktop/foo
. Z scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/
tym skończysz z zawartością foo
in Desktop
i wszystkich sub-dirów foo
porozrzucanych podDesktop
Aby w pełni wykorzystać moc SCP , musisz przejść przez kolejne kroki:
Następnie, na przykład, jeśli masz to ~ / .ssh / config :
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
uratujesz się przed wprowadzaniem hasła i uprościsz scp składnię następujący sposób:
scp -r prod:/path/foo /home/user/Desktop # copy to local
scp -r prod:/path/foo test:/tmp # copy from remote prod to remote test
Ponadto będziesz mógł korzystać ze zdalnego uzupełniania ścieżek:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Aktualizacja:
Aby umożliwić zdalne zakończenie bash, musisz mieć powłokę bash na obu hostach <source>
i <target>
hostach oraz poprawnie działającą funkcję bash. Aby uzyskać więcej informacji, zobacz powiązane pytania:
Jak włączyć autouzupełnianie zdalnych ścieżek podczas korzystania z SCP?
Uzupełnianie zakładki SCP z nazwą pliku
Aby skopiować wszystko z lokalizacji lokalnej do lokalizacji zdalnej (przesyłanie)
scp -r /path/from/destination username@hostname:/path/to/destination
Aby skopiować wszystko z lokalizacji zdalnej do lokalizacji lokalnej (pobierz)
scp -r username@hostname:/path/from/destination /path/to/destination
Niestandardowy port, gdzie xxxx
jest niestandardowy numer portu
scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination
Skopiuj bieżący katalog ze zdalnego do lokalnego
scp -r username@hostname:/path/from/file .
Wsparcie:
-r
Rekurencyjnie kopiuj wszystkie katalogi i pliki/
, Uzyskaj pełną lokalizację przezpwd
scp
zastąpi wszystkie istniejące plikihostname
będzie nazwa hosta lub adres IP-P portnumber
Uwaga: Czasami niestandardowy port nie działa, ponieważ port nie jest dozwolony w zaporze, więc upewnij się, że niestandardowy port jest dozwolony w zaporze dla połączeń przychodzących i wychodzących
pwd
aby uzyskać lokalizację i użyj tego samego
Zawsze używam:
scp -r username@IP:/path/to/server/source/folder/ .
. (kropka) : to znaczy current folder
. więc skopiuj z serwera i wklej tylko tutaj.
IP : może być adresem IP jak 125.55.41.311
lub może być hostem ns1.mysite.com
.
.
uwagi na bieżący katalog!
Lepiej najpierw skompresować katalog na zdalnym serwerze:
tar czfP backup.tar.gz /path/to/catalog
Po drugie, pobierz ze zdalnego:
scp user@your.server.example.com:/path/to/backup.tar.gz .
Na koniec wypakuj pliki:
tar -xzvf backup.tar.gz
-C
flagą, jak scp -C a@b:bigfile .
.
A jeśli masz do cholery pliki do pobrania ze zdalnej lokalizacji i jeśli nie dbasz o bezpieczeństwo, spróbuj zmienić domyślne szyfrowanie scp (Triple-DES) na coś w rodzaju „blowfish”.
To znacznie skróci czas kopiowania plików.
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
arcfour
w zastępstwie blowfish
, ale ma wady zabezpieczeń.
Typowy scenariusz
scp -r -P port username@ip:/path-to-folder .
wyjaśnione próbką,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
gdzie,
port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
Pytanie brzmiało, jak skopiować folder ze zdalnego do lokalnego za pomocą scp
polecenia.
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
Ale jest lepszy sposób, aby to zrobić za pomocą sftp
- SSH File Transfer Protocol (również Secure File Transfer Protocol, SFTP) to protokół sieciowy, który zapewnia dostęp do plików, transfer plików i zarządzanie plikami za pomocą dowolnego niezawodnego strumienia danych. (Wikipedia).
$ sftp user_remote@remote_ip
sftp> cd /path/to/remoteDir
sftp> get -r remoteDir
Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00
Aby uzyskać pomoc dotyczącą sftp
polecenia, wpisz help
lub ?
.