Jak pobrać plik z wiersza poleceń? przez ssh?

21

Chcę pobrać pliki ze zdalnego serwera na dysk lokalny i zrobić to z wiersza poleceń. Chcę też móc to zrobić za pośrednictwem SSH. W jaki sposób mogę to zrobić?

Uwaga: zdalny serwer to Ubuntu, lokalny to Mac OS X

Andrzej
źródło

Odpowiedzi:

29

Użyj scp-command, działa na SSH. Przykład:

scp [email protected]:/path/to/file localfile

Działa również w drugą stronę

scp localfile username@host:/path/remotefile

Nazwę użytkownika, ścieżkę i nazwę pliku można pominąć (ale nie :!).

Jak powiedział Iain, SFTP również działa, ale zwykle preferuję scpjego cppodobne użycie.

Ahe
źródło
Rzadziej jestem pewien i popraw mnie, jeśli się mylę, ale myślę, że scp działa również zdalnie do zdalnego, jeśli naprawdę musisz: scp username@remote1:/path/to/file username@remote2:/path/to/file
JMD
czy możesz skopiować katalogi?
Andrew
wymyśliłem to ... -r również rekurencyjnie kopiuje katalogi
Andrew
Zalecam dodanie -popcji podczas kopiowania plików lub folderów za pomocą scp. Kopiuje także atrybuty pliku (znaczniki czasu i flagi). Uważam, że chcę -pczęściej niż tego nie chcę!
joeytwiddle
Możesz także przekierowywać zdalnie na zdalny przez hosta lokalnego, używając -3flagi: scp -3 [email protected]:/files/file1.zip [email protected]:/archivesJest to przydatne, jeśli potrzebujesz użyć klucza prywatnego w celu uzyskania dostępu do obu serwerów znalezionych tylko na localhost: scp -3i /local/path/to/.ssh/private_key dan@host1:/path/to/file.txt miri@host2:/path/to/upload/dir/Pasek postępu jest wyłączony dla -3
Dan Sandland
3

Możesz również użyć rsyncdo tego. Może działać przez SSH.

osgx
źródło
rsync -avvPjest moim ulubionym dla plików i / lub folderów, ale ma jedną wadę: musi być zainstalowany na zdalnym komputerze.
joeytwiddle
Jeśli masz problemy z połączeniem, konieczne może być przekazanie -e sshinstrukcji rsync, aby nawiązała połączenie przez ssh.
joeytwiddle
3

Używam do tego SFTP. Jest to linia poleceń i używa tego samego bezpieczeństwa co SSH.

Iain
źródło
1

Jeśli nie możesz użyć scplub SFTP, możesz użyć tarprzez SSH:

tar cf - . | ssh otherhost "cd /mydir; tar xvf -"

Ten jest również dobry, jeśli masz rzadkie pliki, które inaczej „eksplodują”.

Jimmy Hedman
źródło