Comment puis-je copier des fichiers d'un serveur Google Cloud Compute vers ma machine locale

11

J'essaie de télécharger tous les fichiers du serveur à partir de Google Cloud Compute (exécutant Linux Debian). Je ne connais pas très bien SSH et Google Cloud Compute dans son ensemble. Je préfère soit copier tous les fichiers (similaire à une requête git pull) soit créer un zip et télécharger. En bref, je dois copier tous les fichiers du serveur Google Cloud à supprimer sur ma machine locale.

Merci d'avance.

user1890328
la source
peut-être que cela peut vous donner une autre option stackoverflow.com/a/27792823/2406499
user145422

Réponses:

12

Essayez d'utiliser gcloud compute scp:

gcloud compute scp 
  [[USER@]INSTANCE:]SRC [[[USER@]INSTANCE:]SRC …]
  [[USER@]INSTANCE:]DEST
  [--compress] [--dry-run] [--force-key-file-overwrite]
  [--plain] [--port=PORT] [--recurse] [--scp-flag=SCP_FLAG]
  [--ssh-key-file=SSH_KEY_FILE]
  [--strict-host-key-checking=STRICT_HOST_KEY_CHECKING]
  [--zone=ZONE]
  [GCLOUD_WIDE_FLAG …]
  [-h]

par exemple,

$ gcloud compute scp \
    my-instance-1:~/file-1 \
    my-instance-2:~/file-2 \
    ~/my-destination \
    --zone us-central2-a

Comme alternative, vous pouvez également utiliser (non gcloud) sftpou scp; voir cette réponse SO pour plus de détails sur les arguments de ligne de commande que vous devez spécifier, que je citerai ici pour plus de simplicité:

sftp -o IdentityFile ~/.ssh/google_compute_engine user@host

Pour utiliser tout autre outil SFTP, fournissez-lui également le chemin d'accès à la clé privée SSH et il pourra se connecter à l'instance. Cependant, dans le cas de gcloud, il peut résoudre le nom d'hôte en IP public lui-même; pour tous les autres outils, vous devrez trouver l'IP manuellement et spécifier directement l'adresse IP.

Misha Brukman
la source
Impressionnant. Existe-t-il un moyen de supprimer des fichiers, puis de les supprimer lors de leur copie?
homme mec
@MCllorf - Je ne suis pas sûr de suivre ce que vous demandez, pouvez-vous s'il vous plaît ouvrir une autre question avec plus de détails et le cas d'utilisation ou l'objectif que vous essayez d'atteindre?
Misha Brukman
1
Désolé, j'aurais certainement pu mieux formuler cela. Mon objectif était de copier le fichier ailleurs, puis de supprimer l'original afin qu'il n'occupe pas d'espace inutile. Je l'ai déjà compris cependant :) merci!
homme mec
5

( gcloud compute copy-filesest obsolète maintenant, il gcloud compute scpest donc recommandé)

Utilisez gcloud compute scpcomme suit:

gcloud compute scp [[USER@]INSTANCE:]SRC [[[USER@]INSTANCE:]SRC …]
[[USER@]INSTANCE:]DEST [--compress] [--dry-run] [--force-key-file-overwrite]
[--plain] [--port=PORT] [--recurse] [--scp-flag=SCP_FLAG] 
[--ssh-key-file=SSH_KEY_FILE] [--strict-host-key-checking=STRICT_HOST_KEY_CHECKING]
[--zone=ZONE] [GCLOUD_WIDE_FLAG …]

Par exemple:

$ gcloud compute scp example-instance:~/REMOTE-DIR ~/LOCAL-DIR \
      --zone us-central1-a

Si la zone est déjà définie (en utilisant gcloud config set compute/zone ZONEou via la variable d'environnement, vous n'avez pas besoin de spécifier la zone ci-dessus)

En outre, gcloud compute scpne copie pas récursivement par défaut. Nous devons utiliser le --recursedrapeau pour cela.

Voir la documentation détaillée ici .

Anupam
la source
2

Vous pouvez peut-être utiliser SFTP (Google a utilisé Filezilla dans leurs documents). Je ne suis pas trop bon avec CLI et donc comme les options GUI Filezilla et autres fournissent.

Voici les étapes à un niveau élevé:

  1. Installer et exécuter le SDK gcloud ( $ gcloud init)
  2. Générer une clé SSH ( $ gcloud compute ssh)
  3. Configurer le client FTP (installer et ajouter le fichier clé)
  4. Connectez-vous à la machine virtuelle à l'aide du client SFTP

Et voici la documentation de Google.

De plus, j'ai enregistré cela, cela pourrait être utile:

https://www.youtube.com/watch?v=9ssfE6ODpak

Naresh MG
la source
0

Cela a fonctionné pour moi

Syntaxe:

gcloud compute scp <UserName>@<ServerName/InstanceName>:~/<FilePathFromInstance> <LocalSystemFilePath>
Viraj.Hadoop
la source
0

Si vous vous connectez à l'instance via un terminal Web fourni par Google Cloud Console, vous pouvez cliquer sur le rouage dans le coin supérieur droit et sélectionner "Télécharger le fichier", puis entrez le chemin d'accès complet au fichier et il sera téléchargé via le navigateur . La même chose vaut pour le téléchargement.

entrez la description de l'image ici

DataGreed
la source