Sto usando una macchina Linux (centos), mi sono già connesso allaltro sistema usando ssh
. Ora la mia domanda è: come posso copiare file da un sistema a un altro?
Supponiamo, nel mio ambiente, di avere due sistemi come System A
e System B
. Sto” utilizzando System A
macchina e qualche altra macchina che utilizza System B
machine.
Come posso copiare un file da System B
a System A
? Inoltre, copia un file da System A
a System B
?
Commenti
- Trovo che
scp
sia spesso un cumber stone. Se può soddisfare le tue esigenze, prova questo linuxjournal.com/article/8904 . Monta localmente il file system remoto. - @Alan Penso che intendi ” ingombrante “? Cumber Stone è una carta Magic 😉
- piuttosto correlata: crea un archivio crittografato di
dir/
sul computer remoto utilizzandossh
:tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
- Se hai accesso allftp del server remoto, possiamo anche usare wget per scaricare come
$wget -r --level=9 --no-parent --reject "index.html*" ftp://<USERID>:<PASSWORD>@<MACHINE-NAME>/path/to
Riferimento1 Riferimento2 - Non duplicato, la domanda collegata richiede specificamente di non utilizzare
scp
; per quellascp
va bene e il modo più semplice come risposta, quindi le mod rimuovono la bandiera duplicata come se qualcuno andasse a unaltra, la risposta più utile sarà persa.
Risposta
Sintassi:
scp <source> <destination>
A copia un file da B
a A
dopo aver eseguito laccesso a B
:
scp /path/to/file username@a:/path/to/destination
Per copiare un file da B
a A
dopo aver effettuato laccesso a A
:
scp username@b:/path/to/file /path/to/destination
Commenti
Risposta
In caso avessi bisogno di un approccio alternativo.
Installa sshfs. se usi ubuntu / debian:
sudo apt-get install sshfs
o, se usi centos / rhel:
sudo yum install fuse-sshfs
oppure, in macOS
brew install sshfs
Crea una directory vuota
mkdir /home/user/testdir
“link” o “monta” le due directory
sshfs [email protected]:/remote/dir /home/user/testdir
“unlink” le directory
fusermount -u /home/user/testdir
Su BSD e macOS, per smontare il filesystem:
umount mountpoint
o
diskutil unmount mountpoint
Per ulteriori informazioni, vedere qui, linuxjournal.com libfuse / sshfs
Commenti
- La domanda specifica che il sistema operativo in questione è CentOS; non derivato da Debian.
apt-get
è un Debianismo; il gestore di pacchetti corretto sarebbeyum
o, per versioni molto vecchie di CentOS,up2date
orpm
. - +1 la risposta a questa domanda potrebbe essere fuori contesto, ma mi ha comunque aiutato e, per quanto ne so, anche altre.
- Non correlato, ma ‘ è una risposta da un milione di dollari xD
- Se ho capito bene, questo dà ACCESS ai file remoti, ma non li COPIA?
- @ ToolmakerSteve ‘ hai perfettamente ragione: crea una falsa directory (mount), in modo che tu possa usare tutti i tuoi strumenti preferiti per copiare o spostare cose:
cp
,mv
,rm
,rsync
,unison
… Il comandoscp
sarebbe in grado di copiare solo file.
Risposta
A volte devi essere fantasioso con tar:
tar -C / -cf - \ opt/widget etc/widget etc/cron.d/widget etc/init.d/widget \ --exclude=opt/widget/local.conf | ssh otherhost tar -C / -xvf -
Commenti
- Creatività? Questo è il modo in cui condividevamo le unità a nastro. 🙂
- Puoi dirci cosa fa? Ad esempio, non ho idea di cosa abbia a che fare ‘ cron ‘ con la copia del file!
- @aliqandil opt / widget etc / widget etc / cron.d / widget etc / init.d / widget sono file individuali da includere nellarchivio tar. Il punto era illustrare perché a volte è necessario essere fantasiosi. Questa serie di comandi trasmette larchivio tar su una connessione ssh e lo disarchivia sullaltro lato. Quindi nessun archivio tar viene mai scritto su disco. A volte lo uso per selezionare i file da copiare in un unico comando.
- Ow! Ho insegnato che il primo ‘ / ‘ era il percorso di origine! (Cosè?) Quindi era una domanda stupida! Grazie. 🙂
- Tar eseguirà il chdir su ” / ” quindi tutti i seguenti percorsi sono relativi a ” / “.
Risposta
Se desideri mantenere sincronizzati i file su entrambi i sistemi, dai unocchiata al rsync
programma:
Commenti
- Questo è un vero strumento professionale.
Risposta
Se hai uno dei sistemi operativi comuni, puoi installare pigz che è lo stesso di gzip tranne per il fatto che utilizzerà più core ed essere più veloce su una rete veloce. Il mio comando è leggermente diverso.
tar cf - -C /opt -S <dir> | pigz | ssh <target> "pigz -d | tar xf - -C /opt -S"
o laltro modo per ottenere i file
ssh <target> "tar cf - -C /opt -S <dir> | pigz" | pigz -d | tar xf - -C /opt -S
o esegui il backup del file root fs con
ssh <target> "tar cf - -C / --one-file-system -S --numeric-owner . | pigz" > root.tgz
Commenti
Risposta
Un metodo più semplice che funziona con computer NVIDIA Jetson controllati tramite SSH consiste nel connettersi con SFTP (SSH File Transfer Protocol).
Supponiamo che io voglia spostare il documento UFO_blueprint.odt
dai server remoti della NASA e spostalo nei miei documenti.
-
cd
dove vuoi salvare il file
$ cd Documents
- Connect
$ sftp sammy@your_server_ip_or_remote_hostname
- Vai alla directory che contiene il file da trasferire.
$ cd NASA/secret_files/
- Trasferisci
$ get UFO_blueprint.odt
Per ottenere la directory completa, utilizza invece
$ get -r secret_files/
Commenti
- usa per caricare file
Risposta
Copia ricorsiva Unix / Linux di file e cartelle su una shell sicura utilizzando il codice seguente:
scp -r <host@machine_name:from_remote_directory_path> <to_local_directory_path>
Un esempio completo potrebbe essere:
scp -r sizwe@hprobook:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects
Nota se non hai un server DNS per risolvere i nomi host, usa invece il tuo indirizzo IP. Lesempio sopra potrebbe essere simile a questo
scp -r 192.168.43.167:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects
Risposta
Se sono in esecuzione SCP / SSH su una porta diversa, assicurati di specificare lopzione -P
maiuscola della porta.
Esempio:
scp -P 7121 /users/admin/downloads/* [email protected]:/home/
Commenti
- Questa domanda ha sette anni e ha molte risposte già. Anche se è vero che ssh può usare porte non predefinite e lopzione ‘ s
-P
del client ssh è quindi richiesta, non devi ‘ t davvero aiutare con il problema a portata di mano. Prova a concentrarti sulle domande recenti.
scp
per copiare un file sul o dal computer locale (Sistema A) mentre sei connesso a un server remoto (Sistema B) conssh
.scp
ti accederà al server remoto, copierà il file, quindi ti disconnetterà di nuovo in un unico processo, quindi eseguilo da una shell sul tuo computer locale. Detto questo, puoi utilizzarescp
se ‘ sei connesso al sistema B tramite SSH e desideri copiare file tra il sistema B e il sistema C.-P
per specificare la porta TCP sullhost remoto. Questo mi cattura ogni volta, perchéssh
utilizza-p
.