Как я могу скопировать файлы с Google Cloud Compute Server на мой локальный компьютер

8

Я пытаюсь загрузить все файлы сервера из Google Cloud Compute (работает под управлением Linux Debian). Я крайне незнаком с SSH и Google Cloud Compute в целом. Я бы предпочел либо скопировать все файлы (аналогично запросу git pull), либо создать zip и загрузить. Короче говоря, мне нужно скопировать все файлы с удаленного сервера Google Cloud на мой локальный компьютер.

Заранее спасибо.

user1890328
источник
может быть, это может дать вам другой вариант stackoverflow.com/a/27792823/2406499
user145422

Ответы:

10

Попробуйте использовать 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]

например.,

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

В качестве альтернативы, вы также можете использовать gcloud ) sftp или же scp; увидеть этот так ответ подробности об аргументах командной строки вам нужно указать, которые я приведу здесь для простоты:

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

Чтобы использовать любой другой инструмент SFTP, аналогично укажите ему путь к закрытому ключу SSH, и он сможет подключиться к экземпляру. Тем не менее, в случае gcloud, он может разрешить имя хоста в публичный IP; для всех остальных инструментов вам нужно будет найти IP-адрес вручную и указать IP-адрес напрямую.

Misha Brukman
источник
Потрясающие. Есть ли способ удалить файлы, а затем удалить их по мере их копирования?
MCllorf
@MCllorf - я не уверен, что следую тому, что вы спрашиваете, не могли бы вы открыть еще один вопрос с более подробной информацией и описанием варианта использования или цели, которую вы пытаетесь достичь?
Misha Brukman
1
Извините, я определенно мог бы сформулировать это лучше Моей целью было скопировать файл в другое место, а затем удалить оригинал, чтобы он не занимал ненужное место. Я уже понял это, хотя :) спасибо!
MCllorf
3

( gcloud compute copy-files устарела сейчас, следовательно gcloud compute scp Рекомендовано)

использование 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 …]

Например:

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

Если зона уже установлена ​​(используя gcloud config set compute/zone ZONE или через переменную окружения, тогда вам не нужно указывать зону выше)

Также, gcloud compute scp не копирует рекурсивно по умолчанию. Нам нужно использовать --recurse флаг для этого.

Смотрите подробную документацию Вот ,

Anupam
источник
2

Может быть, вы можете использовать SFTP (Google использовал Filezilla в своих документах). Я не слишком хорош с CLI и, следовательно, как параметры графического интерфейса Filezilla и другие.

Вот шаги на высоком уровне:

  1. Установите и запустите gcloud SDK ( $ gcloud init )
  2. Создать ключ SSH ( $ gcloud compute ssh )
  3. Настройте FTP-клиент (установите и добавьте файл ключей)
  4. Подключитесь к виртуальной машине с помощью клиента SFTP

И вот документация от гугла.

Кроме того, я записал это, это может быть полезно:

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

Naresh MG
источник