Jutilise une machine Linux (centos), je me suis déjà connecté à lautre système en utilisant ssh
. Maintenant, ma question est de savoir comment puis-je copier des fichiers dun système vers un autre système?
Supposons que, dans mon environnement, jai deux systèmes comme System A
et System B
. Je » m en utilisant System A
machine et une autre en utilisant System B
machine.
Comment puis-je copier un fichier de System B
vers System A
? Et copiez un fichier de System A
vers System B
?
Commentaires
- Je trouve que
scp
est souvent une pierre grasse. Si cela répond à vos besoins, essayez ceci linuxjournal.com/article/8904 Il monte le système de fichiers distant localement. - @Alan Je pense que vous voulez dire » encombrant « ? Cumber Stone est une carte Magic 😉
- quelque peu liée: créer une archive chiffrée de
dir/
sur un ordinateur distant en utilisantssh
:tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
- Si vous avez accès au ftp du serveur distant, nous pouvons également utiliser wget pour télécharger comme
$wget -r --level=9 --no-parent --reject "index.html*" ftp://<USERID>:<PASSWORD>@<MACHINE-NAME>/path/to
Reference1 Reference2 - Non dupliquée, la question liée demande spécifiquement de ne pas utiliser
scp
; pour celui-là,scp
est le moyen le plus simple et le plus simple de répondre, donc les mods suppriment le drapeau en double comme si quelquun allait vers un autre, la réponse la plus utile sera manquée.
Réponse
Syntaxe:
scp <source> <destination>
À copier un fichier de B
vers A
en étant connecté à B
:
scp /path/to/file username@a:/path/to/destination
Pour copier un fichier de B
vers A
tout en étant connecté à A
:
scp username@b:/path/to/file /path/to/destination
Commentaires
Réponse
Au cas où vous auriez besoin dune autre approche.
Installez sshfs. si vous utilisez ubuntu / debian:
sudo apt-get install sshfs
ou, si vous utilisez centos / rhel:
sudo yum install fuse-sshfs
ou, sous macOS
brew install sshfs
Créer un répertoire vide
mkdir /home/user/testdir
« lier » ou « monter » les deux répertoires
sshfs [email protected]:/remote/dir /home/user/testdir
« dissocier » les répertoires
fusermount -u /home/user/testdir
Sous BSD et macOS, pour démonter le système de fichiers:
umount mountpoint
ou
diskutil unmount mountpoint
Pour en savoir plus, cliquez ici, linuxjournal.com libfuse / sshfs
Commentaires
- La question indique spécifiquement que le système dexploitation en question est CentOS; pas dérivé de Debian.
apt-get
est un Debianisme; le gestionnaire de packages correct seraityum
ou, pour les versions vraiment anciennes de CentOS,up2date
ourpm
. - +1 la réponse à cette question est peut-être hors contexte, mais cela ma quand même aidé, et pour autant que je sache, dautres aussi.
- Sans rapport, mais ça ‘ une réponse dun million de dollars xD
- Si je comprends bien, cela donne ACCÈS aux fichiers distants, mais ne les COPIE pas?
- @ ToolmakerSteve vous ‘ avez parfaitement raison: il crée un faux répertoire (montage), afin que vous puissiez utiliser tous vos outils préférés pour copier ou déplacer des choses:
cp
,mv
,rm
,rsync
,unison
… La commandescp
ne pourrait copier que des fichiers.
Réponse
Parfois, vous devez avoir de la fantaisie avec 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 -
Commentaires
- Créativité? Cest ainsi que nous partagions les lecteurs de bande. 🙂
- Pouvez-vous nous dire ce que cela fait? Par exemple, je nai aucune idée de ce que ‘ cron ‘ a à voir avec la copie de fichier!
- @aliqandil opt / widget etc / widget etc / cron.d / widget etc / init.d / widget sont des fichiers individuels à inclure dans larchive tar. Le but était dillustrer pourquoi parfois vous avez besoin de fantaisie. Cette série de commandes diffuse larchive tar via une connexion ssh et la désarchive de lautre côté. Ainsi, aucune archive tar nest jamais écrite sur le disque. Jutilise parfois ceci pour sélectionner des fichiers à copier en une seule commande.
- Ow! Jai appris que le premier ‘ / ‘ était le chemin source! (Quest-ce que cest?) Cétait donc une question idiote! Merci. 🙂
- Tar va chdir vers » / » donc tous les chemins suivants sont relatifs à » / « .
Réponse
Si vous souhaitez synchroniser les fichiers des deux systèmes, jetez un œil au programme rsync
:
Commentaires
- Cest un véritable outil professionnel.
Réponse
Si vous avez lun des systèmes dexploitation courants, vous pouvez installer pigz qui est le même que gzip sauf quil utilisera plusieurs cœurs et soyez plus rapide sur un réseau rapide. Ma commande est un peu différente.
tar cf - -C /opt -S <dir> | pigz | ssh <target> "pigz -d | tar xf - -C /opt -S"
ou lautre façon dobtenir des fichiers
ssh <target> "tar cf - -C /opt -S <dir> | pigz" | pigz -d | tar xf - -C /opt -S
ou sauvegardez la racine fs avec
ssh <target> "tar cf - -C / --one-file-system -S --numeric-owner . | pigz" > root.tgz
Commentaires
Answer
Une méthode plus simple qui fonctionne avec des ordinateurs NVIDIA Jetson contrôlés par SSH consiste à se connecter avec SFTP (SSH File Transfer Protocol).
Supposons que je souhaite déplacer le document UFO_blueprint.odt
des serveurs distants de la NASA et déplacez-le dans mes documents.
-
cd
là où vous voulez que le fichier soit enregistré
$ cd Documents
- Connect
$ sftp sammy@your_server_ip_or_remote_hostname
- Accédez au répertoire qui contient le fichier à transférer.
$ cd NASA/secret_files/
- Transfert
$ get UFO_blueprint.odt
Pour obtenir le répertoire complet, utilisez plutôt
$ get -r secret_files/
Commentaires
- utilisez
put
commande de téléchargement de fichiers
Answer
Copie récursive Unix / Linux de fichiers et de dossiers sur un shell sécurisé en utilisant le code suivant:
scp -r <host@machine_name:from_remote_directory_path> <to_local_directory_path>
Un exemple complet pourrait ressembler à:
scp -r sizwe@hprobook:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects
Notez que si vous navez pas de serveur DNS pour résoudre les noms dhôte, utilisez plutôt votre adresse IP. Lexemple ci-dessus pourrait ressembler à ceci
scp -r 192.168.43.167:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects
Answer
Sils sont en cours dexécution SCP / SSH sur un autre port, assurez-vous de spécifier loption de port majuscule -P
.
Exemple:
scp -P 7121 /users/admin/downloads/* [email protected]:/home/
Commentaires
- Cette question date de sept ans et a de nombreuses réponses déjà. Sil est vrai que ssh peut utiliser des ports non par défaut et que loption ssh client ‘ s
-P
est alors requise, vous ne ‘ t vraiment aider avec le problème à portée de main. Essayez de vous concentrer sur les questions récentes.
scp
pour copier un fichier vers ou depuis votre ordinateur local (Système A) lorsque vous êtes connecté à un serveur distant (Système B) avecssh
.scp
vous connectera au serveur distant, copiera le fichier, puis vous déconnectera à nouveau en un seul processus, alors lancez-le simplement depuis un shell sur votre machine locale. Cela étant dit, vous pouvez utiliserscp
si vous ‘ vous êtes reconnecté au système B via SSH et que vous souhaitez copier des fichiers entre le système B et le système C.-P
pour spécifier le port TCP sur lhôte distant. Cela me surprend à chaque fois, carssh
utilise-p
.