Как удалить все данные ледника?

Я использовал инструмент для Mac OS X под названием Arq для резервного копирования моих данных, но я обнаружил, что загружать все свои материалы очень сложно, поскольку у меня нет и не может быть достаточно быстрого интернет-соединения.

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

Я также попробовал FastGlacier на другом компьютере с Windows, он зависает и требует слишком много ресурсов.

Мне было интересно, есть ли простой способ сделать это.

PS Мой ледник имеет ~450 ГБ в 341907 архивах

8 ответов

Решение

Чистка хранилища из этого проекта работает хорошо: https://github.com/vsespb/mt-aws-glacier

Установите, затем выполните эти команды (замените имя хранилища на имя вашего хранилища):

mtglacier retrieve-inventory --config glacier.cfg --vault vault-name

подождите около 2 часов, а затем

mtglacier download-inventory --config glacier.cfg --vault vault-name --new-journal vault-name.log
mtglacier purge-vault --config glacier.cfg --vault vault-name --journal vault-name.log

https://github.com/leeroybrun/glacier-vault-remove был создан именно для этой цели.

Чтобы удалить хранилище, сначала установите зависимости:

$ git clone https://github.com/leeroybrun/glacier-vault-remove.git
$ cd glacier-vault-remove
$ python setup.py install

Затем создайте файл учетных данных, credentials.json в том же каталоге:

{
  "AWSAccessKeyId": "YOURACCESSKEY",
  "AWSSecretKey":   "YOURSECRETKEY"
}

Затем запустите скрипт, как это

$ python removeVault.py REGION-NAME VAULT-NAME

Пример:

$ python removeVault.py us-east-1 my_vault

Если вы удалите папку с поддержкой Glacier в Arq, она попадет в корзину Arq. Если вы выберете его в корзине Arq и нажмете "Удалить навсегда", Arq удалит все архивы Glacier и попытается удалить хранилище Glacier. Удаление хранилища может завершиться неудачно, потому что Amazon должен обновить свой "инвентарь", что он делает один раз в день. На следующий день перейдите в "Другие резервные наборы" в Arq, найдите это хранилище, выберите его и нажмите "Удалить", чтобы удалить его.

Если у вас есть хранилище, которое не связано ни с какими резервными копиями Arq, выберите "Legacy Glacier Vaults" в меню Arq, выберите хранилище и нажмите кнопку, чтобы удалить.

Вы можете использовать бесплатный продукт, такой как CloudBerry Explorer http://www.cloudberrylab.com/free

Обратите внимание, данные Glacier не становятся доступными сразу. вам нужно подождать 24 часа, чтобы глобальный инвентарь появился на стороне Amazon, затем нажмите кнопку Получить инвентарь и подождите еще 5 часов, чтобы получить инвентарь для вашей учетной записи.

Спасибо

Как удалить Убежище (Ледник AWS)

Это Gist дать несколько советов, чтобы удалить AWS Glacier Vault с AWS CLI (т. е. https://aws.amazon.com/en/cli/).

Шаг 1 / Получить инвентарь

$ aws glacier initiate-job --job-parameters "{\"Type\": \"inventory-retrieval\"}" --vault-name YOUR_VAULT_NAME --account-id YOUR_ACCOUNT_ID --region YOUR_REGION

Ждите в течение 3/5 часов…:-(

Для нового шага вам нужно получить JobId, Когда инвентаризация завершена, вы можете получить ее с помощью следующей команды: aws glacier list-jobs --vault-name YOUR_VAULT_NAME --region YOUR_REGION

Шаг 2 / Получить ArchivesIds

$ aws glacier get-job-output --job-id YOUR_JOB_ID --vault-name YOUR_VAULT_NAME --region YOUR_REGION ./output.json

Видеть. Загрузка описи хранилища в леднике Амазон

Вы можете получить все ArchiveId в ./output.json файл.

Шаг 3 / Удалить архивы

Powershell

от @vinyar

$input_file_name = 'output.json'
$vault_name = 'my_vault'
# $account_id = 'AFDKFKEKF9EKALD' #not used. using - instead

$a = ConvertFrom-Json $(get-content $input_file_name)

$a.ArchiveList.archiveid | %{
write "executing: aws glacier delete-archive --archive-id=$_ --vault-name $vault_name --account-id -"
aws glacier delete-archive --archive-id=$_ --vault-name $vault_name --account-id - }

питон

от @robweber

ijson, который вместо этого читает файл как поток. Вы можете установить его с помощью pip

import ijson, subprocess

input_file_name = 'output.json'
vault_name = ''
account_id = ''

f = open(input_file_name)
archive_list = ijson.items(f,'ArchiveList.item')

for archive in archive_list:
    print("Deleting archive " + archive['ArchiveId'])
    command = "aws glacier delete-archive --archive-id='" + archive['ArchiveId'] + "' --vault-name " + vault_name + " --acc$
    subprocess.run(command, shell=True, check=True)

f.close()

PHP

из @Remiii

<?php

$file = './output.json' ;
$accountId = 'YOUR_ACCOUNT_ID' ;
$region = 'YOUR_REGION' ;
$vaultName = 'YOUR_VAULT_NAME' ;

$string = file_get_contents ( $file ) ;
$json = json_decode($string, true ) ;
foreach ( $json [ 'ArchiveList' ] as $jsonArchives )
{
    echo 'Delete Archive: ' . $jsonArchives [ 'ArchiveId' ] . "\n" ;
    exec ( 'aws glacier delete-archive --archive-id="' . $jsonArchives [ 'ArchiveId' ] . '" --vault-name ' . $vaultName . ' --account-id ' . $accountId . ' --region ' . $region , $output ) ;
    echo $output ;
}

Пометка: после удаления архива, если вы немедленно загрузите инвентаризацию хранилища, он может включить удаленный архив в список, поскольку Amazon Glacier готовит инвентаризацию хранилища только примерно один раз в день.

Видеть. Удаление архива в леднике Амазонки

Шаг 4 / Удалить хранилище

$ aws glacier delete-vault --vault-name YOUR_VAULT_NAME --account-id YOUR_ACCOUNT_ID --region YOUR_REGION

Суть изначально @Remiii

Итак, несколько лет назад я закрыл свой аккаунт и просто открыл его несколько месяцев назад и угадаю, что у amazon все еще есть мои 3 ТБ на моем аккаунте, и теперь я получил счета за них в течение последних нескольких месяцев.

Итак, я вернулся к этому вопросу и обнаружил, что:

  • mt-aws-glacier практически невозможно настроить на последнюю версию Ubuntu, после чего перешел на 12.04, а awscli не было, затем, когда до 14.04 появилась ошибка о моей подписи...
  • Ответ Arq больше не актуален в Arq 5
  • Тогда я нашел вышеупомянутую суть и скопировал ее здесь, потому что это лучше для сообщества
  • Пробовал морошку и похоже она должна работать я обновлю здесь через 4~10 часов

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

Я не видел, чтобы это было предложено нигде... но если вы используете только AWS для Glacier (что, я полагаю, должно иметь место для многих), вы можете просто закрыть свою учетную запись AWS! Именно это я и сделал после нескольких дней невероятно неэффективных попыток удаления данных с помощью различных инструментов.

Когда вы закрываете свою учетную запись, Amazon удаляет ваши данные (предположительно; в конечном итоге они должны как минимум освободить место на диске), и вы получаете окончательную квитанцию ​​за текущий месяц. Прощай, Амазонка!

Мой файл output.json весил 1,2 ГБ. Таким образом, большинство предложенных выше сценариев не будут работать (ни один из них не может загрузить однострочный файл такой длины).

Итак, я прибегнул к магии манипуляций с файлами Unix.

      sed 's/ArchiveId":"/\n/g' output.json > output2
cut -c 1-138 output2 > output3
tail -n +2 output3 > output4
while read in; do aws glacier delete-archive --vault-name VAULT_NAME_GOES_HERE --account-id ACCOUNT_ID_GOES_HERE --archive-id $in; done < output4
  • Первая команда заменит все экземпляры текстаArchiveId":"с символом новой строки и создайте новый файл.
  • Вторая команда обрежет все, что находится после ArchiveId (после 138 символов), и создаст окончательный новый файл.
  • Третий полностью удаляет первую строку.
  • Четвертый фактически выполняет удаление с помощью aws

(Возможно, их можно объединить в одну команду, но я хотел попутно дважды проверить вывод.)

Я получал случайные и нечастые сообщения, из которых следовало, что в функцию передается более одного аргумента.--archive-id, поэтому я собираюсь повторить процесс и надеюсь, что хотя бы большая часть архивов была удалена при этом, а с остальными я смогу справиться в одноразовом режиме.

На Mac вы можете попробовать использовать приложение ForkLift (бесплатно для ознакомления), которое может подключаться к Amazon S3.

Другие вопросы по тегам