Google Cloud Compute Serverからローカルマシンにファイルをコピーするにはどうすればよいですか


11

Google Cloud Compute(Linux Debianを実行)からすべてのサーバーファイルをダウンロードしようとしています。私は、SSHとGoogle Cloud Compute全体については、あまり詳しくありません。すべてのファイルをコピーする(git pullリクエストと同様)か、zipを作成してダウンロードすることをお勧めします。つまり、削除するGoogle Cloudサーバー上のすべてのファイルをローカルマシンにコピーする必要があります。

前もって感謝します。


多分これはあなたに別のオプションを与えることができます stackoverflow.com/a/27792823/2406499
user145422

回答:


12

使用してみてください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

別の方法として、(非gcloudsftpまたはscp; も使用できます。参照このSOの答えは、私は簡単にするためにここに引用よこれ、あなたが指定する必要があり、コマンドライン引数の詳細については:

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

他のSFTPツールを使用するには、同様にSSH秘密鍵へのパスを指定すると、インスタンスに接続できるようになります。ただし、の場合gcloud、ホスト名をパブリックIP自体に解決できます。他のすべてのツールでは、IPを手動で検索し、IPアドレスを直接指定する必要があります。


驚くばかり。ファイルを削除し、コピーされたときに削除する方法はありますか?
男性の男、

@MCllorf —質問の内容を理解できていないので、詳細とユースケースまたは達成しようとしている目標を含む別の質問を開いていただけますか?
Misha Brukman、2018年

1
申し訳ありませんが、私は間違いなくそれをよりよく表現できたでしょう。私の目的は、ファイルを別の場所にコピーしてから、元のファイルを削除して、不要なスペースを占有しないようにすることでした。私はすでにそれを理解しました:)ありがとう!
男の男、

5

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フラグを使用する必要があります。

詳細なドキュメントはこちらをご覧ください。


2

多分あなたはSFTPを使用することができます(グーグルは彼らのドキュメントでFilezillaを使用しました)。私はCLIがあまり上手ではないため、Filezillaやその他のGUIオプションが好きです。

大まかな手順は次のとおりです。

  1. gcloud SDKをインストールして実行する($ gcloud init
  2. SSHキーを生成($ gcloud compute ssh
  3. FTPクライアントのセットアップ(キーファイルのインストールと追加)
  4. SFTPクライアントを使用してVMに接続する

そして、これはグーグルからのドキュメントです。

また、私はこれを記録しました、それは役に立つかもしれません:

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


0

これは私のために働いた

構文:

gcloud compute scp <UserName>@<ServerName/InstanceName>:~/<FilePathFromInstance> <LocalSystemFilePath>

0

Google Cloud Consoleが提供するウェブベースのターミナルを介してインスタンスに接続する場合、右上隅にある歯車をクリックして[ファイルをダウンロード]を選択し、ファイルへのフルパスを入力すると、ブラウザからダウンロードされます。アップロードについても同様です。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.