Я создал экземпляр виртуальной машины на Compute Engine в проекте Google Cloud. Я хочу загрузить папку из локального хранилища моего компьютера на загрузочный диск виртуальной машины.
Я попытался использовать команду scp
в интерфейсе командной строки моего компьютера, набрав scp / файл / путь / имя внешний-ip-адрес-сервера:.
Но потом я получил ошибку Permission denied (publickey). потеряна связь
Я также знаю, что команда wget
может использоваться для загрузки файла из Интернета на компьютер. Я думал об этом, но это потребовало бы размещения моей папки в Интернете в качестве ссылки для загрузки, что я не знаю, как это сделать.
Как лучше всего поместить папку из локального хранилища на загрузочный диск виртуального машина?
Инструмент, который вы ищете, вероятно, это rsync
.
Возможная командная строка:
rsync -av /file/path/name external-ip-address-of-server:
Rsync использует ssh
в качестве транспорта по умолчанию, поэтому, прежде чем он будет легко работать для вас, похоже, вам нужно получить свой ssh
логины работают. Но это уже другой вопрос, и у StackExchange, вероятно, уже есть ответ.
Я думаю, что вы ищете
gcloud compute scp --recurse [имя_папки] ваш_экземпляр: / 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 - просмотр подпапок