ZIP-Dateien: Validieren, nachträglich Aufsplitten und beim Erzeugen gleich Splitten

Auf Linux-Systemen kann man ja mit den Kommandos „split“ und „cat“ recht einfach Dateien aufteilen und wieder zusammenführen. In der Windows-Welt würde das Zusammenfügen von mit split geteilten Dateien mittels „copy /b part1 part2 completefile“ auch noch gehen aber das ist nicht gerade intuitiv und für einen Endanwender nicht akzeptabel.

Deswegen werden für die Windows-Welt am besten ZIP-Dateien erzeugt und in kleine Teile aufgespalten. Aktuell habe ich eine 16GB Datei vor mir die ich erst validieren und dann in 3GB große Teile aufsplitten möchte:

$ aptitude install zip
$ unzip -t 15gbfile.zip
$ zipsplit -n 3145728 15gbfile.zip

Um beim Erzeugen von ZIP-Dateien diese gleich aufzuteilen kann man den -s Parameter benutzen. Das folgende Kommando erstellt 3GB große ZIP-Dateien vom Unterordner myImages:

$ zip -s 3g -r myZippedImages.zip myImages/

Puppet: Pruefung auf Syntaxfehler von .pp und .erb Dateien

In dem Blogeintrag Konfiguration in GIT Repository verwalten / push-to-deploy habe ich den update Hook verlinkt, der eine Syntaxpruefung von .pp Dateien macht. Diesen habe ich heute morgen noch erweitert, so das auch die Templates mit der Endung .erb ueberprueft werden.

Wer die beiden Kommandos manuell ausfuehren moechte, sie sind wie folgt:

  1. Pruefen der Syntax von .pp Dateien:
    puppet parser validate /path/to/file.pp

    Im Fehlerfall gibt es eine Ausgabe wie zum Beispiel:

    Error: Could not parse for environment production: Syntax error at 'jails' at /home/user/git/puppet/modules/fail2ban/manifests/init.pp:13
  2. Pruefen der Syntax von .erb Template Dateien:
    erb -x -T '-' /path/to/file.erb  | ruby -c

    Im Fehlerfall gibt es eine Ausgabe wie zum Beispuel:

    -:44: syntax error, unexpected ')', expecting $end
    ...:jails').include? "ssh" ).to_s); _erbout.concat "n"
    ...

Wie bereits frueher geschrieben, richtig praktisch ist das ganze als update Hook im Git Repository. Die Fehler werden zwar trotzdem nicht zu 100% korrekt abgefangen, dafuer muss man noch Tests ausfuehren (dazu spaeter mehr), aber fuers Erste fangen die beiden Pruefungen schon eine Menge ab.

Bildschirmfoto vom 2014-05-07 07:26:27