Как создать zip или tar из экземпляра виртуальной машины GCP в сегмент хранилища GCP - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь создать сжатый файл резервной копии из моего / var / www VM экземпляра на GCP и сохранить его в сегменте хранилища GCP. Я бы предпочел использовать S SH, но мне сказали использовать эту команду с помощью консоли оболочки gcloud:

gsutil cp -r / var / www / gs: // bucket-name

Использование этой команды работает, но сначала вам нужно создать корзину, и она копирует каждый файл. Вместо того, чтобы копировать каждый файл, я бы предпочел иметь один zip-архив tar.

После того, как я закончу, мне нужно вытащить или получить этот zip-файл из корзины и извлечь его в новый экземпляр виртуальной машины поверх запись существующего / var / www folders и сохранение тех же разрешений для файлов и папок. Если кто-нибудь знает, какую команду использовать для этой части процесса, это было бы очень полезно.

Первый экземпляр виртуальной машины, в котором есть файлы, которые я пытаюсь создать, работает под управлением Ubuntu 16.04. Новый экземпляр виртуальной машины работает под управлением Ubuntu 18.04.

Вся причина для этого заключается в том, что вы не можете взять экземпляр виртуальной машины, который был первоначально создан с использованием Ubuntu 16.04, S SH, а затем вручную обновить его до 18.04. На самом деле вы можете обновить Ubuntu до 18.04, но как только вы это сделаете, вы больше не сможете S SH вернуться на эту машину. Это подтвердили пять инженеров GCP. Когда я спросил, почему мы больше не можем использовать S SH в обновленном экземпляре виртуальной машины, мне ответили, что как только вы обновляете Ubuntu 16.04 до 18.04 вручную с помощью S SH, вы уничтожаете GCP Cloud SDK, который поставлялся с исходным Ubuntu 16.04. построить. Даже установка GCP Cloud SDK не решит проблему.

Единственный способ решить эту проблему - создать новый экземпляр виртуальной машины с использованием Ubuntu 18.04, в который вы можете использовать S SH. Затем скопируйте данные, находящиеся в / var / www from на старой машине, в сегмент хранилища GCP, а затем скопируйте данные из этого сегмента в новый экземпляр ВМ. используйте либо оболочку gcloud, либо еще лучше, S SH - было бы очень полезно.

1 Ответ

0 голосов
/ 14 июля 2020

Есть несколько способов сделать то, что вы хотите.

Если вы хотите / должны использовать ведро"между" для хранения каталога /var/www, тогда это проще сделать это с помощью команды gcloud cp .

В этом случае лучше всего tar каталог: tar -cvf webarch.tar /var/www/, а затем скопировать его в целевую корзину, затем в целевую виртуальную машину и untar it.

Если вам не нужно использовать bucket , вы можете передавать файлы с scp напрямую с одной виртуальной машины на другую.

Вот как синтаксис scp выглядит так:

$ scp -r /local/directory/ username@to_host:/remote/directory/

Он копирует всю структуру каталогов вместе с разрешениями на файлы.

SCP также хорошо работает с S SH ключи , чтобы вы могли использовать те, которые у вас уже есть, или создать один для этой задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...