Como copiar arquivos de um servidor do Google Cloud Compute para minha máquina local

11

Estou tentando baixar todos os arquivos do servidor do Google Cloud Compute (executando o Linux Debian). Não tenho muita familiaridade com o SSH e o Google Cloud Compute como um todo. Eu preferiria copiar todos os arquivos (semelhante a uma solicitação git pull) ou criar um zip e fazer o download. Em resumo, preciso copiar todos os arquivos no servidor remover o Google Cloud para a minha máquina local.

Agradeço antecipadamente.

user1890328
fonte
talvez isso pode dar-lhe uma outra opção stackoverflow.com/a/27792823/2406499
user145422

Respostas:

12

Tente usar 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]

por exemplo,

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

Como alternativa, você também pode usar (não gcloud) sftpou scp; veja esta resposta do SO para obter detalhes sobre os argumentos da linha de comando que você precisa especificar, que citarei aqui por simplicidade:

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

Para usar qualquer outra ferramenta SFTP, forneça de maneira semelhante o caminho para a chave privada SSH e ele poderá se conectar à instância. No entanto, no caso de gcloud, ele pode resolver o nome do host para o IP público; para todas as outras ferramentas, você precisará encontrar o IP manualmente e especificar o endereço IP diretamente.

Misha Brukman
fonte
Impressionante. Existe uma maneira de remover arquivos e excluí-los à medida que são copiados?
cara cara
@ Mcllorf - Não sei se sigo o que você está perguntando, você pode abrir outra pergunta com mais detalhes e o caso de uso ou objetivo que você está tentando alcançar?
Misha Brukman
11
Desculpe, eu definitivamente poderia ter formulado isso melhor. Meu objetivo era copiar o arquivo para outro lugar e, em seguida, excluir o original para não ocupar espaço desnecessário. Eu já descobri isso :) obrigado!
cara cara,
5

( gcloud compute copy-filesestá obsoleto agora, portanto, gcloud compute scpé recomendado)

Use da gcloud compute scpseguinte maneira:

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

Por exemplo:

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

Se a zona já estiver definida (usando gcloud config set compute/zone ZONEou através da variável de ambiente, você não precisará especificar a zona acima)

Além disso, gcloud compute scpnão copia recursivamente por padrão. Precisamos usar a --recursebandeira para isso.

Veja a documentação detalhada aqui .

Anupam
fonte
2

Talvez você possa usar o SFTP (o Google usou o Filezilla em seus documentos). Eu não sou muito bom com a CLI e, portanto, gosto das opções da GUI que Filezilla e outros fornecem.

Aqui estão as etapas de alto nível:

  1. Instale e execute o SDK do gcloud ( $ gcloud init)
  2. Gerar chave SSH ( $ gcloud compute ssh)
  3. Configure o cliente FTP (instale e adicione o arquivo de chave)
  4. Conecte-se à VM usando o cliente SFTP

E aqui está a documentação do Google.

Além disso, eu gravei isso, pode ser útil:

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

Naresh MG
fonte
0

Isso funcionou para mim

Sintaxe:

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

Se você se conectar à instância via terminal baseado na Web fornecido pelo Google Cloud Console, clique na engrenagem no canto superior direito e selecione "Baixar arquivo", digite o caminho completo para o arquivo e ele será baixado pelo navegador . O mesmo vale para o upload.

insira a descrição da imagem aqui

DataGreed
fonte