A8S3 SERVER BACKUP IN THE CLOUD

A8S3 ist ein Commandline-Tool programmiert in Java und läuft auf jedem Server oder Client Computer. Die Hauptfunktion von A8S3 ist das Datei-Backup zu Amazon S3 mit On-The-Fly Verschlüsselung und einem Diff-Modus für effizientes, inkrementelles Backup. Mehrere parallel laufende Threads erhöhen die Geschwindigkeit.

S3 bietet unbegrenzten Online-Speicherplatz, höchste Verfügbarkeit und garantierte Datensicherheit. S3 eignet sich hervorragend, unternehmenskritische Daten online aber "off site" zu sichern. Um diesen Amazon-Dienst für Backups von beliebigen Dateien nutzbar zu machen, haben wir A8S3 entwickelt und selbst auf allen unseren Servern und Entwicklungsrechnern im Einsatz!

A8S3 bietet folgende Features:

  • On-The-Fly Verschlüsselung der Daten
    • NEU: 128bit AES Verschlüsselung für ein Optimum an Datensicherheit
    • Abwärtskompatibel für PBEWithMD5AndDES-verschlüsselte Daten
  • NEU: Support für "S3 Reduced Redundancy Storage" (mehr...)
  • NEU: Kommando "storageClass" zur Batch-Änderung von Standard/ReducedRedundancy-Speicherung
  • Diff für inkrementelles Backup
  • Include- & Exclude-Patterns zur genauen Bestimmung der zu sichernden Dateien
  • Symlink Backup + Restore
  • Parallele Threads für ein Maximum an Geschwindigkeit
  • putCopy kopiert Files bei S3 ohne Down/Upload
    • NEU: putCopy mit alternativem Ziel-Bucket
  • Lokales Backup: alle A8S3-Features auch für lokale Sicherungen nutzen (z.B. auf externe Festplatte oder NAS)
  • Bucket-Operationen: Anlegen, Löschen
  • Datei-Operationen: List, Head, Put, Get, Delete

Mit A8S3 können effizient und skalierbar alle Backup-Aufgaben automatisiert werden!

Download

Aktuelle Version 2.1.1: A8S3.zip

Die Download-Version hat alle Funktionen der Vollversion mit folgender Einschränkung: Die On-thy-fly Verschlüsselung zur Sicherung ihrer Daten bei S3 ist nicht möglich. Bitte bestellen Sie HIER eine Lizenz um die AES-Verschlüsselung zu aktivieren.

Voraussetzungen:

Durch den Download akzeptieren Sie das License Agreement (Englisch).

Beispiele

./s3l.sh help

zeigt die Hilfe und alle verfügbaren Parameter an

./s3l.sh createBucket mybucket US

legt den S3-Bucket "mybucket" in USA an

./s3l.sh list mybucket var/www

listet alle Dateien im S3 bucket "mybucket" auf, die in var/www liegen
... eigentlich alle Dateien, deren Key bei S3 mit var/www beginnt - also auch zb Dateien in var/www2, var/www-test, usw.
beachte: S3-Keys beginnen nicht mit einem / daher "var/www" und nicht "/var/www"

./s3l.sh put mybucket /home/name -pw=topsecret -storageClass=rr

sichert alle Dateien aus /home/name (rekursiv, d.h. inkl. aller Unterverzeichnisse) im Bucket "mybucket"
verschlüsselt die Daten mit dem Passwort "topsecret" (d.h. die Daten sind bei der Übetragung und bei S3 verschlüsselt abgelegt)
die Daten werden bei S3 im Reduced Redundancy Storage abgelegt
5 parallele Threads werden zur Datenübertragung verwendet (putT default)

./s3l.sh get mybucket home/name -path=/tmp -pw=topsecret

lädt die im vorigen Beispiel gesicherten Dateien von S3 herunter nach /tmp
Verzeichnisstrukturen werden in /tmp nötigenfalls aufgebaut
beachte: S3-Keys beginnen nicht mit einem / daher "home/name" und nicht "/home/name"
5 parallele Threads werden zur Datenübertragung verwendet (getT default)

./s3l.sh diff mybucket /home/myname -putLocal -putModified -deleteRemote -deleteAge=30 -pw=topsecret

sichert alle Datein und Verzeichnisse aus /home/myname (rekursiv) im S3 Bucket "mybucket" mit folgenden Optionen:

  • -putLocal ... sichert alle Dateien bei S3, die es nur lokal gibt und nicht bei S3 (z.B. neu dazugekommene)
  • -putModified ... sichert alle Dateien bei S3, die lokal ein späteres Änderungsdatum aufweisen als bei S3 (d.h. alle lokal geänderten Dateien)
  • -deleteRemote -deleteAge 30 ... löcht nach 30 Tagen bei S3 alle Dateien, die es lokal nicht mehr gibt
  • -pw=topsecret ... Passwort für die On-The-Fly-Verschlüsselung der Dateien

./s3l.sh diff mybucket /etc/apache2/ "-include=.*\.conf$" "-include=.*/conf.d/.*" "-exclude=".*/proxy\.conf" -putLocal -putModified -deleteRemote -deleteAge=30 -pw=topsecret

sichert Apache Config-Dateien (*.conf außer proxy.conf und alles in conf.d) aus /etc/apache2 im S3 Bucket "mybucket" im Diff-Modus

./s3l.sh storageClass mybucket home/ rr

verschiebt alle Dateien unter home/ bei S3 in den Reduced Redundancy Storage (ohne Down/Upload)
25 parallele Threads werden verwendet (changeT default)

Kommandozeilen-Parameter

A8S3 2.1.0 - Command line tool for file backup operations (local & Amazon S3) (C) 2008-2011 www.activ8.at

USAGE: java at.activ8.a2amazon.s3.A2S3CommandLine COMMAND [parameters]

possible COMMANDs:
  createBucket BUCKET ... creates the bucket in EU
    [REGION] ... optional region for bucket (US, USW, EU, AP) (default = EU)

  deleteBucket BUCKET ... deletes the bucket (must be empty)

  list BUCKET ... lists all keys in bucket
    [KEYPREFIX] ... optional keyprefix

  head BUCKET KEYPREFIX ... prints metadata of object(s)

  put BUCKET PATH ... puts all files found at PATH (including all sub-dirs)
    [-include=INCLUDE] ... multiple optional regexes to include (path delimiter is always '/') (default = .*)
    [-exclude=EXCLUDE] ... multiple optional regexes to exclude (path delimiter is always '/')
    [-keyprefix=KEYPREFIX] ... optional keyprefix at S3 (if not set, absolute paths are used as keys)
    [-pw=PASSWORD] ... optional encryption using PASSWORD
    [-storageClass=rr] ... optional ReducedRedundancy storage class
    [-putT=#] ... optional number of parallel threads (default = 5)
    [-show] ... only show what will be done

  putCopy BUCKET SRC-KEYPREFIX DST-KEYPREFIX ... copies files at S3 without down/upload
    [-dstBucket=BUCKET] ... optional destination bucket name
    [-storageClass=rr] ... optional ReducedRedundancy storage class
    [-copyT=#] ... optional number of parallel threads (default = 25)
    [-show] ... only show what will be done

  storageClass BUCKET KEYPREFIX [s|rr] ... changes the storage class at S3
    s = Standard, rr = Reduced Redundancy
    [-changeT=#] ... optional number of parallel threads (default = 25)
    [-show] ... only show what will be done

  delete BUCKET KEYPREFIX ... deletes all files matching KEYPREFIX
    [-deleteT=#] ... optional number of parallel threads (default = 25)
    [-show] ... only show what will be done

  get BUCKET KEYPREFIX ... downloads all files with KEYPREFIX
    [-path=PATH] ... optional local PATH to use as base dir for downloaded files
    [-pw=PASSWORD] ... optional decryption using PASSWORD
    [-getT=#] ... optional number of parallel threads (default = 5)
    [-show] ... only show what will be done

  diff BUCKET PATH ... print diff of PATH
    [-include=INCLUDE] ... multiple optional regexes to include (path delimiter is always '/') (default = .*)
    [-exclude=EXCLUDE] ... multiple optional regexes to exclude (path delimiter is always '/')
    [-putLocal] ... put all files available locally but missing at S3
    [-putModified] ... put all locally modified files
      [-keyprefix=KEYPREFIX] ... optional keyprefix at S3 (if not set, absolute paths are used as keys)
      [-pw=PASSWORD] ... optional encryption using PASSWORD
      [-storageClass=rr] ... optional ReducedRedundancy storage class
      [-putT=#] ... optional number of parallel put-threads (default = 5)
    [-getRemote] ... get all files stored at S3 but missing locally
      [-pw=PASSWORD] ... optional decryption using PASSWORD
      [-path=PATH] ... getRemote: optional local PATH to use as base dir for downloaded files
      [-getT=#] ... optional number of parallel get-threads (default = 5)
    [-deleteRemote] ... delete all files storead at S3 but missing locally
      [-deleteAge=X] ... delete remote file if lastModified @ S3 is older than X days
      [-deleteT=#] ... optional number of parallel threads (default = 25)
    [-show] ... only show what will be done

  localPut FROMPATH TOPATH ... copies all files found at FROMPATH to TOPATH (including all sub-dirs)
    [-include=INCLUDE] ... multiple optional regexes to include (path delimiter is always '/') (default = .*)
    [-exclude=EXCLUDE] ... multiple optional regexes to exclude (path delimiter is always '/')
    [-show] ... only show what will be done

  localDiff FROMPATH TOPATH ... print diff of PATH
    [-include=INCLUDE] ... multiple optional regexes to include (path delimiter is always '/') (default = .*)
    [-exclude=EXCLUDE] ... multiple optional regexes to exclude (path delimiter is always '/')
    [-putLocal] ... copy all files available at FROM to TO that are missing at TO
    [-putModified] ... copy all files modified at FROM
    [-getRemote] ... copy all files stored at TO but missing at FROM to FROM
    [-deleteRemote] ... delete all files storead at TO that are missing at FROM
      [-deleteAge=X] ... delete file at TO if lastModified @ TO is older than X days
    [-show] ... only show what will be done

REQUIREMENTS:
  JAVA 1.7
  aws-java-sdk-1.1.5.jar
  bcprov-jdk16-146.jar
  commons-codec-1.3.jar, commons-httpclient-3.1.jar, commons-io-1.0.jar, commons-lang-2.5.jar, commons-logging-1.1.1.jar

Hinweise:

  • Amazon S3 AccessKey/SecretAccessKey werden als Systemproperty übergeben (.bat und .sh Files liegen bei!)
  • In Pfadangaben werden Wildcards (zB *) nicht aufgelöst. Stattdessen können viel flexiblere Include- und Exclude-Patterns (Reguläre Ausdrücke) verwendet werden!
  • Achtung: Sollten Sie das Verschlüsselungspasswort vergessen, sind Ihre Backups bei S3 nicht mehr nutzbar! Verschlüsselte Dateien müssen mit A8S3 (get oder diff) heruntergeladen werden um sie wieder zu entschlüsseln.

Voraussetzungen:

A8S3 jetzt bestellen

Bitte HIER klicken...

© 2011 Activ8 EDV-Dienstleistungen GmbH