Πώς να αντιγράψετε έναν φάκελο από απομακρυσμένο σε τοπικό υπολογιστή χρησιμοποιώντας το scp
;
Χρησιμοποιώ το ssh
για να συνδεθώ στον διακομιστή μου.
Στη συνέχεια, θα ήθελα να αντιγράψω τον απομακρυσμένο φάκελο foo
στον τοπικό /home/user/Desktop
.
Πώς μπορώ να το πετύχω αυτό;
scp -r [email protected]:/path/to/foo /home/user/Desktop/
Από το man scp
(Βλέπε online εγχειρίδιο)
-r Αναδρομική αντιγραφή ολόκληρων καταλόγων
Για να χρησιμοποιήσετε την πλήρη ισχύ του scp πρέπει να ακολουθήσετε τα επόμενα βήματα:
Στη συνέχεια, για παράδειγμα, αν έχετε αυτό το ~/.ssh/config:
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
θα γλιτώσετε από την εισαγωγή κωδικού πρόσβασης και θα απλοποιήσετε τη σύνταξη scp όπως αυτή:
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
Επιπλέον, θα είστε σε θέση να χρησιμοποιήσετε απομακρυσμένη συμπλήρωση διαδρομής:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Ενημέρωση:
Για την ενεργοποίηση της απομακρυσμένης συμπλήρωσης bash θα πρέπει να έχετε bash-shell και στους δύο hosts <source>
και <target>
, και να λειτουργεί σωστά η συμπλήρωση bash. Για περισσότερες πληροφορίες δείτε τις σχετικές ερωτήσεις:
(https://unix.stackexchange.com/questions/33336/how-to-enable-autocompletion-for-remote-paths-when-using-scp)<br>, Συμπλήρωση καρτέλας ονόματος αρχείου SCP
Καλύτερα να συμπιέσετε πρώτα τον κατάλογο στον απομακρυσμένο διακομιστή:
tar czfP backup.tar.gz /path/to/catalog
Δεύτερον, κατεβάστε από τον απομακρυσμένο:
scp [email protected]:/path/to/backup.tar.gz .
Στο τέλος, εξάγετε τα αρχεία:
tar -xzvf backup.tar.gz