Bagaimana saya bisa menyalin file dari Google Cloud Compute Server ke mesin lokal saya

11

Saya mencoba mengunduh semua file server dari Google Cloud Compute (menjalankan Linux Debian). Saya sangat tidak terbiasa dengan SSH dan Google Cloud Compute secara keseluruhan. Saya lebih suka menyalin semua file (mirip dengan permintaan tarik git) atau membuat zip dan mengunduh. Singkatnya, saya perlu menyalin semua file di server Google Cloud hapus ke mesin lokal saya.

Terima kasih sebelumnya.

pengguna1890328
sumber
mungkin ini bisa memberi Anda opsi lain stackoverflow.com/a/27792823/2406499
user145422

Jawaban:

12

Coba gunakan 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]

misalnya,

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

Sebagai alternatif, Anda juga dapat menggunakan (non- gcloud) sftpatau scp; lihat jawaban SO ini untuk detail tentang argumen baris perintah yang perlu Anda tentukan, yang akan saya kutip di sini untuk kesederhanaan:

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

Untuk menggunakan alat SFTP lainnya, sediakan pula jalur untuk kunci pribadi SSH dan itu akan dapat terhubung ke instance. Namun, dalam kasus gclouditu, itu dapat menyelesaikan nama host ke IP publik sendiri; untuk semua alat lain, Anda harus menemukan IP secara manual dan menentukan alamat IP secara langsung.

Misha Brukman
sumber
Luar biasa. Apakah ada cara untuk menghapus file dan kemudian menghapusnya saat mereka disalin?
lelaki
@MCllorf - Saya tidak yakin saya mengikuti apa yang Anda minta, bisakah Anda membuka pertanyaan lain dengan lebih detail dan use case atau tujuan yang Anda coba capai?
Misha Brukman
1
Maaf saya pasti bisa mengatakan itu lebih baik. Tujuan saya adalah menyalin file ke tempat lain, dan kemudian menghapus yang asli sehingga tidak memakan ruang yang tidak perlu. Saya sudah menemukan jawabannya :) terima kasih!
lelaki
5

( gcloud compute copy-filessudah ditinggalkan sekarang, maka gcloud compute scpdisarankan)

Gunakan gcloud compute scpsebagai berikut:

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

Sebagai contoh:

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

Jika zona sudah diatur (menggunakan gcloud config set compute/zone ZONEatau melalui variabel lingkungan, maka Anda tidak perlu menentukan zona di atas)

Juga, gcloud compute scptidak menyalin secara rekursif secara default. Kita perlu menggunakan --recursebendera untuk itu.

Lihat dokumentasi terperinci di sini .

Anupam
sumber
2

Mungkin Anda bisa menggunakan SFTP (google menggunakan Filezilla dalam dokumen mereka). Saya tidak terlalu baik dengan CLI dan karenanya suka dengan opsi GUI Filezilla dan lainnya.

Berikut langkah-langkahnya di level tinggi:

  1. Instal dan jalankan SDK gcloud ( $ gcloud init)
  2. Buat kunci SSH ( $ gcloud compute ssh)
  3. Atur klien FTP (instal dan tambahkan file kunci)
  4. Hubungkan ke VM menggunakan klien SFTP

Dan inilah dokumentasi dari Google.

Juga, saya telah mencatat ini, mungkin membantu:

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

Naresh MG
sumber
0

Ini berhasil untuk saya

Sintaks:

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

Jika Anda terhubung ke mesin virtual melalui terminal berbasis web yang disediakan Google Cloud Console, Anda dapat mengklik roda gigi di sudut kanan atas dan pilih "Unduh file", lalu masukkan path lengkap ke file dan itu akan diunduh melalui browser . Hal yang sama berlaku untuk mengunggah.

masukkan deskripsi gambar di sini

DataGreed
sumber