Schlagwort: zeugs
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/ |
Übersicht: Wichtige S.M.A.R.T Werte und Ihre Bedeutung
Im IT-Administrator 07/2014 gibt es einen guten Artikel zum Thema S.M.A.R.T Werte bei Festplatten. Da das Thema bei uns in der Firma immer mal wieder aktuell ist und vor allem die Frage im Raum steht wie man Festplatten durch Monitoring besser überwachen kann ist eine Tabelle sehr gut, die aufzeigt welche SMART Werte in der Praxis überhaupt von Relevanz sind und was sie beziehungsweise eine Änderung bedeuten. Für meine eigene Dokumentation möchte ich diese hier einmal festhalten:
Wert | Bedeutung |
---|---|
Spin_Up_Time (ID:3) | Die Zeit in Millisekunden, die der Plattenstapel beim Hochfahren benoetigt, um auf Nenndrehzahl zu kommen. Steigt dieser Wert ploetzlich an, deutet das auf ein defektes Plattenlagter oder Motorproblem hin. |
Spin_Retry_Count (ID:10) | Anzahl der Fehlstarts beim hochdrehen des Plattenstapels. Dreht der Plattenstapel nach kurzer Zeit nicht mit Nenndrehzahl, wird ein erneuter Startversuch unternommen. Beginnt dieser Wert ueber 0 zu steigen, deutet das auf ein defektes Plattenlager oder Motorproblem hin. |
Calibration_Retry_Count (ID:11) | Anzahl der Rekalibrierungsversuche. Schaffen es die Koepfe nicht, sich in der vorgegebenen (kurzen) Zeit genau ueber einer Spir zu platzieren, muss eine Rekalibrierung initiiert werden. Steigt dieser Wert, deutet das vor allem bei aelteren Laufwerken auf beginnende Probleme der Festplattenmechanik hin. |
Power_On_Hours (ID:9) | Anzahl der Betriebsstunden. Der Wert waechst im Laufe der Zeit und zeigt lediglich das Alter der Festplatte in Stunden (manchmal Minuten oder Sekunden) an. |
Temperature_Celsium (ID:194) | Aktuelle Temperatur im Laufwerk. Der Wert sollte ganz grob moeglichst im Bereich von 30°C-40°C liegen - zu warme Festplatten (>45°C) aber auch kalte Platten (<20°C) haben ein deutlich erhoehtes Ausfallrisiko. |
UDMA_CRC_Error_Count (ID:199) | Anzahl der fehlerhaftern Uebertragungen zwischen Festplatte und Controller. Werte ueber 0 deuten auf schlecht eingesteckte Verbindungskabel, mangelde Abschirmung oder Wackelkontakte hin. Sehr hohe Werte (mehrere tausend) koennen Ihre Ursache in einem defekten Controller-Chip haben. |
Reallocated_Sector_Ct (ID:5) | Anzahl der reallozierten Sektoren. Sobald ein Sektor mehrfach nicht mehr korrekt gelesen/geschrieben/geprueft werden kann, wird er in einen reservierten Bereich der Platte ausgelagert (sparse area). Dies ist ein deutliches Warnzeichen, weil es auf beginnende Oberflaechenprobleme hinweist. Beginnt dieser Wert ueber 0 zu wachsen, steht oft ein Festplattenausfall (head-crash) bevor. |
Seek_Error_Rate (ID:7) | Eine nicht naeher spezifizierte Rate fuer Positionierungsfehler der Schreib-/Lesekoepfe. Steigt dieser Wert, deutet das auf Probleme mit der Positionierung der Koepfe hin - Ursache koennen Servofehler, thermische Ausdehnung oder mechanische Ausfallerscheinungen sein. |
(Raw_)Read_Error_Rate (ID:1) | Eine nicht naeher spezifizierte Rate fuer Lesefehler. Ein steigender Wert bedeutet, dass die Oberflaeche der Platten beschaedigt ist oder die Schreib-/Lesekoepfe fehlerhaft arbeiten. |
Uncorrectable_Sector_ct (ID:198) | Anzahl der Versuche, fehlerhafte Sektoren ohne Erfolg zu lesen oder zu schreiben. Ein steigender Wert zeigt defekte Plattenoberflaechen oder Fehler in den Schreib-/Lesekoepfen an. |
Free_Fall_Protection (ID:254) und nG-Sense_Rerror_Rate (ID:221) | Wird bei Notebook-Festplatten die 'Free Fall Protection' ausgeloest (Platte befindet sich bei 0 G im freien Fall) und/oder gibt es Fehler durch zu hohe G-Raten (Vibration/Stoesse), steigen diese Werte. Das wiederum deutet auf einen sehr rauhen Umgang mit den Notebook hin. |
Load_Cycle_Coung (ID:193) | Anzahl der Unload/Load-Zyklen der Schreib-/Lesekoepfe. Viele (Notebook-)Festplatten parken ihre Koepfe (unload) nach wenigen Sekunden Leerlauf, um Energie zu sparen. Schreibt ein Betriebssystem wie Linux alle paar Sekunden beispielsweise eine Log-Datei, muessen die Koepfe dazu wieder 'ent-parkt' werden (load). Die maximale Anzahl von Unload-/Load-Zyklen sollte je nach Hersteller 100.000 bis 600.000 nicht ueberschreiten, waechst im obigen Szenario jedoch um ueber 100 pro Stunde. Das Unload/-Load Maximum ist so innerhalb eines Jahres erreicht. Abhilfe schafft ein Abschalten der Energiespar-Option. |
Current_Pending_Sector_Ct (197) | Dieser besondere Wert zeigt die aktuell nicht korrekt les- oder schreibbaren Sektoren an, die noch nicht remappt wurden. Ist ein Sektor auch nicht mit Hilfe der Fehlerkorrektur (ECC)lesbar, erhaelt er zunaechst den Status 'current pending sector'. Der Sektor wird nun aber noch nicht remapped, weil sein Inhalt (bei Lesefehlern) ja nicht bekannt ist und ein spaeterer Versuche vielleicht erfolgreich ist. Erst nach mehreren erfolglosen Lese-Versuchen wird der Sektor als fehlerhaft markiert und Reallocated_Sector_Ct (ID: 5) um den Wert 1 erhoeht. Wird andererseits schreibend auf den Sektor zugegriffen, muessen die Daten zuvor logischerweise nicht gelesen werden. Die Festplatte markiert den Sektor dann endgueltig als fehlerhaft und mapped ihn in den reservierten Bereich um. |
Puppet: Hiera und Defined Types
puppetlabs apache vhost hiera howto
Das waren in etwa die Stichworte in der Suche als ich versucht habe meine mit dem puppetlabs/apache Modul definierten Apache vhosts aus der site.pp nach hiera zu migrieren. Es wollte nämlich einfach nicht klappen. Nach einiger Zeit bin ich dann darauf gestoßen, dass es sich bei dem apache::vhost um einen sogenannten Defined Type handelt. Diese sind sehr ähnlich zu Klassen, lassen sich aber im Gegensatz zu diesen mehrfach auf einem Node definieren.
Das automatische Parameter-Lookup wie bei den Klassen funktioniert bei Defined Types hingegen nicht. Lösung ist die create_resources() Funktion. Aber damit ich das später auch noch verstehe wenn ich hier in den Blogeintrag hineingucke schreibe ich ein praktisches Beispiel auf.
Ein Apache vhost in der site.pp:
node 'www.example.org' inherits default { apache::vhost {'www.example.org': servername => 'www.example.org', serveraliases => [ 'example.org' ], serveradmin => 'webmaster@example.org', port => '80', docroot => '/var/www/example.org/www/', } |
wird in hiera zu:
--- apache::vhost: 'www.example.org': servername: 'www.example.org' serveraliases: - 'example.org' serveradmin: 'webmaster@example.org' port: '80' docroot: '/var/www/example.org/www/' |
und damit dieser Eintrag auch ausgewertet und der vhost erzeugt wird sieht die site.pp danach wie folgt aus:
node 'www.example.org' inherits default { $myApacheVhosts = hiera('apache::vhost', {}) create_resources('apache::vhost', $myApacheVhosts) } |
Ich empfehle hier wärmstens das Chapter 3 – Using Hiera von Puppet Lunch. Ich habe lange im Netz gesucht und bin schließlich dort fündig geworden.