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

21698
user1890328

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

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

8
может быть, это может дать вам другой вариант http://stackoverflow.com/a/27792823/2406499 user145422 9 лет назад 0

3 ответа на вопрос

9
Misha Brukman

Try using 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] 

e.g.,

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

As an alternative, you can also use (non-gcloud) sftp or scp; see this SO answer for details on the command line arguments you need to specify, which I'll quote here for simplicity:

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

To use any other SFTP tool, similarly provide to it the path to the SSH private key and it will be able to connect to the instance. However, in the case of gcloud, it can resolve the hostname to the public IP themselves; for all other tools, you'll need to find the IP manually and specify the IP address directly.

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

( 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флаг для этого.

Смотрите подробную документацию здесь .

1
Naresh MG

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

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

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

А вот документация от Google.

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

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

Похожие вопросы