Мені потрібен простий спосіб резервного копіювання файлів на льодовик Amazon з командного рядка?


19

У мене є сервер CentOS в Інтернеті з каталогом файлів cPmove, які мені потрібно створити резервну копію до Amazon Glacier. У мене є лише доступ до командного рядка, без GUI.

Мені потрібен клієнт командного рядка, який порівняно легко використовувати для завантаження файлів. Наприклад, я раніше використовував dropbox_uploader.sh ( https://github.com/andreafabrizi/Dropbox-Uploader ) із цим простим скриптом bash:

#!/bin/bash
find /backup_folder -maxdepth 1 -name "cpmove-*.tar.gz" | while read CPMOVE
do
   ./dropbox_uploader.sh upload ${CPMOVE}
done

Я бачив це: https://github.com/carlossg/glacier-cli, але у мене не встановлена ​​java на сервері, і я трохи не вагаюся її встановити, через всі проблеми із безпекою останнім часом.

У мене є пітон і рубін:

me@server [/home]# python -V
Python 2.4.3
root@server [/home]# ruby --version
ruby 1.8.7 (2012-06-29 patchlevel 370) [i686-linux]
me@server [/home]#

Чи є клієнт командного рядка з рубіном (бажано) або пітоном чи іншою мовою (менш бажаною) клієнта командного рядка льодовика Amazon?)


Вибачте, я не заглянув у льодовик глибоко, я подумав, що у вас є нормальний доступ до ssh. Відповідь видалено.
тердон

З того часу я з'ясував, що можу завантажувати в s3 за допомогою каменя рубіну. Потім, з консолі управління aws s3, я можу встановити політику закінчення терміну дії та архівувати файли до льодовика. Працює. Також туман підтримує льодовик безпосередньо, але я ще не вдивлявся в це. Для тих, хто цікавиться, ось мій рубіновий сценарій для завантаження в s3: gist.github.com/ivanoats/4712421
Іван

Відповіді:


9

Канонічна бібліотека для взаємодії з AWS через Python - це Boto . Хоча він призначений для використання в якості бібліотеки в сценарії Python, його досить просто використовувати самостійно. Ви можете переглядати точну документацію , і на цій сторінці є огляд використання Boto, але ось важливі частини:

Покладіть свої дані для AWS ~/.boto:

[Credentials]
aws_access_key_id = FOO
aws_secret_access_key = BAR

Перерахуйте свої сховища:

$ glacier vaults

Завантажити файл:

$ glacier upload foo-vault foo.zip

Перерахуйте очікувані завдання у певному сховищі:

$ glacier jobs foo-vault

Хоча це насправді не простіше, ніж сам Boto, інтерфейс Amazo Glacier CLI заснований на Boto і насправді розроблений для кінцевих користувачів. Ось підручник для цього.

Нарешті, офіційний AWS-CLI досить простий у використанні. Помістіть облікові дані в ~/.aws/credentialsі потім просто використовувати ці команди:

Створіть сховище:

$ aws glacier create-vault --account-id - --vault-name foo-vault

Завантажити файл:

$ aws glacier upload-archive --account-id - --vault-name foo-vault --body foo.zip

1
смішна річ, що ваш крок upload-archiveнавіть не висвітлений у кричущій
cryanbhu

Ці вказівки працюватимуть лише у тому випадку, якщо ваш сейф знаходиться в області за замовчуванням для boto (us-east-1). В іншому випадку потрібно вказати регіон. Наприклад, якщо ваш оберіг знаходиться в CA, команда повинна бути aws glacier vaults --region us-west-1.
foobarbecue

4

Спробуйте vsespb / mt-aws-glacier - багатопотокова синхронізація Perl з льодовиком Amazon з легкими інструкціями щодо розгортання для CentOS.



3

github.com/numblr/glaciertools надає bash-скрипти, які упорядковують багатозавантажене завантаження великого файлу з офіційним клієнтом командного рядка AWS ( AWS CLI ). Це корисно в тому випадку, коли ваші дані перевищують ліміт 4 Гб для завантаження архіву за одну операцію з AWS CLI.

Для використання скриптів потрібно встановити і встановити AWS CLI, для чого потрібен python. Посилання містить додаткову інформацію про налаштування.

Потім ви можете створити архів резервної копії та завантажити її у сховище на льодовику

> ./glacierupload -v myvault /path/to/my/archive

Більш детальна інформація міститься в тамтешній документації .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.