Wie kann ich Dateien von einem Google Cloud Compute-Server auf meinen lokalen Computer kopieren?

21785
user1890328

Ich versuche, alle Server-Dateien von Google Cloud Compute (mit Linux Debian) herunterzuladen. Ich bin mit SSH und Google Cloud Compute als Ganzes äußerst unbekannt. Ich würde es vorziehen, entweder alle Dateien zu kopieren (ähnlich einer Git-Pull-Anfrage) oder eine ZIP-Datei zu erstellen und herunterzuladen. Kurz gesagt, ich muss alle Dateien auf dem entfernten Google Cloud-Server auf meinen lokalen Computer kopieren.

Danke im Voraus.

8
Vielleicht kann Ihnen dies eine andere Option geben http://stackoverflow.com/a/27792823/2406499 user145422 vor 9 Jahren 0

3 Antworten auf die Frage

9
Misha Brukman

Versuchen Sie es mit 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] 

z.B,

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

Alternativ können Sie auch (nicht gcloud) sftpoder scp; In dieser SO-Antwort finden Sie Details zu den Befehlszeilenargumenten, die Sie angeben müssen. Ich werde hier der Einfachheit halber zitieren:

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

Um ein anderes SFTP-Tool zu verwenden, geben Sie auf ähnliche Weise den Pfad zum privaten SSH-Schlüssel an, und es kann eine Verbindung zur Instanz hergestellt werden. In diesem Fall gcloudkann der Hostname jedoch selbst in die öffentliche IP-Adresse aufgelöst werden. Für alle anderen Tools müssen Sie die IP-Adresse manuell suchen und die IP-Adresse direkt angeben.

Genial. Gibt es eine Möglichkeit, Dateien zu entfernen und sie dann beim Kopieren zu löschen? MCllorf vor 6 Jahren 0
@MCllorf - Ich bin nicht sicher, ob ich den Fragen folge. Können Sie bitte eine weitere Frage mit mehr Details und dem Anwendungsfall oder Ziel, das Sie erreichen wollen, eröffnen? Misha Brukman vor 6 Jahren 0
Entschuldigung, ich hätte das definitiv besser formulieren können. Mein Ziel war es, die Datei an einen anderen Ort zu kopieren und dann das Original zu löschen, damit nicht unnötig Speicherplatz benötigt wird. Ich habe es schon herausgefunden :) Danke! MCllorf vor 6 Jahren 1
2
Anupam

( gcloud compute copy-filesist jetzt veraltet, daher gcloud compute scpwird empfohlen)

Verwenden Sie gcloud compute scpwie folgt:

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 …] 

Zum Beispiel:

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

Wenn die Zone bereits festgelegt ist (mithilfe von gcloud config set compute/zone ZONEoder über die Umgebungsvariable), müssen Sie die Zone oben nicht angeben.

Kopiert gcloud compute scpauch nicht standardmäßig rekursiv. Wir müssen die --recurseFlagge dafür verwenden.

Siehe die ausführliche Dokumentation hier .

1
Naresh MG

Vielleicht können Sie SFTP verwenden (Google hat Filezilla in seinen Dokumenten verwendet). Ich bin nicht so gut mit CLI und daher gerne die GUI-Optionen von Filezilla und anderen.

Hier sind die Schritte auf hohem Niveau:

  1. Installieren und Ausführen des gcloud SDK ( $ gcloud init)
  2. SSH-Schlüssel erzeugen ( $ gcloud compute ssh)
  3. FTP-Client einrichten (Schlüsseldatei installieren und hinzufügen)
  4. Stellen Sie über den SFTP-Client eine Verbindung zur VM her

Und hier ist eine Dokumentation von Google.

Ich habe das auch aufgezeichnet, es könnte hilfreich sein:

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