web-dev-qa-db-fra.com

Comment copier des fichiers du moteur de calcul Google dans un répertoire local

J'essaie de copier des fichiers de mon instance dans mon répertoire local à l'aide de la commande suivante

gcloud compute scp <instance-name>:~/<file-name> ~/Documents/

Cependant, il montre une erreur comme mentionné ci-dessous

$ USER/Documents /: Est un répertoire

ERREUR: (gcloud.compute.scp) [/ usr/bin/scp] a été quitté avec le code retour [1].

Copier d'un répertoire local vers GCE fonctionne bien.

J'ai consulté le didacticiel de Stanford et la documentation de Google.

J'ai un autre cas où il n'y a pas de problème comme celui-ci.

Je crois un peu que cela pourrait être un problème avec les clés SSH.

Qu'est-ce qui aurait pu mal tourner?

13
oya163

Votre commande est correcte si vos chemins source et de destination sont corrects

La commande que vous avez publiée dans votre question fonctionne pour moi lors de la copie d'un fichier de Google Compute Engine VM sur mon ordinateur local.

$ gcloud compute scp vm1:~/.bashrc ~/Documents/
.bashrc                                          100% 3515     3.4KB/s   00:00

J'ai également essayé de copier la copie d'un autre côté (c'est-à-dire de ma machine locale vers GCE VM) et cela fonctionne:

$ gcloud compute scp ~/Documents/.bashrc vm1:~/temp/
.bashrc                                          100% 3515     3.4KB/s   00:00

$ gcloud compute scp ~/Documents/.bashrc vm1:~/.bashrc-new
.bashrc                                          100% 3515     3.4KB/s   00:00

gcloud s'appuie sur l'exécutable scp présent dans votre PATH. Les arguments que vous fournissez à la commande gcloud scp sont transmis au binaire scp. En supposant que vos chemins source et de destination soient corrects, cela devrait fonctionner.

Copie récursive avec scp

D'après votre message d'erreur particulier, j'ai constaté que cette variation n'apparaissait que lorsque le chemin source à partir duquel vous essayez de copier est un répertoire plutôt qu'un fichier. Dans ce cas particulier, vous pouvez passer un argument --recurse (similaire à l'argument -r pris en charge par scp) qui copiera récursivement tous les fichiers et répertoires du répertoire spécifié.

gcloud compute scp --recurse SRC_PATH DEST_PATH

13
Tuxdude

Tout était parfait sauf que j'essayais d'exécuter ces commandes sur le terminal connecté à GCE au lieu du terminal local.

oyashi@oyashi-torch-instance:~$ gcloud compute scp oyashi-torch-instance:~/spring1617_assignment1.Zip ~/Documents/

/ home/oyashi/Documents /: Est un répertoire ERROR: (gcloud.compute.scp) [/ usr/bin/scp] est sorti avec le code retour [1].

Mais quand j'ai essayé celui-ci sur mon terminal local. C'est arrivé.

oyashi@oyashi:~/Documents$ gcloud compute scp oyashi-torch-instance:~/spring1617_assignment1.Zip ~/Documents/

spring1617_assignment1.Zip 100% 42KB 42.0KB/s 00:00

Merci à tous pour leurs commentaires et leur aide. Je sais que c'est une erreur stupide de ma part. Mais j'ai posté cette réponse pour que les autres puissent apprendre de ma bêtise. 

4
oya163

pour copier des fichiers de vm sur votre bureau, vous pouvez simplement ssh dans vm et, dans le coin supérieur droit, un bouton de configuration vous permet de sélectionner l'option de téléchargement du fichier. Saisissez simplement le chemin du fichier. s'il s'agit d'un dossier, commencez par compresser le dossier, puis téléchargez-le.

1
Manish Kumar Jha