Potrzebuję prostego sposobu tworzenia kopii zapasowych plików na lodowcu Amazon z wiersza poleceń?

19

Mam serwer CentOS online z katalogiem plików cPmove, których muszę wykonać kopię zapasową na Amazon Glacier. Mam tylko dostęp do wiersza poleceń, bez GUI.

Potrzebuję klienta wiersza poleceń, który jest stosunkowo łatwy w użyciu do przesyłania plików. Na przykład wcześniej użyłem dropbox_uploader.sh ( https://github.com/andreafabrizi/Dropbox-Uploader ) z tym prostym skryptem bash:

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

Widziałem ten: https://github.com/carlossg/glacier-cli, ale nie mam zainstalowanej Java na serwerze i jestem nieco niezdecydowany, aby go zainstalować, ze względu na wszystkie problemy bezpieczeństwa ostatnio.

Mam Python i Ruby:

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]#

Czy istnieje klient wiersza polecenia Amazon Glacier (preferowany), python lub inny język (mniej preferowany)?)

Ivan
źródło
Przepraszam, nie zagłębiłem się głęboko w Lodowiec, myślałem, że masz normalny dostęp do ssh. Odpowiedź została usunięta.
terdon
Od tego czasu dowiedziałem się, że mogę przesłać na s3 klejnotem mgły Ruby. Następnie, z konsoli zarządzania aws s3, mogę ustawić politykę wygasania i zarchiwizować pliki na lodowcu. Pracuje. Ponadto mgła bezpośrednio wspiera Lodowiec, ale jeszcze tego nie zaglądałem. Dla każdego, kto jest ciekawy, oto mój skrypt ruby ​​do przesyłania na s3: gist.github.com/ivanoats/4712421
Ivan

Odpowiedzi:

9

Biblioteką kanoniczną do komunikacji z AWS przez Python jest Boto . Chociaż jest przeznaczony do użycia jako biblioteka w skrypcie Python, jest wystarczająco prosty w użyciu niezależnie. Możesz przejrzeć dokładną dokumentację , a ta strona zawiera przegląd korzystania z Boto, ale oto ważne części:

Wprowadź swoje poświadczenia AWS w ~/.boto:

[Credentials]
aws_access_key_id = FOO
aws_secret_access_key = BAR

Wymień swoje skarbce:

$ glacier vaults

Prześlij plik:

$ glacier upload foo-vault foo.zip

Wyświetl listę oczekujących zadań w określonym skarbcu:

$ glacier jobs foo-vault

Chociaż naprawdę nie jest łatwiejszy w użyciu niż samo Boto, interfejs Amazon Glacier CLI jest oparty na Boto i w rzeczywistości jest przeznaczony dla użytkowników końcowych. Oto samouczek.

Wreszcie oficjalny AWS-CLI jest raczej łatwy w użyciu. Umieścić poświadczeń w ~/.aws/credentials, a następnie po prostu użyć następujących poleceń:

Utwórz skarbiec:

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

Prześlij plik:

$ aws glacier upload-archive --account-id - --vault-name foo-vault --body foo.zip
dotancohen
źródło
1
zabawne jest to, że twój krok upload-archivenie jest nawet opisany w tandetnej dokumentacji na docs.aws.amazon.com/cli/latest/userguide/…
cryanbhu
Te instrukcje będą działać tylko wtedy, gdy skarbiec znajduje się w domyślnym regionie boto (us-east-1). W przeciwnym razie musisz określić region. Np. Jeśli twój skarbiec znajduje się w CA, polecenie powinno być aws glacier vaults --region us-west-1.
foobarbecue
4

Wypróbuj vsespb / mt-aws-glacier - wielowątkowa synchronizacja Perl z wielowątkową synchronizacją z Amazon Glacier dzięki łatwym instrukcjom wdrażania dla CentOS.

vsespb
źródło
3

github.com/numblr/glaciertools zapewnia skrypty bash, które koordynują przesyłanie wielu plików dużego pliku za pomocą oficjalnego klienta wiersza poleceń AWS ( AWS CLI ). Jest to przydatne w przypadku, gdy dane przekraczają limit 4 GB na przesłanie archiwum w jednej operacji za pomocą interfejsu AWS CLI.

Aby korzystać ze skryptów, musisz mieć zainstalowany i skonfigurowany interfejs AWS CLI, który wymaga Pythona. Link zawiera dodatkowe informacje o konfiguracji.

Następnie możesz utworzyć archiwum kopii zapasowej i przesłać je do skarbca na lodowcu za pomocą

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

Bardziej szczegółowe informacje są zawarte w dokumentacji tam.

użytkownik1587520
źródło