Kako kopirati mapo iz oddaljenega v lokalnega gostitelja z uporabo scp
?
Za prijavo v strežnik uporabljam ssh
.
Nato bi rad kopiral oddaljeno mapo foo
v lokalno mapo /home/user/Desktop
.
Kako to doseči?
scp -r [email protected]:/path/to/foo /home/user/Desktop/
Iz man scp
(Glej spletni priročnik)
-r Rekurzivno kopiranje celotnih imenikov
Če želite izkoristiti vso moč scp, morate opraviti naslednje korake:
Če imate na primer to ~/.ssh/config:
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
si boste prihranili vnos gesla in poenostavili sintakso scp, kot je ta:
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
Poleg tega boste lahko uporabljali oddaljeno dokončanje poti:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Posodobitev:
Za omogočanje oddaljenega dopolnjevanja poti bash morate imeti na obeh gostiteljih <source>
in <target>
bash-shell ter pravilno delujoče dopolnjevanje poti bash. Za več informacij glejte sorodna vprašanja:
[Kako omogočiti samodejno dokončanje za oddaljene poti pri uporabi scp?] (https://unix.stackexchange.com/questions/33336/how-to-enable-autocompletion-for-remote-paths-when-using-scp)
Dopolnjevanje zavihka imena datoteke SCP
Bolje je najprej stisniti katalog v oddaljenem strežniku:
tar czfP backup.tar.gz /path/to/catalog
Drugič prenesite z oddaljenega strežnika:
scp [email protected]:/path/to/backup.tar.gz .
Na koncu izločite datoteke:
tar -xzvf backup.tar.gz