Ich brauche eine einfache Möglichkeit, Dateien von der Befehlszeile aus auf dem Amazon Glacier zu sichern.

19495
Ivan

Ich habe einen CentOS-Server online mit einem Verzeichnis von cPmove-Dateien, die ich zur Sicherung auf Amazon Glacier benötigen. Ich habe nur Kommandozeilenzugriff, keine GUI.

Ich brauche einen Befehlszeilen-Client, der relativ einfach zum Hochladen der Dateien verwendet werden kann. Zum Beispiel habe ich dropbox_uploader.sh bereits zuvor ( https://github.com/andreafabrizi/Dropbox-Uploader ) mit diesem einfachen Bash-Skript verwendet:

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

Ich habe folgendes gesehen: https://github.com/carlossg/glacier-cli, aber ich habe kein Java auf dem Server installiert und bin etwas zurückhaltend bei der Installation, wegen der Sicherheitsprobleme der letzten Zeit.

Ich habe Python und Rubin:

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

Gibt es einen Ruby (bevorzugt) oder Python oder eine andere (weniger bevorzugte) Sprache für den Amazon Glacier-Befehlszeilenclient?)

16
Entschuldigung, ich hatte nicht tief in Glacier hineingeschaut, ich dachte, Sie hätten normalen SSH-Zugriff. Antwort gelöscht terdon vor 11 Jahren 0
Ich habe seitdem herausgefunden, dass ich mit Rubys Nebelstein auf s3 hochladen kann. Dann kann ich über die aws-Managementkonsole von s3 eine Ablaufrichtlinie festlegen und die Dateien auf dem Gletscher archivieren lassen. Arbeitet. Außerdem unterstützt Nebel Glacier direkt, aber ich habe das noch nicht untersucht. Für Neugierige ist hier mein Rubin-Skript zum Hochladen auf S3: https://gist.github.com/ivanoats/4712421 Ivan vor 11 Jahren 0

4 Antworten auf die Frage

8
dotancohen

Die kanonische Bibliothek für die Anbindung an AWS über Python ist Boto . Obwohl es als Bibliothek in einem Python-Skript verwendet werden soll, ist es einfach genug, es unabhängig voneinander zu verwenden. Sie können überfliegen die feine Dokumentation und diese Seite hat einen Überblick, wie Boto zu verwenden, aber hier sind die wichtigsten Teile:

Geben Sie Ihre AWS-Anmeldeinformationen ein ~/.boto:

[Credentials] aws_access_key_id = FOO aws_secret_access_key = BAR 

Listen Sie Ihre Tresore auf:

$ glacier vaults 

Eine Datei hochladen:

$ glacier upload foo-vault foo.zip 

Liste ausstehende Jobs in einem bestimmten Tresor auflisten:

$ glacier jobs foo-vault 

Obwohl es wirklich nicht einfacher ist als Boto selbst zu verwenden, Amazon Glacier CLI - Schnittstelle ist auf Boto basiert und ist in der Tat für Endanwender konzipiert. Hier ist ein Tutorial dafür.

Schließlich ist die offizielle AWS-CLI relativ einfach zu bedienen. Geben Sie die Anmeldeinformationen ein ~/.aws/credentialsund verwenden Sie einfach die folgenden Befehle:

Erstelle einen Tresor:

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

Laden Sie eine Datei hoch :

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

Probieren Sie vsespb / mt-aws-glacier aus - Perl-Multithread-Multipart-Synchronisierung mit Amazon Glacier mit einfachen Bereitstellungsanweisungen für CentOS.

3
Karl Forner

Es gibt eine andere Software, die auch glacier-cli genannt wird ( https://github.com/basak/glacier-cli ), aber in Python scheint das ziemlich gut zu funktionieren.

1
user1587520

github.com/numblr/glaciertools bietet bash-Skripte, die den mulitpart-Upload einer großen Datei mit dem offiziellen AWS-Befehlszeilenclient ( AWS CLI ) orchestrieren . Dies ist nützlich, wenn Ihre Daten die Grenze von 4 GB für das Hochladen eines Archivs in einem einzigen Vorgang mit der AWS-CLI überschreiten.

Um die Skripts verwenden zu können, müssen Sie die AWS CLI installiert und eingerichtet haben, für die Python erforderlich ist. Der Link enthält zusätzliche Informationen zum Setup.

Dann können Sie ein Archiv Ihres Backups erstellen und es mit in einen Tresor auf Gletscher hochladen

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

Genauere Informationen finden Sie in der Dokumentation .