Я создал экземпляр виртуальной машины на Compute Engine в проекте Google Cloud. Я хочу загрузить папку из локального хранилища моего компьютера на загрузочный диск виртуальной машины.
Я пробовал использовать scp
в интерфейсе командной строки моего компьютера, набрав scp /file/path/name external-ip-address-of-server:.
Но потом я получил ошибкуPermission denied (publickey). lost connection
Я также знаю, что wget
Команда может использоваться для загрузки файла из Интернета на компьютер. Я думал об этом, но это потребовало бы размещения моей папки в Интернете в качестве ссылки для загрузки, а я не знаю, как это сделать.
Как лучше всего поместить папку из локального хранилища на загрузочный диск виртуальной машины?
Я думаю, что ты ищешь
gcloud compute scp --recurse [folder_name] your_instance:/path/to/copy/
Вы можете найти ссылку здесь: https://cloud.google.com/sdk/gcloud/reference/compute/scp
Я бы рекомендовал использовать Storage Buckets для хранения папок. Таким образом вы можете копировать одни и те же папки на разные виртуальные машины.
Основная команда gsutil. Если вы хотите скопировать файл, используйте gustil cp. Для синхронизации папок вы можете использовать gsutil rsync
Пример копирования данных с локальной машины в корзину:
gsutil -m rsync -r data . gs://mybucket/data
Пример копирования из корзины в виртуальную машину, затем подключитесь к виртуальной машине:
gsutil -m rsync -r data gs://mybucket/data .
-m - для многопоточной синхронизации
-r - заглядывать в подпапки
Инструмент, который вы ищете, вероятно, rsync
.
Возможная командная строка:
rsync -av /file/path/name external-ip-address-of-server:
Rsync использует ssh
в качестве транспорта по умолчанию, поэтому, прежде чем он будет легко работать для вас, похоже, вам нужно получить свой ssh
логины рабочие. Но это другой вопрос, и у StackExchange, вероятно, уже есть ответ.