Comment copier un fichier sur une autre machine via un terminal?

39

Ubuntu 10.04 tourne sous VMPlayer. Et j'ai une autre machine (routeur Asus RT-N16). Je peux me connecter au routeur avec telnet et voir son système de fichiers. Comment copier le fichier de la machine locale (le fichier / home / utilisateur / helloworld-c ) sur le routeur (dossier * / tmp / mnt / discb_1 *)?

LA_
la source

Réponses:

77

Est-il possible de se connecter via SSH? Peut-être devriez-vous envisager l’utilité de "scp". C'est très simple, regardez la page de manuel :

man scp

L'utilisation très basique:

scp remote_user@remote_host:/path/to/remote/file /path/to/local/file

et vice versa:

scp /path/to/local/file remote_user@remote_host:/path/to/remote/file
Pavel S.
la source
Merci, ça marche! Comment puis-je faire la même chose avec tout le dossier?
LA_
4
Utilisez l'option "-r": scp -r utilisateur @ hôte: / chemin / fichier / chemin / local. Veuillez marquer la réponse comme acceptée si cela fonctionne.
Pavel S.
Il suffit de regarder la page de manuel pour scp (dans terminal, tapez "man scp"). Il y a beaucoup plus d'options.
Pavel S.
Comment puis-je copier des dossiers avec des fichiers, cette commande ne copiant que des fichiers
amit_game
@LA_ vous pouvez compresser tous les fichiers.
Silvio Delgado
12

Pour copier un répertoire non vide de l'ordinateur distant sur votre ordinateur:

scp -r [email protected]:/home/vrc/Desktop/www /home/ourusername/Desktop

Pour copier un fichier, excluez simplement l' -roption:

scp [email protected]:/home/vrc/Desktop/file1 /home/ourusername/Desktop

Pour copier de votre ordinateur vers l'ordinateur distant, il suffit de changer l'emplacement et la destination dans l'exemple précédent. Pour plus d'infos faire man scp.

Errakeshpd
la source
10

Une autre façon de faire: (via un fichier pem)

Si vous voulez utiliser le pemfichier et que vous êtes ROOTutilisateur:

1. utilisateur root:

sudo scp -i ~/servers/your-key.pem ~/your-local-source-path/your-local-file.txt [email protected]:/you-server-destination-path/

notez les deux points :entre le serveur IPet le chemin de destination.

si je ne peux pas me connecter avec l' rootutilisateur, passez à l'étape 2.

2. utilisateur standard:

supposons que vous soyez ubuntuutilisateur avec des privilèges standard.

sudo scp -i ~/servers/your-key.pem ~/your-local-source-path/your-local-file.txt [email protected]:/home/ubuntu/

cela mettra le fichier dans le répertoire personnel. puis connectez-vous au serveur distant avec l'utilisateur standard. et fait

sudo su

vous passerez à rootutilisateur. puis déplacez le fichier dans le répertoire de destination

mv /home/ubuntu/your-local-file.txt /you-server-destination-path/your-local-file.txt

Je rencontre souvent ce problème, partageant donc une autre façon de faire le travail!

Kaleem Ullah
la source