Hoe kopieer ik een map van een remote naar een lokale host met scp
?
Ik gebruik ssh
om in te loggen op mijn server.
Daarna wil ik de externe map foo
kopiëren naar de lokale /home/user/Desktop
.
Hoe kan ik dit bereiken?
scp -r [email protected]:/path/to/foo /home/user/Desktop/
Van man scp
(Zie online handleiding)
-r Recursief kopiëren van hele mappen
Om de volledige kracht van scp te gebruiken, moet je de volgende stappen doorlopen:
Dan, bijvoorbeeld als u dit ~/.ssh/config:
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
bespaar je jezelf het invoeren van wachtwoorden en vereenvoudig je de scp syntaxis op deze manier:
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
Meer nog, je zal in staat zijn om remote path-completion te gebruiken:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Update:
Om bash-aanvullen op afstand mogelijk te maken moet je bash-shell op zowel <source>
als <target>
hosts hebben, en goed werkende bash-aanvullen. Voor meer informatie zie gerelateerde vragen:
Hoe autocompletion aan te zetten voor paden op afstand bij gebruik van scp?
SCP bestandsnaam tabblad voltooiing
Het is beter om eerst de catalogus op de externe server te comprimeren:
tar czfP backup.tar.gz /path/to/catalog
Ten tweede, download van de remote server:
scp [email protected]:/path/to/backup.tar.gz .
Aan het einde, pak de bestanden uit:
tar -xzvf backup.tar.gz