25.02.2014 Aufrufe

Linux-Magazin Jobs delegieren (Vorschau)

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

05/12<br />

Anzeige:<br />

STRATO V-Server<br />

Keine Einrichtungsgebühr! Keine Vertragsbindung!<br />

strato.de/server<br />

siehe Seite 11<br />

STR0412_TKS_V-Server_120x17.indd 1<br />

21.03.2012 16:59:52 Uhr<br />

Alles monitoren<br />

ohne Aufwand<br />

Großer Stat-Bummel: Pkstat, Vmstat,<br />

Iostat, Netstat, Ifstat und Dstat ab S. 71<br />

Debugging<br />

Virtualbox erschließt neue<br />

Wege, um den <strong>Linux</strong>-Kernel<br />

besser zu debuggen S. 84<br />

Foto-Special<br />

Mit Raw und Retusche:<br />

Corel Aftershot gegen Gimp,<br />

Rawtherapee, Digikam S. 58<br />

<strong>Jobs</strong> <strong>delegieren</strong><br />

Wie Admins nervige Routineaufgaben<br />

automatisieren können<br />

■ Software-Deployment mit M23 und Spacewalk S. 22<br />

■ Pulp 1.0 für Red Hat und alle Verwandten S. 28<br />

■ Tools, die Logfiles automatisch auswerten S. 32<br />

■ Insider-Setups fürs wartungsfreie Backup S. 36<br />

■ HA-Praxis: Pacemaker so konfigurieren, dass<br />

er auch hängende Dienste erkennt S. 40<br />

■ Datenschutzfeste Online-Storages S. 44<br />

■ So automatisieren <strong>Linux</strong>-Autoren S. 48<br />

■ Libre Office 3.5 mit neuen Importfiltern<br />

für Visio- und Powerpoint-Dateien S. 64<br />

■ HTML-Code validieren und bereinigen S. 52<br />

Bash Bashing: Überraschend viele Skripte verlassen sich auf unwirksame Lock-Mechanismen S. 90<br />

www.linux-magazin.de<br />

Deutschland Österreich Schweiz Benelux Spanien Italien<br />

4 5,95 4 6,70 sfr 11,90 4 7,00 4 7,95 4 7,95<br />

4 192587 305954 05


WEBHOSTING · SCHULUNGEN · SUPPORT<br />

Professionelle Hostinglösungen<br />

Performance & Verfügbarkeit<br />

auf höchstem Niveau<br />

Managed Server Lösungen vom Profi<br />

„Ich setze auf <strong>Linux</strong> –<br />

genau wie mein Webhoster!“<br />

Der Open Source Gedanke ist mir wichtig<br />

und ich finde es großartig, dass Mittwald<br />

sich so aktiv für die Communitys einsetzt.<br />

Hinzukommt, dass Performance und Verfügbarkeit<br />

einfach stimmen und ich mich<br />

auf das 24/7-Monitoring und den kompetenten<br />

Service vollkommen verlassen kann.<br />

Ich fühle mich rundum wohl!<br />

Performance-Hungrige nutzen z. B.<br />

Managed Server Lösungen 6.0<br />

Hochwertige Server-Hardware<br />

300 % Magento-Performance<br />

Bis zu 24 Prozessorkerne<br />

Bis zu 128 GB Arbeitsspeicher<br />

Leistungsstarke Server-HDDs<br />

Hardware-RAID 1/10 (optional)<br />

Individuell konfigurierbar<br />

Bereits ab monatlich:<br />

€ 99,99*<br />

zzgl. MwSt.<br />

Alle Angebote richten sich ausschließlich an Gewerbetreibende<br />

Alle Hostinglösungen unter: www.mittwald.de<br />

Rufen Sie uns kostenlos an: 0800 / 440 3000<br />

* Alle genannten Preise verstehen sich monatlich zzgl. MwSt. Die einmalige Einrichtungsgebühr<br />

für die Managed Server 6.0 beträgt 149,- €. Die Vertragslaufzeiten und Abrechnungszeiträume<br />

betragen für die Managed Server 6.0 zwischen 12 und 36 Monate. Automatische<br />

Vertragsverlängerung um 12 Monate, wenn der Vertrag nicht mit einer Frist von<br />

30 Tagen zum Ende der jeweiligen Vertragslaufzeit gekündigt wird.<br />

www.mittwald.de


Weltherrschaft reloaded<br />

Login 05/2012<br />

Editorial<br />

Freundlich und unverbindlich beginnt die Konversation am Messestand des Systemhauses.<br />

„Wie geht’s Ihnen denn?“, fragt der Mitarbeiter seinen Besucher.<br />

Doch die körperliche Unversehrtheit des Gegenübers interessiert ihn nur am<br />

Rande. Mit den folgenden freundlich-zurückhaltenden Fragen wie: „Sind Sie<br />

zufrieden? Alles klar im Job, alles so wie Sie es sich vorstellen?“, legt der Gesprächspartner<br />

nach. So langsam dämmert es auch dem Unbedarftesten, dass<br />

er kurz vor einem Anwerbeversuch steht, wenn er jetzt nur die richtigen (oder<br />

die falschen) Antworten gibt.<br />

www.linux-magazin.de<br />

3<br />

Vor allem <strong>Linux</strong>ern passiert dies derzeit häufig. Pinguin-Kenner, die in ihrem<br />

jetzigen Biotop unzufrieden sind, finden schnell eine neue Bleibe, nicht selten<br />

zu deutlich besseren Konditionen. Headhunter haben Hochkonjunktur und<br />

versenden eifrig Mails, Wirtschaftsbosse verlangen plakativ nach großzügiger<br />

Zuwanderung von (billigeren) IT-Kräften, Arbeitgeber werben mit mehr Geld<br />

oder Freizeit, flexiblen Arbeitszeiten und der Unabhängigkeit von einem ortsgebundenen<br />

Arbeitsplatz.<br />

Markus Feilner,<br />

Stellvertretender Chefredakteur<br />

Kein Wunder, dass da der Jobwechsel voll im Trend liegt. Zwischen den schicken niedersächsischen Ziegelsteinhäuschen<br />

rund um Hannover, wo sich wie jedes Jahr im März die internationale IT-Kompetenz zur Cebit die<br />

Klinker in die Hand gibt, tobt der An- und Abwerbekampf. Eigentlich trifft sich die Branche ja zum Austausch<br />

über Produkte, Innovationen und Technologien, doch dieses Jahr ist irgendwie so vieles anders.<br />

Wer derzeit Arbeitnehmer ist und IT- oder gar <strong>Linux</strong>-Qualifikationen mitbringt, kann sich auf Europas größter<br />

Fachmesse nur schwer dieser Hochstimmung oder den Anwerbeversuchen entziehen. <strong>Linux</strong>-Admins und ‐Entwickler<br />

sind ein begehrter „Rohstoff“, während auf der Gegenseite die Arbeitgeber stöhnen. Aufträge warten,<br />

die Umsätze bleiben unter dem Möglichen, weil die Mitarbeiter fehlen. Man könnte ja, wenn, ach ja, wenn man<br />

nur mehr geeignete Mitarbeiter fände, so der Tenor.<br />

<strong>Linux</strong> im Boom – wie bitte? Doch die Zahlen sprechen für sich: Die IDC rechnet vor, wie erfreulich die Anzahl der<br />

<strong>Linux</strong>-Server wächst, neuerdings sogar auch auf Kosten von Microsoft. Im „Spiegel“ („Nie wieder Viren!“), der<br />

„Süddeutschen Zeitung“ („So findet jeder das richtige <strong>Linux</strong>“) und anderen <strong>Magazin</strong>en plaudern Neueinsteiger<br />

charmant davon, wie leicht es doch sei, den eigenen Laptop mit dem freien System zu betreiben. Eine amerikanische<br />

Studie bescheinigt freier Software, mit 0,45 Fehlern pro 1000 Zeilen Code weniger als halb so viele<br />

Fehler zu enthalten als der Durchschnitt aus der Software-Industrie mit 1,0 Fehlern pro 1000 Codezeilen. In PHP<br />

oder PostgreSQL fänden sich gar nur 0,2 Fehler. Acht von zehn Unternehmen wollen 2012 <strong>Linux</strong>-Kompetenz<br />

aufbauen, laut „IT World“ basiert „jede derzeit heiße Technologie irgendwie auf <strong>Linux</strong>“ – von der Cloud über<br />

Android zu Big Data und ARM-Systemen. Auf der Fachmesse Embedded World ist <strong>Linux</strong> kein Thema, weil es<br />

jeder verwendet. Googles Chris Di Bona nennt Android „den wahr gewordenen Traum vom <strong>Linux</strong>-Desktop“. Der<br />

soll ja 2012 auch auf x86-Architekturen richtig abheben. Alles nur ein Hype?<br />

Vor knapp 17 Jahren erklärte ein finnischer Entwickler die „<strong>Linux</strong> World Domination“ zum Ziel. Damals war<br />

das ein Witz, über den Generationen von <strong>Linux</strong>ern gelächelt haben. Doch 2012 sind <strong>Linux</strong>-Kenntnisse gefragt<br />

wie nie zuvor, Konzepte wie Schwarm-Intelligenz, Crowd-, Cloud- und Community-Strukturen auch in den Geschäftsmodellen<br />

angekommen, neue Berufsbilder wie das des Community-Managers entstanden. So gut wie<br />

jetzt standen die Zeichen für Menschen mit <strong>Linux</strong>-Know-how lange nicht, und interessanterweise scheinen<br />

dieses Mal die Arbeitnehmer davon zu profitieren.


Inhalt<br />

www.linux-magazin.de 05/2012 05 /2012<br />

4<br />

Das <strong>Magazin</strong> gibt Tipps zum Aufbau einer Infrastruktur, die möglichst wenig Arbeit macht:<br />

unbeaufsichtigtes Software-Deployment beispielsweise, auf Dauer allein laufende Backups,<br />

ein HA-Setup, das abgestürzte Dienste erkennt und neu startet, das Synchronisieren in der<br />

eigenen Cloud oder Logfile-Tools, die dem Admin nur die wichtigen Meldungen vorlegen.<br />

Aktuell<br />

Titelthema: Wie Admins Alltagsaufgaben automatisieren<br />

6 N ew s<br />

n Kandidaten für Debian-Leitung<br />

n Skolelinux auf Squeeze-Basis<br />

n Mozilla goes mobile: Boot to Gecko<br />

n Zarafa integriert Agorum DMS<br />

n VoIP-Tischtelefon mit Android<br />

22 Softwareverteilung<br />

Titel<br />

Die freien Tools M23 und Spacewalk im<br />

Test: Wer hält die Clients besser auf Trab?<br />

36 Unbeaufsichtigte Backups<br />

Was die Tool-Hersteller empfehlen.<br />

40 Pacemaker feinfühlig<br />

Ressource Agents automatisieren das<br />

Monitoring im Cluster.<br />

44 Datei-Synchronisation<br />

Cloudlösungen im Eigenbau mit<br />

Sparkleshare und Owncloud.<br />

Kleines Board an großem Bildschirm: Daniel<br />

Molkentin demonstriert auf der Cebit spontan<br />

Qt auf dem Raspberry Pi.<br />

12 Zahlen & Trends<br />

n Open-Source-Enquete in Zeitnot<br />

n Bundes-CIO zu DE-Mail und E-Perso<br />

n Openstreetmap begrüßt Apple<br />

n <strong>Linux</strong> Essentials: Neues LPI-Zertifikat<br />

n Beste Berufschancen für <strong>Linux</strong>er<br />

18 Zacks Kernel-News<br />

n Proprietäre Module mit Zugriff auf VFS<br />

n Einbruch: Commit-Mailingliste vermisst<br />

20 <strong>Linux</strong> New Media Award 2012<br />

Preise für das heißeste <strong>Linux</strong>-Device und<br />

die besten Beiträge zu Open Source.<br />

Samsung, Google, Libre Office und PostgreSQL<br />

freuen sich über <strong>Linux</strong> New Media Awards.<br />

Die Benutzeroberfläche von Spacewalk wirkt<br />

nur auf den ersten Blick übersichtlich. Viele<br />

Funktionen verstecken sich in Untermenüs.<br />

28 Pulp 1.0<br />

Von Red Hat stammt das automatische<br />

Software-Deployment für RPMs.<br />

Clients<br />

Admin-CLI Consumer-CLI Pulp-Agent<br />

Pulp WS Proxy<br />

Apache<br />

Pulp-Tools<br />

Admin-CLI, Consumer-CLI, dazu ein Yum-Repository,<br />

Agenten,<br />

Pulp Web Services<br />

ein Proxy und<br />

Pulp<br />

diverse<br />

Master Messaging<br />

Tools: Pulp.<br />

»web.py«<br />

Pulp Library<br />

Pulp Slave Messaging<br />

32 Logfile-Akrobatik »pymongo«<br />

Protokolldateien automatisch überwachen<br />

und Aktionen anstoßen mit Logtail,<br />

Mongo DB<br />

Server<br />

Logcheck, Logdigest und Logsurfer.<br />

Qpid<br />

»python-qpid«<br />

Mit drei simplen Regeln überwacht Logsurfer<br />

Anmeldeversuche an der SSH und informiert<br />

auf Wunsch den Admin.<br />

Nach der Installation steht bei Sparkleshare<br />

die Git-Konfiguration an.<br />

48 Tipps & Tricks<br />

Automatisierung: Nützliches aus den<br />

Trickkisten der <strong>Linux</strong>-<strong>Magazin</strong>-Autoren.<br />

Turnschuhadministration war gestern.<br />

Service<br />

3 Editorial<br />

100 IT-Profimarkt<br />

102 Stellenmarkt<br />

104 Veranstaltungen<br />

104 Inserenten<br />

105 Impressum<br />

106 <strong>Vorschau</strong>


05/2012 05/2012<br />

Inhalt<br />

58 Nach dem Schuss<br />

Ein Foto mit Mond-, Blitz- und Kunstlicht<br />

optimieren – das ist die Aufgabe<br />

im Praxistest. Kann sich Corels neue<br />

Fotosuite mit freien Tools messen?<br />

72 <strong>Linux</strong>-Multimeter<br />

Wer beobachten will, was auf dem <strong>Linux</strong>-<br />

System vorgeht, hat zahlreiche Möglichkeiten.<br />

Das mächtigste der Tools hört auf<br />

den Namen Dstat und vereinfacht vieles.<br />

92 Datensauger<br />

Perl-Meister Schilli klemmt seinen<br />

E-Book-Reader Kindle an den Rechner<br />

und verwaltet die Informationen mit<br />

eigenen Skripten.<br />

www.linux-magazin.de<br />

5<br />

Software<br />

Sysadmin<br />

Know-how<br />

51<br />

Einführung<br />

Auf der DELUG-DVD: Skolelinux 6.04,<br />

Klaus Knopper im Cebit-Video, ein<br />

Galileo-E-Book zu Java und eine Pulp-VM.<br />

52 Bitparade<br />

Titel<br />

Tidy-Tools versprechen den HTML-Code<br />

auszumisten. Vier Kandidaten im Test.<br />

71 Einführung<br />

Titel<br />

Aus dem Alltag eines Sysadmin: Charly<br />

überwacht den Netzwerkverkehr.<br />

72 Dstat & Co.<br />

Titel<br />

Systemdiagnose mit Vmstat, Netstat,<br />

Iostat, Ifstat oder dem universellen Dstat.<br />

84 Kern-Technik 62<br />

Titel<br />

Hochsprachen-Debugging mit den<br />

Kernel-Frontends KDB und GDB.<br />

Host<br />

GDB<br />

User<br />

Kernel<br />

Treiber im<br />

Polling-<br />

Betrieb<br />

Debug-<br />

Server<br />

serielle<br />

Schnittstelle<br />

Target<br />

KGDB<br />

KDB<br />

»kbd«<br />

(Keyboard)<br />

Hardware<br />

»kms«<br />

(Grafik)<br />

Kommandos<br />

dekodieren<br />

und<br />

ausführen<br />

Kernel-Debug-Subsystem<br />

»kgdboc«<br />

Das Debug-Subsystem des <strong>Linux</strong>-Kernel.<br />

Vmstat mit fünf Ausgabezeilen, die sich sekündlich<br />

aktualisieren.<br />

Programmieren<br />

HTML Tidy, Total Validator (im Bild das Firefox-Plugin),<br />

HTML Purifier und HTM Lawed.<br />

58 Aftershot Pro<br />

Titel<br />

Corels professionelle Fotobearbeitung<br />

im Praxistest gegen Gimp, Digikam und<br />

Rawtherapee.<br />

64 Office-Dateien importieren<br />

Titel<br />

Libre Office 3.5.1 bringt neue Importfilter<br />

für MS Visio und Powerpoint.<br />

Forum<br />

78 Recht<br />

Der Europäische Gerichtshot hat die<br />

allgemeine Prüf- und Filterpflicht für<br />

Provider gekippt.<br />

81 Leserbriefe<br />

Auf den Punkt gebracht.<br />

82 Bücher<br />

Ein Buch und ein<br />

Videotraining zu<br />

Jquery.<br />

90 Bash Bashing – Folge 20<br />

Shellskripte aus der Stümper-Liga:<br />

Richtiges Locking.<br />

92 Perl-Snapshot<br />

Der Kindle speichert Anmerkungen des<br />

Lesers. Sie lassen sich mit Perl auslesen<br />

und für Volltext-Suchabfragen nutzen.<br />

Markierte Textstellen erscheinen in der Datei<br />

»My Clippings.txt« auf dem Kindle.<br />

Gelingt jetzt viel besser: Diagramme aus Microsoft-Produkten<br />

in Libre Office importieren.<br />

68 Tooltipps<br />

Kurz getestet: Lziprecover, Kccmp,<br />

Checksuite, Tmsu Clamtk und Getxbook.<br />

TOOL<br />

DELUG-DVD<br />

TOOL<br />

Knopper on Stage<br />

TOOL<br />

Knoppix-Macher führt 40 Minuten<br />

lang abgefahrene Desktop-Tricks vor<br />

Skolelinux 6.04<br />

TOOL<br />

Basiert auf Debian Squeeze und<br />

eignet sich ideal für Schulen, Unis<br />

und die Weiterbildung<br />

Doppelseitige DVD,<br />

Details auf S. 51<br />

E-Book gratis<br />

Kostet als Buch 50 Euro:<br />

„Java 7 – Mehr als eine Insel“<br />

Pulp ausprobieren<br />

TOOL<br />

Fertig konfigurierte virtuelle<br />

Appli ance passend zum Software-<br />

Deployment-Artikel


Aktuell<br />

www.linux-magazin.de News 05/2012<br />

6<br />

News<br />

Qt 5 benutzt C++11 und Open GL<br />

Entwickler Daniel Molkentin<br />

von Nokia hat bei der Cebit eine<br />

<strong>Vorschau</strong> auf Version 5 des<br />

Qt-Toolkits gegeben. Sie soll<br />

noch im Jahr 2012 erscheinen<br />

und trotz diverser Runderneuerungen<br />

kompatibel zu Qt 4.x<br />

bleiben. Die KDE-Bibliotheken<br />

seien beispielsweise schon<br />

auf Qt 5 aktualisiert, erzählte<br />

Molkentin.<br />

Die Organisation des Toolkits<br />

wird modularer und teilt sich<br />

in Essentials und Addons auf.<br />

Daneben gibt es einen Grafikstack,<br />

der mit 250 statt 100<br />

Frames pro Sekunde läuft,<br />

und Qt Quick 2 benutzt Open-<br />

GL. Weitere geplante Features<br />

sind Unterstützung für Json<br />

und MIME-Typen sowie der<br />

Einsatz der PCRE für reguläre<br />

Ausdrücke in Unicode.<br />

Kleines Board an großem Bildschirm: Daniel Molkentin demonstriert spontan Qt<br />

auf dem Raspberry Pi.<br />

C++11 werde ebenfalls umgesetzt,<br />

sagte Molkentin, da<br />

bereits viele Programmierer<br />

auf den neuen Standard setzen<br />

würden.<br />

Die erste Beta für Qt 5 soll<br />

es im April geben, die fertige<br />

Release im ersten Halbjahr<br />

2012. Die im Dezember 2011<br />

veröffentlichte Version 4.8<br />

erhält weiterhin Support, um<br />

den Versionswechsel sanft zu<br />

gestalten.<br />

Als Zugabe demonstrierte<br />

Daniel Molkentin auf dem<br />

großen Bildschirm am <strong>Linux</strong>-<br />

New-Media-Stand Qt unter<br />

Debian mit seinem mitgebrachten<br />

Raspberry Pi. n<br />

Suchsoftware für wissenschaftliche Aufsätze<br />

Auf der Cebit war der Themenbereich<br />

Forschung in<br />

Hal le 26 zu Gast. Unter anderem<br />

präsentierte dort das<br />

Deutsche Forschungszentrum<br />

für künstliche Intelligenz<br />

(DFKI) eine Lösung für<br />

satzsemantische Suche. Die<br />

Anwendung TAKE Searchbench<br />

durchsuchte zur Demonstration<br />

22 500 wissenschaftliche<br />

Artikel, die 4,3<br />

Millionen Sätze enthalten.<br />

Der Anwender kann einfache<br />

Satzausssagen formulieren,<br />

die die Engine mit Hilfe von<br />

Synonymwörterbüchern erweitert<br />

und in den Dokumenten<br />

sucht, derzeit aber nur in<br />

Englisch. Dabei berücksichtigt<br />

sie auch Antonyme (Gegensätze)<br />

und Verneinungen und<br />

lässt sich auf verschiedene<br />

Schärfestufen einstellen, wie<br />

der Informatiker Ulrich Schäfer<br />

am Stand F42 zeigte.<br />

Die Suchsoftware von Christian Spurk (links) und Ulrich Schäfer (rechts) kann<br />

auch darstellen, wie wissenschaftliche Aufsätze einander zitieren.<br />

Hinter dieser Leistung steckt<br />

eine Menge Open-Source-<br />

Software wie zum Beispiel<br />

die Suchmaschine Apache<br />

Lucene. Der Computerlinguist<br />

Christian Spurk hat den Code<br />

erweitert, damit sie nicht nur<br />

mit Key-Value-Paaren, sondern<br />

auch mit Satzgebilden<br />

umgehen kann.<br />

Die sehr aufwändige Indizierung<br />

des PDF-Zeitschriftenarchivs<br />

der Association for<br />

Computational Linguistics<br />

(ACL) erfolgte auf einem<br />

<strong>Linux</strong>-Grid. Die Archivsuche<br />

mit Searchbench lässt sich<br />

auf einer öffentlichen Webseite<br />

unter [http://​aclasb.​dfki.​<br />

​de/] ausprobieren.<br />

n


Kandidaten für Debian-Leitung stellen sich vor<br />

Anfang April 2012 wählen<br />

die Mitglieder des Debian-<br />

Projekts ihren neuen Leiter.<br />

Bis jetzt haben sich drei Bewerber<br />

mit ihren Programmen<br />

vorgestellt.<br />

Dazu gehört der amtierende<br />

Debian Project Leader (DPL)<br />

Stefano Zacchiroli, der derzeit<br />

bereits sein zweites Amtsjahr<br />

absolviert. Auf seiner<br />

so genannten Platform-Seite<br />

[http://​www.​debian.​org/​vote/​2012/​<br />

​platforms/​zack] bietet er an, die<br />

Projektleitung in seinem bisherigen<br />

Stil ein weiteres Jahr<br />

fortzuführen. Zudem möchte<br />

er künftige DPL-Aspiranten<br />

mit dem Amt vertraut machen.<br />

Sollte er wiedergewählt<br />

werden, möchte er unter anderem<br />

Interessierten den Einstieg<br />

in die Mitarbeit erleichtern,<br />

auch solchen, die keine<br />

Softwarepakete bauen. Daneben<br />

stehen Entwickler-Sprints<br />

für konkrete Entwicklungsziele<br />

auf seiner Agenda.<br />

Zweiter Bewerber ist der belgische<br />

<strong>Linux</strong>-Consultant Wouter<br />

Verhelst [http://​www.​debian.​<br />

​org/​vote/​2012/​platforms/​wouter],<br />

der seit 2001 den Status eines<br />

Debian-Entwicklers innehat.<br />

Er möchte stärker die Führung<br />

ergreifen und nicht nur<br />

das Projekt verwalten. Daneben<br />

wünscht sich der Mitorganisator<br />

der Brüsseler Konferenz<br />

Fosdem, dass Debian<br />

das Image loswird, nur veraltete<br />

Software zu liefern.<br />

Stefano Zacchiroli bei der Debconf in<br />

Banja Luka.<br />

Der dritte Kandidat ist Gergely<br />

Nagy, der schon 2000 an<br />

Debian mitarbeitete, sich aber<br />

zwischenzeitlich zurückzog.<br />

Er vergleicht auf seiner unterhaltsam<br />

geschriebenen Platform-Seite<br />

[http://​www.​debian.​<br />

​org/​vote/​2012/​platforms/algernon]<br />

die Kandidatur mit dem Balancieren<br />

auf einer Planke<br />

über einem Meer voller Haifische.<br />

Auch er möchte das<br />

Debian-Projekt attraktiver für<br />

talentierte Neueinsteiger machen,<br />

die den Projektmitgliedern<br />

bei der vielen anstehenden<br />

Arbeit unter die Arme<br />

greifen sollen. Dazu möchte<br />

er auch mit seiner Beteiligung<br />

am diesjährigen Google Summer<br />

of Code beitragen. n<br />

News 05/2012<br />

Aktuell<br />

www.linux-magazin.de<br />

7<br />

Skolelinux auf Squeeze-Basis<br />

Skolelinux: Debian für Schulen und Bildungseinrichtungen.<br />

Skolelinux, die Debian-Ausgabe<br />

für Bildungseinrichtungen,<br />

ist in Version 6.0.4 erstmals<br />

auf Basis der aktuellen Debian-Release<br />

Squeeze erhältlich.<br />

Bildungsprogramme wie<br />

Celestia, Dr. Geo, Gcompris,<br />

Geogebra, Kalzium, Kgeography<br />

und Solfege sind<br />

standardmäßig enthalten. In<br />

der neuen Version ersetzt Gosa2<br />

das Programm LWAT bei<br />

der LDAP-Administration. Neben<br />

KDE und Gnome ist mit<br />

LXDE eine weitere Desktopumgebung<br />

im Angebot. Zudem<br />

haben die Entwickler das<br />

Booten der LTSP-Clients beschleunigt.<br />

Hinweise zur Release<br />

gibt [http://​www.​skolelinux.​<br />

​org]. Skolelinux ist auf der<br />

DELUG-DVD zu finden. n<br />

Audacity mit mehr<br />

Effekten<br />

Mit Version 2.0.0 bekommt<br />

die Audio-Software Audacity<br />

neue Features und Bugfixes.<br />

Zu den Neuerungen des Editors<br />

zählen verbesserte Effekte,<br />

etwa zur Rauschunterdrückung,<br />

und ein Vocal-Remover.<br />

Die Arbeit erleichtert der<br />

nun komplett mit der Tastatur<br />

steuerbare Umgang mit Tracks<br />

und Auswahlbereichen. Auch<br />

wird der Codec FLAC nun<br />

vollständig unterstützt.<br />

Mit der neuen Funktion Crash-<br />

Recovery sollten Programmabstürze<br />

ihren Schrecken<br />

verlieren, zumindest versucht<br />

Audacity die Wiederherstellung<br />

der Sitzung. Daneben<br />

sind Verbesserungen an allen<br />

Ecken eingeflossen. Die<br />

ausführlichen Release Notes<br />

[http://wiki.audacityteam.org/wiki/<br />

Release_Notes_2.0.0] beschreiben<br />

die Details.<br />

n<br />

<strong>Linux</strong>-Workstations<br />

von HP<br />

Hewlett-Packard erweitert<br />

sein Workstation-Angebot um<br />

neue Modelle, die auch mit<br />

vorinstalliertem <strong>Linux</strong> zu haben<br />

sind. Die neuen Z-Workstations<br />

im Tower-Format verwenden<br />

Xeon-E5-Prozessoren<br />

von Intel sowie Nvidias Quadro-Grafikkarten.<br />

Die Auswahl beginnt bei der<br />

HP Z420, die bis zu 64 GByte<br />

Arbeitsspeicher und bis zu 11<br />

TByte Massenspeicher aufnimmt.<br />

Die Preise beginnen<br />

bei 1249 Euro inklusive Mehrwertsteuer.<br />

Im Modell HP<br />

Z620 finden bis zu 96 GByte<br />

RAM und bis zu 11 TByte<br />

Plattenspeicher Platz. Es soll<br />

ab 1500 Euro erhältlich sein.<br />

Der stärkste Bolide heißt HP<br />

Z820 und nimmt auch Solid-<br />

State-Disk-Speicher bis 1,8<br />

TByte auf. Der Preis beginnt<br />

bei 1900 Euro.<br />

n


Aktuell<br />

www.linux-magazin.de News 05/2012<br />

8<br />

Muon Suite erneuert Update-Manager<br />

Die Muon Suite mit Paketmanagement-Software<br />

für Debian-basierte<br />

Systeme ist in der<br />

aktualisierten Version 1.3.0<br />

erhältlich. Augenfällig ist der<br />

überarbeitete Update-Manager.<br />

In drei Kategorien weist<br />

er auf anstehende Updates<br />

hin: System, Anwendungen<br />

und Security. Beim Klick auf<br />

einen Eintrag zeigt das GUI-<br />

Programm das zugehörige<br />

Changelog an. Eigens für diesen<br />

Zweck hat der Kubuntu-<br />

Entwickler Jonathan Thomas<br />

die Klasse »QApt::Changelog«<br />

in der zugrunde liegenden<br />

Bibliothek Lib-Q-Apt geschaffen.<br />

Und er hat Bugreports<br />

abgearbeitet, die mit Abstürzen<br />

zu tun haben.<br />

Die Version 1.3.0 ist für<br />

Ubuntu Oneiric in dem Paketarchiv<br />

[https://​launchpad.​net/​<br />

​~echidnaman/​+archive/​qapt] des<br />

Entwicklers zu haben, in Kubuntu<br />

12.04 geht sie in die<br />

offiziellen Repositories ein. n<br />

Boot to Gecko: Mozillas Mobil-Web<br />

Mozilla arbeitet an einer Software<br />

für Smartphones und<br />

Tablets. Noch 2012 soll der<br />

Mobilfunkanbieter Telefonica<br />

erste Geräte mit dem Produkt<br />

„Boot to Gecko“ ausliefern,<br />

das gaben die Kooperationspartner<br />

beim Mobile World<br />

Congress in Barcelona bekannt.<br />

Zu den weiteren Unterstützern<br />

gehören Adobe und<br />

Qualcomm, auch die Deutsche<br />

Telekom will Entwicklerressourcen<br />

ihres Innovation Lab<br />

dafür bereitstellen.<br />

Boot to Gecko soll eine freie<br />

Laufzeitumgebung für HTML<br />

5 und Webanwendungen<br />

werden. Zu den Bausteinen<br />

zählen <strong>Linux</strong> und Mozillas<br />

Browsertechnologie. Mit<br />

Android habe das nichts zu<br />

tun, betont das Projekt. Das<br />

Video [http://​www.​youtube.​com/​<br />

​watch?​v=OAaH5vikEOM] zeigt einen<br />

Prototyp.<br />

n<br />

RHEL 5.8 verbessert KVM-Virtualisierung<br />

Der Update-Manager der Muon Suite zeigt für jede anstehende Aktualisierung<br />

das zugehörige Changelog an.<br />

Backtrack 5 R2 erweitert Tool-Vielfalt<br />

Red Hat liefert sein Enterprise<br />

<strong>Linux</strong> (RHEL) nun in Version<br />

5.8 mit verbesserter KVM-Virtualisierung<br />

aus. Der Hersteller<br />

sieht die Minor-Release als<br />

Baustein seiner neuen Wartungszeit<br />

von zehn Jahren für<br />

die Enterprise-Distribution.<br />

RHEL 5 wird nun bis 2017<br />

unterstützt.<br />

Die neue Version erlaubt statt<br />

128 virtueller CPUs für KVM-<br />

Gäste nun 250, daneben erfuhren<br />

auch die Bootzeiten<br />

der virtualisierten Gäste sowie<br />

die Stabilität des KVM-Hosts<br />

Verbesserungen. RHEL unterstützt<br />

nun PCI-E-3.0-Hardware<br />

sowie Quality of Service<br />

beim Laufzeit-Powermanagement.<br />

IP over Infiniband konfiguriert<br />

der Admin jetzt aus<br />

dem Systeminstaller, daneben<br />

überwacht das neu aufgenommene<br />

Tool Iotop den Datendurchsatz<br />

auf Prozess ebene.<br />

Neue Treiber liefert Red Hat<br />

unter anderem für aktuelle<br />

Netzwerk-, Storage- und Grafik-Hardware.<br />

n<br />

Backtrack, eine <strong>Linux</strong>-Distribution<br />

mit zahlreichen Security-Tools,<br />

ist in Version 5 R2<br />

mit aktualisiertem Kernel und<br />

erweitertem Software-Angebot<br />

verfügbar. Den verwendeten<br />

Kernel 3.2.6 haben die Entwickler<br />

mit besonderem Augenmerk<br />

auf WLAN-Treiber<br />

angepasst. Daneben melden<br />

die Macher 42 neue Tools, darunter<br />

Maltego, mit dem Forensiker<br />

Befunde erfassen und<br />

visualisieren können.<br />

Der Hersteller, der eine kommerzielle<br />

sowie eine Community-Variante<br />

der Software anbietet,<br />

hat eine Sonderausgabe<br />

der Version 3.1.0 paketiert.<br />

Das Metasploit-Framework<br />

wird in Community Edition<br />

4.2.0 mitgeliefert. Zudem haben<br />

die Entwickler Bugs behoben<br />

und wollen Updates des<br />

zugrunde liegenden Ubuntu<br />

rascher einpflegen.<br />

Neben neuer Software gibt<br />

es auch neue Anleitungen<br />

im Wiki. Backtrack steht mit<br />

KDE und Ubuntu für x86<br />

und x86_64 zum Download<br />

auf [http://​www.​backtrack‐linux.​<br />

​org/​downloads/] bereit. Für ein<br />

Upgrade genügt es aber, das<br />

richtige Repository in die Paketquellen<br />

einzutragen. n<br />

Dokumentenmanagement aufgebohrt<br />

Mittels Outlook-Plugin, eines<br />

Dateisystem-Interface oder via<br />

Webschnittstelle können Anwender<br />

der freien Enterprise-<br />

Groupware Zarafa [http://​www.​<br />

​zarafa.​com] ihre Dokumente<br />

gemeinsam verwalten. Möglich<br />

macht das die Integration<br />

von Agorum DMS. Das Modul<br />

„Dokumenten Management<br />

System“ steht laut Hersteller<br />

für alle drei Zarafa-Varianten<br />

(Community, Professional,<br />

Enterprise) zur Verfügung, es<br />

basiert auf Agorum Core der<br />

deutschen Agorum Software<br />

GmbH.<br />

Dank der integrierten Suchund<br />

Indizierungsfunktionen<br />

lassen sich Dokumente auch<br />

aus E-Mail-Anhängen schneller<br />

finden, weil Agorum auch<br />

diese automatisch abspeichert,<br />

und zwar inklusive der<br />

Versionierung und der Dokumenten-Historie.<br />

n


Opengnsys und Uranos fürs Deployment<br />

In der Open Source Project<br />

Lounge der Cebit zeigten<br />

die Projekte Opengnsys und<br />

Uranos freie Lösungen, um<br />

Betriebssysteme und Software<br />

auf Rechnerpools zu<br />

installieren. An spanischen<br />

Universitäten entstand 2009<br />

Opengnsys. Das System kann<br />

von einem zentralen Server<br />

aus Windows und <strong>Linux</strong>-Distributionen<br />

auf Rechnern im<br />

Netzwerk booten und installieren.<br />

Dabei präsentiert die<br />

GPLv3-Software jedem Client<br />

oder jeder Rechnergruppe ein<br />

maßgeschneidertes PXE-Menü,<br />

aus dem der Anwender<br />

das zu bootende Betriebssystem-Image<br />

auswählt.<br />

Opengnsys unterstützt auch<br />

Dualboot-Installationen mit<br />

zwei Betriebssystemen in je<br />

einer eigenen Partition, beispielsweise<br />

Windows und<br />

<strong>Linux</strong>. Weitere Informationen<br />

Die Admins Jan Klopfleisch (links) und Mario Gzuk<br />

(rechts) präsentierten ihr vielseitiges Tool Uranos in der<br />

Project Lounge.<br />

finden sich auf der Opengnsys-<br />

Homepage [http://​opengnsys.​es/​<br />

​wiki/​WikiStart/​en].<br />

Nicht nur Images, sondern<br />

auch einzelne Softwarepakete<br />

verwaltet Uranos. Der Sysadmin<br />

Mario<br />

Gzuk entwickelt<br />

sein System<br />

bereits seit<br />

2004, als es<br />

zum Eigenbedarf<br />

in einer<br />

Forschungseinrichtung<br />

entstand.<br />

Red Hat<br />

Enterprise <strong>Linux</strong>,<br />

Open Suse,<br />

Ubuntu<br />

und Debian installiert<br />

die Software nach<br />

Maßgabe von Preseed- oder<br />

Autoyast-Beschreibungen.<br />

Auch Windows kann Uranos<br />

ausrollen. Doch hier beginnt<br />

erst der Funktionsumfang der<br />

Lösung, die auch Befehle auf<br />

den Clients ausführt und<br />

Schnittstellen zu LDAP-,<br />

DHCP- und DNS-Servern besitzt.<br />

Zudem bietet die Weboberfläche<br />

einen Kalender,<br />

der die Gültigkeit kommerzieller<br />

Softwarelizenzen verwaltet.<br />

Außerdem eingebaut sind<br />

Switch-Management per SN-<br />

MP, ein Abbild der Patch-Verkabelung<br />

sowie ein Wiki. Uranos<br />

ist unter [http://​uranos.​<br />

​sourceforge.​net] zu finden. n<br />

News 05/2012<br />

Aktuell<br />

www.linux-magazin.de<br />

9<br />

fABio<br />

40 Jahre<br />

BEruf: System-Administrator<br />

hErAuSfordErung: How to keep it simple<br />

liEBt: Die Freizeit, die ihm ab und an zusteht<br />

WünScht Sich: Freie Wochenenden – lebenslang!<br />

Ein Job ohne netEye? Erschwert einiges<br />

Enterprise System & Application Monitoring<br />

› Tested und supported Open Source<br />

› Nagios als Basisplattform<br />

› End User Monitoring mit ntop<br />

› Integriertes Help Desk mit OTRS<br />

› Asset- und Inventory Management<br />

www.wuerth-phoenix.com/neteye<br />

› SAP Monitoring<br />

› Business Process Monitoring<br />

› ITIL basierte Supportprozesse<br />

› Einfache Inbetriebnahme<br />

› Flexibel erweiterbar<br />

NetEye


Aktuell<br />

www.linux-magazin.de News 05/2012<br />

10<br />

Kurznachrichten<br />

Netshe 1.0: Eine Weboberfläche für Router mit Open-WRT-Firmware. Neu:<br />

Version 1.0 markiert die erste stabile Release. Sie basiert auf dem Open<br />

WRT Backfire 10.3.1 und bietet eine überarbeitete Weboberfläche, auf<br />

der sich auch Tunnel-Schnittstellen und Switches verwalten lassen. Das<br />

Subsystem für Quality-of-Service (QoS), den Client für dynamisches DNS<br />

sowie die Zeitsynchronisation haben die Entwickler einem Refactoring<br />

unterzogen. Lizenz: GPL [http://​www.​netshe.​ru/​node/​28]<br />

Ttylinux 10.0: Minimalistische <strong>Linux</strong>-Distribution, die nur 8 MByte für die<br />

Systempartition benötigt und bereits auf i486-Rechnern mit 28 MByte RAM<br />

laufen soll. Neu: Mit dieser Release erhalten alle architekturspezifischen<br />

Ausgaben einheitlich den Codenamen Bazooka und die Versionsnummer<br />

10 – auch wenn das in manchen Fällen ein paradoxes Rückwärtszählen<br />

bedeutet. Mit Busybox 1.19.3, E2fsprogs 1.42 und IPtables 1.4.12 gibt es<br />

zudem einige aktualisierte Softwarepakete. Lizenz: GPL [http://​www.​<br />

​ttylinux.​net]<br />

Weblate 0.6: Der Debian-Entwickler Michal Cihar hat eine Web-basierte<br />

Übersetzungsanwendung veröffentlicht. Neu: Übersetzungen lassen sich<br />

per Webformular eingeben und in einem Git-Repository speichern. Übersetzte<br />

Texte gehen automatisch auch in Unterprojekte ein, und Anwender<br />

können ».po«-Dateien von GNU Gettext hochladen. Beim Übersetzen<br />

liefert das Tool Links in den Programmquelltext, damit die Bearbeiter den<br />

Kontext sehen können. Lizenz: GPLv3 [http://​weblate.​org]<br />

Tine 2.0 2012/03: Web-basierte freie Groupware. Neu: Als Neuerung<br />

gibt es einen Dateimanager, über den die Anwender Dateien per Webdav<br />

oder per Drag & Drop auf das Browserfenster austauschen können. Auch<br />

für Kalender und Kontakte kommen neue Zugriffsprotokolle hinzu: Per<br />

Caldav und Carddav werden die Informationen auf dem Tine-2.0-Server für<br />

Desktop​anwendungen wie Thunderbird und Apples I-Cal sowie das iPhone<br />

und iPad nutzbar. Lizenz: AGPLv3 [http://​www.​tine20.​org]<br />

Kmod 6: Eine Sammlung von Utilities für Kernelmodule. Neu: Neben<br />

Fehlerbeseitigung ist Version 6 wieder kompatibel mit der C-Bibliothek<br />

U-Clibc, und das API der zugrunde liegenden Libkmod erhält die Funktion<br />

»mod_module_apply_filter()«, die Filter auf eine Liste von Modulen anwendet.<br />

Lizenz: GPLv2 [http://​ftp.​kernel.​org/​pub/​linux/​utils/​kernel/​kmod/]<br />

Minix 3.2: Nach knapp eineinhalb Jahren gibt es eine neue Version des<br />

Betriebssystems. Neu: Minix nähert sich immer mehr der Net-BSD-Distribution<br />

an und verwendet erstmals die C-Bibliothek von BSD. Auch das<br />

Paketmanagementsystem »pkgsrc« stammt von Net-BSD. Dies und der<br />

Einsatz des Clang-Compilers statt GCC soll die Portierung von Software auf<br />

Minix vereinfachen. Lizenz: BSD-artig [http://​www.​minix3.​org]<br />

Texmaker 3.3: Populärer Latex-Editor. Neu: Der integrierte PDF-Betrachter<br />

exportiert nun den im PDF-Dokument enthaltenen Text, um Rechtschreibung<br />

und Grammatik zu prüfen. Außerdem kann der Anwender eine<br />

unbegrenzte Anzahl von Latex-Kommandos definieren, die er mit einem<br />

Mausklick oder per Tastaturkürzel einfügt. Die Haupteinträge für Biblatex<br />

lassen sich über das Bibliografie-Menü hinzufügen. Lizenz: GPL [http://​<br />

​www.​xm1math.​net/​texmaker/​index.​html]<br />

VLC 2.0.0: Freie Mediaplayer-Software des Videolan-Projekts. Neu: VLC<br />

nutzt zum Dekodieren der Formate H.264, MPEG-4/​Xvid und Web-M mehrere<br />

Threads. Die Entwickler haben zudem neue Video-Ausgaben für<br />

Windows 7, Android, I-OS und OS/​2 geschrieben, auf dem Mac und in der<br />

Webversion gibt es neue Benutzeroberflächen. Erstmals und derzeit noch<br />

experimentell unterstützt VLC auch Blu-Ray-Discs. Lizenz: LGPL [http://​<br />

​www.​videolan.​org]<br />

VoIP-Tischtelefon mit Android<br />

Smartbook zeigt Tegra-3-Tablet und mehr<br />

Auf der Cebit zeigte der<br />

deutsche Telefon- und Anlagenhersteller<br />

Auerswald sein<br />

neues Spitzenmodell Comfortel<br />

3500. Das Tischtelefon,<br />

das für rund 550 Euro ab April<br />

in den Handel geht, arbeitet<br />

sowohl als Systemtelefon an<br />

den hauseigenen Telefonanlagen<br />

als auch als eigenständiges<br />

SIP-Telefon für externe<br />

VoIP-Provider oder interne<br />

Asterisk-Server.<br />

Das Gerät ist mit Komfortausstattungen<br />

versehen, etwa<br />

einem Sensor, der eine abwinkende<br />

Hand erkennt, um<br />

Anrufe abzuweisen, oder die<br />

Möglichkeit, wahrzunehmen,<br />

dass der Besitzer des Geräts<br />

den Raum verlässt. Dazu indentifiziert<br />

das Comfortel<br />

3500 per Bluetooth das Mobiltelefon<br />

des Benutzers, verlässt<br />

er den Raum, schaltet es etwa<br />

eine Anrufweiterleitung.<br />

Auerswald zeigt sein neues Spitzenmodell<br />

Comfortel 3500.<br />

Das Besondere an dem in<br />

Schwarz oder Weiß erhältlichen<br />

Gerät ist sein Betriebssystem:<br />

Android 2.3. Die Firma<br />

spendiert dem Gerät einen<br />

kapazitiven Farb-Touchscreen<br />

mit 800 mal 480 Pixeln, über<br />

die der Benutzer sieben virtuelle<br />

Andoid-Screens bedient.<br />

Diverse Telefonfunktionen<br />

sind in Googles <strong>Linux</strong>-System<br />

integriert, besonders stolz sind<br />

die Niedersachsen auf die Adressbuch-Synchronisation<br />

mit<br />

Goggle-Diensten, der Telekom-<br />

Cloud oder MS Exchange. n<br />

Die Smartbook AG [http://​www.​<br />

​smartbook.​de] hat das Power<br />

Pad vorgestellt, in dem Nvidias<br />

leistungsfähige Tegra-3-<br />

Plattform mit vier ARM-Kernen<br />

steckt, die unter anderem<br />

für ruckelfreies HD-Video sorgen<br />

soll. Das Gerät besitzt 1<br />

GByte Arbeitsspeicher sowie<br />

16 GByte Flashspeicher, erweiterbar<br />

auf 32 GByte. Der<br />

10,1-Zoll-Touchscreen stellt<br />

1280 mal 800 Pixel dar. Eine<br />

Webcam auf der Rückseite<br />

löst 5 Megapixel auf, die vordere<br />

2 Megapixel. WLAN und<br />

Bluetooth sorgen für drahtlose<br />

Power Pad mit Nvidias leistungsfähiger<br />

Tegra-3-Plattform.<br />

Kommunikation. Als besonderen<br />

Anschluss bietet das mit<br />

Android 4.0 bestückte Tablet<br />

einen Slot für eine separat erhältliche<br />

Dockingstation.<br />

Neben dem Power Pad hat<br />

der Hersteller das Fun Pad 7<br />

gezeigt, das mit einer Dicke<br />

von 10 Millimetern und einem<br />

Gewicht von 350 Gramm auf<br />

Handlichkeit getrimmt ist. Das<br />

7-Zoll-Gerät besitzt ein TFT-<br />

Multitouch-Display mit 800<br />

mal 480 Pixeln und kommt<br />

mit Android 4.0. Das Innenleben<br />

des Fun Pad 7 bilden eine<br />

1-GHz-CPU, 512 MByte RAM<br />

und 4 GByte Flashspeicher.<br />

Dazu kommen ein SD-Karten-<br />

Slot für eine Speichererweiterung<br />

bis auf 32 GByte sowie<br />

Stereolautsprecher, Mikrofon,<br />

Webcam und Kopfhörerklinke.<br />

Für das Netzwerk ist WLAN<br />

mit an Bord des Tablets. (jk/<br />

mfe/mhu/uba)<br />

n


Mein Projekt braucht<br />

viel Leistung – das erledigt<br />

Dietmar Struckmeyer<br />

STRATO Server-Kunde<br />

www.portalhaus.de<br />

Windows V-Server<br />

Stellen Sie Ihren Webauftritt auf ein leis tungsfähiges<br />

und schnelles Fundament – mit einem STRATO V-Server<br />

Einfache Bedienbarkeit und Administration durch Parallels Plesk Panel<br />

€/Mon.*<br />

Keine Einrichtungsgebühr!<br />

Garantierte Leistungsressourcen mit bis zu 4 GB RAM und 200 GB Festplatte<br />

Hohe Stabilität und Kompatibilität des Servers durch Microsoft Hyper-V<br />

Keine Vertragsbindung und kein Risiko<br />

durch 30-Tage-Geld-zurück-Garantie<br />

Hosting-Pakete | Online-Speicher | Webshops | V-Server<br />

* Aktion bis 30.04.12. Preis inkl. MwSt.<br />

Servicetelefon: 0 18 05 - 007 677<br />

(0,14 €/Min. aus dem dt. Festnetz, Mobilfunk max. 0,42 €/Min.)


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 05/2012<br />

12<br />

Zahlen & Trends<br />

Open-Source-Enquete in Zeitnot<br />

Jenseits der Mühen gewöhnlicher<br />

Gesetze und Verordnungen<br />

setzt der Deutsche Bundestag<br />

ab und zu so genannte<br />

Enquetekommissionen ein,<br />

die sich um Grundsätze komplexer<br />

Zukunftsfragen kümmern,<br />

beispielsweise den demografischen<br />

Wandel oder die<br />

Gentechnologie.<br />

Die seit Mai 2010 tagende Enquetekommissionen<br />

„Internet<br />

und digitale Gesellschaft“ besteht<br />

aus 17 Bundestagsabgeordneten,<br />

17 Sachverständigen<br />

und dem Internetforum<br />

[https://​www.​enquetebe​tei​ligung.​de]<br />

– quasi dem 18. Sachverständigen.<br />

Diese parlamentsinterne<br />

Politikberatung plante mit 16<br />

Projektgruppen verschiedene<br />

Digital-Themen zu beackern.<br />

Zwischen Oktober 2011 und<br />

Januar 2012 sollte sich auch<br />

eine Arbeitsgruppe unter dem<br />

Vorsitz des FDP-Abgeordneten<br />

Jimmy Schulz zum Thema<br />

„Interoperabilität, Standards,<br />

Open Source“ konstituieren.<br />

Diese Projektgruppe des Bundestags<br />

zu Open Source lässt<br />

auf sich warten.<br />

Auf Anfrage des <strong>Linux</strong>-<strong>Magazin</strong>s<br />

räumt nun das Büro des<br />

langjährigen <strong>Linux</strong>-Anwenders<br />

ein, dass die „intensiven<br />

Der Abgeordnete Jimmy Schulz (43)<br />

wartet optimistisch auf den Start<br />

der Projektgruppe „Interoperabilität,<br />

Standards, Open Source“ in der<br />

Internet-Enquetekommission.<br />

Diskussionen in den anderen<br />

Projektgruppen“ die Arbeit<br />

in der Enquetekommission<br />

insgesamt verzögert hätten.<br />

Deswegen werde die Projektgruppe<br />

Open Source später als<br />

geplant eingesetzt.<br />

Schulz’ Sprecherin versichert<br />

jedoch: „Nichtsdestotrotz<br />

wird die Projektgruppe ausreichend<br />

Zeit bekommen, die<br />

Themen zu diskutieren.“ Die<br />

Einschätzung scheint optimistisch,<br />

da die Enquetekommission<br />

bis zum Beginn der parlamentarischen<br />

Sommerpause<br />

2012 ihren Abschlussbericht<br />

vorlegen muss.<br />

n<br />

Bundes-CIO zu DE-Mail, E-Personalausweis und mehr<br />

Cornelia Rogall-Grothe, IT-<br />

Beauftragte der deutschen<br />

Bundesregierung, hat auf der<br />

Cebit die wichtigsten Aufgaben<br />

und Meilensteine für das<br />

Der E-Perso war eines der Themen auf der Cebit.<br />

E-Government 2012 vorgestellt:<br />

Die Politikerin nennt<br />

dabei DE-Mail, die Behördenrufnummer<br />

115, den IT-Planungsrat,<br />

das Investitionsprogramm<br />

IT und den elektronischen<br />

Personalausweis. Beim<br />

Personalausweis gibt es noch<br />

Akzeptanzprobleme. Nur etwa<br />

ein Drittel der Besitzer<br />

lässt dafür die elektronische<br />

ID freischalten.<br />

Auch die insgesamt 113 Anträge<br />

für die Zertifizierung<br />

von über 40 Anwendungen<br />

im Zusammenhang mit der<br />

ID seien erst ein Anfang, so<br />

Rogall-Grothe. Es sei normal,<br />

dass es bei Innovationen gerade<br />

ein wenig dauere, bis die<br />

Industrie Anreize schaffe, um<br />

die Kunden und Anwender<br />

zu überzeugen. Gleichwohl<br />

wolle man hier auch in den<br />

ausstellenden Behörden nachsteuern<br />

und durch gezielte<br />

Weiterbildung die Mitarbeiter<br />

trainieren, die E-ID bei Bürgern<br />

attraktiver erscheinen zu<br />

lassen. Schließlich sei sie sicher<br />

und praktisch, meint die<br />

Bundes-CIO.<br />

Ebenso sicher sei auch die DE-<br />

Mail, für die die Telekom auf<br />

der Cebit die Werbetrommel<br />

rührte. Im Sommer soll mit<br />

United Internet noch ein zweiter<br />

Anbieter dazukommen,<br />

der das „große Interesse“<br />

(Rogall-Grothe) decken soll.<br />

Allein die Versicherungswirtschaft<br />

verschicke 800 Millionen<br />

Briefe jährlich, da stecke<br />

viel Einsparpotenzial drin, so<br />

Rogall-Grothe. Die Website<br />

der Bundes-CIO liefert Details:<br />

[http://​www.​cio.​bund.​de]. n


Aus für RHEL 4 und seine Klone<br />

Red Hat Enterprise <strong>Linux</strong><br />

(RHEL) 4 hat mit dem Februar<br />

2012 seine siebenjährige<br />

Lebenszeit beendet. Darauf<br />

aufbauende Distributionen<br />

schließen sich an. So verschiebt<br />

das Centos-Projekt,<br />

das seine Pakete aus den frei<br />

lizenzierten Quelltexten von<br />

Red Hat baut, seinen Versionszweig<br />

4 ins Archiv und liefert<br />

keine Security-Updates mehr<br />

dafür. Auch Scientific <strong>Linux</strong><br />

beendet die Unterstützung für<br />

4 und empfiehlt wie Red Hat<br />

das Umsteigen auf Version 5<br />

oder 6, und zwar am besten<br />

via Neu-Installation.<br />

Daneben beenden auch alle<br />

Repositories, die bislang Pakete<br />

für RHEL lieferten, jetzt<br />

ihre Dienste für Version 4.<br />

Das betrifft die bei Fedora untergebrachten<br />

Extra Packages<br />

for Enterprise <strong>Linux</strong> (EPEL)<br />

sowie die Pakete des Entwicklers<br />

Remi Collet, der zwar die<br />

RPMs auf dem Server belässt,<br />

aber dafür keine Updates<br />

mehr liefert.<br />

n<br />

Lx-Office heißt jetzt Kivitendo<br />

Die Linet Services GmbH hat<br />

ihre freie betriebswirtschaftliche<br />

Software Lx-Office in<br />

Kivitendo umbenannt. Die<br />

aus einem Fork des US-amerikanischen<br />

SQL-Ledger hervorgegangene<br />

Software bleibe<br />

frei und stehe weiter unter der<br />

GPLv2, betont der Hersteller.<br />

Geschäftsführer Philip Reetz<br />

erklärt: „Einerseits ist Lx-Office<br />

ein sehr treffender Name.<br />

Libre Office tagt in Berlin<br />

Andererseits weckte er bei Interessenten<br />

regelmäßig völlig<br />

falsche Erwartungen. Daher<br />

haben wir lange nach einer<br />

Alternative gesucht.“ Der<br />

neue Name kommt aus der<br />

afrikanischen Sprache Suaheli<br />

und heißt „praktisch“.<br />

Zum Namen passt die Homepage<br />

[http://​www.​kivitendo.​de]<br />

für die Anwendung mit ERPund<br />

CRM-Funktionen. n<br />

Zahlen & Trends 05/2012<br />

Aktuell<br />

www.linux-magazin.de<br />

13<br />

Openstreetmap begrüßt Apple<br />

Nicht ohne einen ironischen<br />

Unterton hat Jonathan Bennett<br />

von der Openstreetmap Foundation<br />

Apple als Nutzer der<br />

freien Kartendaten begrüßt.<br />

Wie Bennett in dem Blogbeitrag<br />

[http://​blog.​osmfoundation.​<br />

​org/​2012/​03/​08/​welcome‐apple/]<br />

schreibt, freue sich das Projekt<br />

über die Umstellung auf<br />

Openstreetmap, weg von den<br />

bislang bei Apple genutzten<br />

Google-Map-Daten.<br />

Apple habe aus den Basisdaten<br />

eigene Karten-Tiles<br />

gebaut. Die von Apple bei<br />

der Vorstellung des iPad 3<br />

gezeigte Fotoverwaltungs-<br />

App I-Photo, die auch auf<br />

das iPhone passt, komme mit<br />

Openstreetmap-Karten, wenn<br />

auch mit der reichlich alten<br />

Version aus dem Jahr 2010,<br />

so berichtet Bennett. Nutzer<br />

des Dienstes sollten also nicht<br />

den aktuellen Entwicklungsstand<br />

erwarten. Zudem fehle<br />

der nötige Hinweis auf die zu<br />

Openstreetmap Beitragenden.<br />

Um den einzufordern, werde<br />

man nun Kontakt mit Apple<br />

aufnehmen.<br />

Trotzdem sei das Projekt erfreut,<br />

dass ein weiterer prominenter<br />

Kartennutzer nun auf<br />

freie Daten setze. Bennett<br />

verweist Nutzer ohne passendes<br />

Apple-Gerät auf einen<br />

inoffiziellen Kartenviewer, um<br />

sich ein Bild zu machen. n<br />

Inoffizielle Ansicht: Die Openstreetmap-Basisdaten in der Apple-Anmutung.<br />

The Document Foundation<br />

(TDF) hat beschlossen ihre<br />

Libre-Office-Konferenz im<br />

Herbst 2012 in Berlin abzuhalten.<br />

Auf den Call for Locations<br />

gab es Bewerbungen von Berlin<br />

und dem spanischen Zaragoza.<br />

Die Entscheidung fiel<br />

durch eine Abstimmung unter<br />

den Stiftungsmitgliedern.<br />

Von 91 abgegebenen Stimmen<br />

entfielen 52 auf die deutsche<br />

<strong>Linux</strong> Essentials: Neues LPI-Zertifikat<br />

Das <strong>Linux</strong> Professional Institute<br />

(LPI) hat mit „<strong>Linux</strong> Essentials“<br />

ein neues Zertifizierungsprogramm<br />

angekündigt,<br />

das sich vor allem an Neueinsteiger<br />

und Schüler richtet. Im<br />

Unterschied zu für Sysadmins<br />

gedachten Programmen konzentriert<br />

sich Essentials auf<br />

Endanwender und vermittelt<br />

auch allgemeines Wissen zu<br />

Open Source. Die Lehrbereiche<br />

heißen neben „Grundlagen<br />

der <strong>Linux</strong> Kommandozeile,<br />

Dateien und Skripte“ auch<br />

„Open Source Software und<br />

Lizenzen verstehen“.<br />

Hauptstadt und 36 auf Zaragoza.<br />

Daneben gab es drei<br />

ungültige Stimmen.<br />

Auf der Liste der Berlin-Unterstützer<br />

finden sich zahlreiche<br />

Namen aus dem Vorstand der<br />

Document Foundation wie<br />

Thorsten Behrens, Jacqueline<br />

Rahemipour oder Florian<br />

Effenberger. Die Foundation<br />

ist nach deutschem Stiftungsrecht<br />

gegründet.<br />

n<br />

Das LPI bemüht sich bei dem<br />

neuen Zertifikat insbesondere<br />

um die Zusammenarbeit mit<br />

Schulen. Die Städtische Berufsschule<br />

für Informationstechnik<br />

in München und die<br />

Elektronikschule in Tettnang<br />

gehören zu den ersten Kooperationspartnern.<br />

Die Prüfung soll ab Juni in Europa<br />

starten, die Gebühr werde<br />

50 Euro in akademischen<br />

Testcentern und 65 Euro bei<br />

kommerziellen Testcentern betragen.<br />

Weitere Informationen<br />

liefert die LPI-Website [http://​<br />

​www.​lpi.​org/​linuxessentials]. n


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 05/2012<br />

14<br />

<strong>Linux</strong>-Server im Trend<br />

Nach den aktuellen Zahlen<br />

des „IDC Worldwide Quarterly<br />

Server Tracker“ steigen die<br />

Zahlen für <strong>Linux</strong>, während sie<br />

für Windows und Unix sinken.<br />

<strong>Linux</strong> konnte den amerikanischen<br />

Marktforschern zufolge<br />

im vierten Quartal seinen<br />

Anteil auf 18,4 Prozent aller<br />

Erlöse aus Serververkäufen<br />

steigern, das sind 1,7 Prozent<br />

mehr als im vierten Quartal<br />

des Vorjahres, wogegen die<br />

Zahlen für Windows etwa um<br />

denselben Wert (1,5 Prozent)<br />

auf 45,8 Prozent sanken. Sehr<br />

viel stärker schrumpften aber<br />

zum wiederholten Mal die Erlöse<br />

im Unix-Segment, nämlich<br />

um 10,7 Punkte auf 24,2<br />

Prozent.<br />

In hohem Maß betroffen davon<br />

waren Oracle und Fujitsu,<br />

deren Umsätze unter dem<br />

schwindenden Geschäft mit<br />

Solaris leiden. Das gute Ergebnis<br />

für <strong>Linux</strong> dagegen wurde<br />

insbesondere durch den Boom<br />

bei Cloud Computing und im<br />

HPC-Sektor gefördert. n<br />

Kommerzielles Owncloud startet im April<br />

Der Start für die kostenpflichtigen<br />

Services des Unternehmens<br />

Owncloud Inc. ist um<br />

einige Wochen verschoben<br />

worden. Wie Markus Rex,<br />

CEO von Owncloud, in einer<br />

Mitteilung schreibt, gäbe<br />

es noch einige Features fest<br />

einzubeziehen, die man ursprünglich<br />

als weniger wichtig<br />

erachtet habe. Owncloud<br />

habe während der Cebit entsprechendes<br />

Feedback der<br />

Nutzer bekommen. Der Startzeitpunkt<br />

ist laut Rex nun<br />

April, anfangs war von Mitte<br />

März die Rede.<br />

Owncloud ist als kommerzieller<br />

Anbieter der freien Cloudlösung<br />

Ende 2011 gegründet<br />

worden. Neben dem ehemaligen<br />

Novell/Suse-Manager Rex<br />

sind der Owncloud-Gründer<br />

Frank Karlitschek und mit<br />

Holger Dyroff ein weiterer<br />

Suse-Manager an Bord. Ziel<br />

ist es, in Konkurrenz zu proprietären<br />

Cloud-Angeboten wie<br />

Dropbox, Stratos Hidrive oder<br />

Apples I-Cloud zu treten. n<br />

Programm der<br />

OSDC 2012 steht<br />

Die Organisatoren der Open<br />

Source Data Center Conference<br />

am 25. und 26. April<br />

in Nürnberg haben deren Programm<br />

veröffentlicht [http://<br />

www.netways.de/osdc/osdc_2012/<br />

programm/]. Die kostenpflichtige<br />

Konferenz bietet drei parallele<br />

Tracks, die „Devops and<br />

Methods“, „Databases“ sowie<br />

„Scalability and Infrastructure“<br />

überschrie ben sind.<br />

Die Keynotes halten Kristian<br />

Köhntopp (Booking.com) und<br />

der IT-Fachanwalt Hendrik<br />

Schöttle. Auf der Themenliste<br />

stehen unter anderem die<br />

Datenbanken Mongo DB und<br />

MySQL, Admin-Themen wie<br />

Backup, Cfengine und Marionette<br />

Collective sowie Eucalyptus,<br />

Open Nebula und<br />

Open Stack.<br />

Dem Vortragsprogramm gehen<br />

am 24. April optionale<br />

Workshops zu IPv6, Puppet<br />

und Open Nebula voraus. Informationen<br />

zu Preisen und<br />

Leistungen gibt es beim Veranstalter:<br />

[http://www.netways.<br />

de/osdc/osdc_2012/leistungen/].n<br />

SoC-Thin-Clients kommen<br />

Der Thin-Client-Hersteller<br />

Igel hat bei<br />

der Cebit sein erstes<br />

Gerät mit ARM-System-on-Chip<br />

gezeigt.<br />

Der Multimedia-<br />

Thin-Client findet im<br />

UD2-Gehäuse Platz,<br />

dem kleinsten des<br />

Herstellers.<br />

Herzstück der neuen<br />

Klasse von 200-Euro-<br />

Geräten ist ein ARMbasiertes<br />

Systemon-Chip<br />

(SoC) mit digitalem<br />

Signalprozessor (DSP) von<br />

Texas Instruments. So sollen<br />

die neuen Thin Clients Energie-Effizienz<br />

mit hoher Multimedia-Performance<br />

kombinieren.<br />

Weil die Hardware<br />

günstiger sei, könne man Features<br />

einbauen, die sonst nur<br />

in teureren Geräten zu finden<br />

seien, erklärte Entwicklungsleiter<br />

Dirk Dördelmann dem<br />

<strong>Linux</strong>-<strong>Magazin</strong>.<br />

Treibende Kraft hinter dem<br />

ARM-Boom in der Thin-<br />

Client-Branche ist der Softwarehersteller<br />

Citrix. Er hat<br />

im Herbst 2011 die Kampagne<br />

Das ARM-System-on-Chip in Igels kleinstem<br />

Thin-Client-Gehäuse.<br />

HDX Ready SoC ins Leben<br />

gerufen. Mit diesem Etikett<br />

möchte er ARM-SoC-Geräte<br />

versehen, die etwa HD-Video<br />

im Vollbildmodus wiedergeben.<br />

Die passende Remote-<br />

Computing-Software liefert<br />

Citrix. Mit von der Partie sind<br />

unter anderem Ncomputing,<br />

Wyse, VXL und HP.<br />

Auch andere arbeiten an SoC-<br />

Thin-Clients. Der österreichisch-kalifornische<br />

Hersteller<br />

Stratodesk meldet, dass er<br />

<strong>Linux</strong>-basierte Thin-Client-Lösung<br />

erfolgreich auf ein ARM-<br />

System von Texas Instruments<br />

portiert hat.<br />

n<br />

Fraunhofer sichert<br />

Smartphones<br />

Das Fraunhofer-Institut für<br />

Sichere Informationstechnologie<br />

(SIT) und das Center for<br />

Advanced Security Research<br />

Darmstadt (CASED) haben<br />

ihre Sicherheitslösung Bizz-<br />

Trust für Android-Smartphones<br />

vorgestellt.<br />

Bizz-Trust soll das sichere Nebeneinander<br />

von beruflicher<br />

und privater Nutzung von<br />

Smartphones ermöglichen.<br />

Grundprinzip des Schutzmechanismus<br />

ist die Aufteilung<br />

des Geräts in diese zwei Bereiche.<br />

Features sind unter<br />

anderem getrennte Synchronisierung<br />

für private und<br />

geschäftliche Kontakte und<br />

VPN-Verbindungen.<br />

Unternehmen können zudem<br />

vertrauenswürdige Apps auf<br />

den Telefonen ihrer Mitarbeiter<br />

zulassen und aktualisieren.<br />

Private Aktivitäten, etwa<br />

der SMS-Versand, sind farblich<br />

hervorgehoben. Das Demo-Video<br />

[http://​www.​bizztrust.​<br />

​de/​en/​demo.​html] zeigt die<br />

Oberfläche des abgesicherten<br />

Android-Systems.<br />

n


Informatiker hinterfragen ACTA<br />

Die Gesellschaft für Informatik<br />

e.V. (GI) hat eine kritische<br />

Stellungnahme zum Anti-<br />

Counterfeiting Trade Agreement<br />

(ACTA) veröffentlicht.<br />

ACTA soll eine internationale<br />

Übereinkunft bei der Bekämpfung<br />

von Produktpiraterie und<br />

Urheberrechtsverstößen erreichen.<br />

Einige Staaten wie die<br />

USA, Japan und Australien<br />

haben es unterzeichnet, die<br />

deutsche Bundesregierung<br />

noch nicht, weshalb die GI<br />

Fragen und Forderungen an<br />

das Wirtschafts- und das Justizministerium<br />

geschickt hat.<br />

Die Informatiker-Vertretung<br />

kritisiert die Anwendung von<br />

ACTA auf die Veröffentlichung<br />

von Sicherheitslücken. In der<br />

Vergangenheit sei deren Publikation<br />

behindert worden,<br />

weil sie Urheberrechte an den<br />

Produkten verletze. Artikel<br />

27 von ACTA verbiete zudem<br />

Verfahren wie Reengineering<br />

und nötige Tools.<br />

Daneben bemängelt die Organisation<br />

wie andere ACTA-<br />

Kritiker, etwa der Bundesverband<br />

IT-Mittelstand, dass das<br />

Abkommen Internetprovidern<br />

und anderen privaten Firmen<br />

Aufgaben zuweist, die mit<br />

dem Datenschutz und anderen<br />

Bürgerrechten in Konflikt<br />

stehen. Das Papier steht bei<br />

der GI [http://​www.​gi.​de] zum<br />

Download bereit.<br />

n<br />

System Management Konferenz in Bozen<br />

Veranstalter Würth Phoenix<br />

lädt für den 10. Mai 2012<br />

Fachpublikum, IT-Entscheider,<br />

Systemadministratoren<br />

und Open-Source-Interessierten<br />

zur „Open Source System<br />

Management Konferenz“ nach<br />

Bozen ein. In der vierten Auflage<br />

hat sich die Konferenz<br />

einen neuen Namen gegeben<br />

und erweitert das inhaltliche<br />

Spektrum. Zu den Themen<br />

zählen die Monitoring-Lösung<br />

Nagios, das Visualisierungstool<br />

Cacti sowie das IT-Ressourcen-Management<br />

GLPI<br />

nebst Open-Source-Lösungen<br />

unterschiedlicher Couleur für<br />

den Firmeneinsatz. Redner<br />

sind unter anderem der Gründer<br />

der französischen Monitoring-Community<br />

Olivier Jan<br />

und Luca Deri von Ntop. Zudem<br />

sprechen Georg Kostner<br />

von Neteye und Hauke Böttcher<br />

von OTRS. Der Marktforscher<br />

Forrester Research gibt<br />

außerdem eine Einschätzung<br />

zu Potenzial und Risiken von<br />

Open Source.<br />

Die Teilnahme ist kostenlos,<br />

die Besucherzahl aber auf 400<br />

Plätze begrenzt, was eine Registrierung<br />

unter [http://​www.​<br />

​wuerth‐phoenix.​com/​events] empfiehlt.<br />

Interessierten, die nicht<br />

nach Italien reisen können,<br />

bietet das <strong>Linux</strong>-<strong>Magazin</strong> ein<br />

Live-Streaming des gesamten<br />

Konferenztages an. n<br />

Zahlen & Trends 05/2012<br />

Aktuell<br />

www.linux-magazin.de<br />

15<br />

Kann eine<br />

Schulungseinrichtung<br />

für mehr als EINEN<br />

Themenbereich<br />

berühmt werden?<br />

Das <strong>Linux</strong>hotel ist bekannt für erstklassige Open-Source-Schulungen. In den letzten Jahren kamen Java<br />

und andere Programmiersprachen hinzu - wie immer in Kooperation mit führenden Spezialisten, und in<br />

abgeschiedener, konzentrierter, aber auch ziemlich verspielter Umgebung. Es ist so naheliegend, auch<br />

Entwicklerthemen bei den OpenSource‘lern zu lernen, weil man dort schon immer sehr „unter die<br />

Haube“ guckte und mit viel Freude intensivst arbeitet. Das weiss ein Großteil der deutschen Admins, nur<br />

unter Entwicklern hat's sich noch nicht so ganz herumgesprochen.<br />

Mehr siehe www.linuxhotel.de


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 05/2012<br />

16<br />

Ubuntu möchte aufs Handy<br />

Der Ubuntu-Hersteller Canonical<br />

hat seine Strategie präsentiert,<br />

um Ubuntu künftig<br />

auch auf mobilen Geräten zu<br />

verbreiten. Canonical zielt in<br />

Sachen Hardware auf Smartphones<br />

mit Android, doch<br />

statt Android von den Geräten<br />

zu verbannen, möchte man<br />

koexistieren: Ubuntu und<br />

Android sollen, so der Plan,<br />

gemeinsam auf leistungsfähigen<br />

Handys laufen.<br />

Am bestehenden Android will<br />

Canonical nichts ändern, das<br />

System sei für mobile Geräte<br />

bereits optimal angepasst.<br />

Doch moderne Smartphones<br />

würden mittlerweile genügend<br />

Rechenpower mitbringen, um<br />

damit auch ein „richtiges“<br />

Computersystem betreiben<br />

zu können.<br />

Damit ließen sich die Vorteile<br />

eines Desktop-Computers mit<br />

großem Monitor und Eingabegeräten<br />

mit der Portabilität<br />

eines Handys zusammenbringen.<br />

Statt eines Desktops/​<br />

Lap tops und eines Smartphones,<br />

müssten Unternehmen<br />

ihren Mitarbeiten nur noch<br />

ein Ubuntu-Android-Handy<br />

zur Verfügung stellen. Dies<br />

würde den Administrationsaufwand<br />

und die Kosten für<br />

Firmen deutlich senken.<br />

Canonical visiert Firmenkunden<br />

an, private Anwender<br />

könnten sich nicht ohne Weiteres<br />

Ubuntu neben Android<br />

auf dem Handy installieren.n<br />

Gnome-Konferenz sucht Vorträge<br />

Die Gnome-Entwicklerkonferenz<br />

Guadec findet vom 26.<br />

Juli bis 1. August in Spanien<br />

statt. Bis 14. April besteht die<br />

Gelegenheit, Beiträge einzureichen.<br />

Zu den Kernthemen<br />

gehören das Programmieren<br />

für die Gnome-Version 3,<br />

Integration des Web in den<br />

Desktop, Gnome auf neuen<br />

Geräteklassen sowie die<br />

Verbesserung und Vereinheitlichung<br />

der technischen<br />

Desktop-Infrastruktur. Daneben<br />

geht es darum, wie die<br />

Benutzer die Desktopumgebung<br />

erleben, wie das Projekt<br />

neue Mitwirkende gewinnt<br />

und wie es sich selbst organisiert.<br />

Zudem feiert Gnome<br />

im Jahr 2012 sein 15-jähriges<br />

Bestehen.<br />

Wer zu diesen Themen einen<br />

Vortrag halten möchte, verwendet<br />

das entsprechende<br />

Formular auf der Website<br />

[https://​www.​gpul.​org/​indico/​conferenceDisplay.​py?​confId=0].<br />

Für<br />

Lightning Talks, Workshops,<br />

Entwicklersitzungen und Birdof-a-Feather-Runden<br />

erfolgt<br />

ein separater Aufruf. n<br />

Beste Berufschancen für <strong>Linux</strong>er<br />

Neue Verbindung: Ubuntu soll mit Googles Android koexistieren.<br />

Deltacloud-Projekt verlässt den Inkubator<br />

Die <strong>Linux</strong> Foundation und<br />

die Internet-Stellenbörse Dice.com<br />

bescheinigen <strong>Linux</strong>-<br />

Professionals hervorragende<br />

Karrierechancen. Die Unternehmen<br />

suchen verstärkt<br />

Beschäftigte mit <strong>Linux</strong>-Knowhow<br />

und zahlen ihnen mehr,<br />

so das Fazit einer Befragung<br />

von rund 2300 Personalverantwortlichen<br />

weltweit (42<br />

Prozent in den USA), die im<br />

Dezember 2011 stattfand.<br />

81 Prozent der Befragten sehen<br />

das Einstellen von <strong>Linux</strong>-<br />

Professionals als wichtige Aufgabe<br />

für 2012. Damit geht ein<br />

Lohnzuwachs einher: Gegenüber<br />

2 Prozent im Jahr 2011<br />

für Techniker im Allgemeinen<br />

erhielten die <strong>Linux</strong>er 5 Prozent<br />

mehr Gehalt. Daneben<br />

dürfen sie mit flexiblen Arbeitszeiten,<br />

Fortbildung und<br />

Zertifizierung rechnen.<br />

Begehrt sind laut Umfrage<br />

Entwickler und Systemadministratoren<br />

mit drei bis fünf<br />

Jahren Berufserfahrung. Der<br />

<strong>Linux</strong> <strong>Jobs</strong> Report steht als<br />

PDF [http://​www.​linuxfoundation.​<br />

​org/​sites/​main/​files/​dice_lf_linux_<br />

jobs_report_2012.​pdf] zur Verfügung.<br />

(jk/mfe/mhu/uba) n<br />

Deltacloud, ein API samt Implementierungen<br />

fürs Cloud<br />

Computing, steigt zu einem<br />

vollwertigen Apache-Projekt<br />

auf. Das hat die Apache Software<br />

Foundation (ASF) bekannt<br />

gegeben, in deren Inkubator<br />

das Projekt seit 2009<br />

herangereift ist.<br />

Deltacloud definiert eine<br />

einheitliche REST-Schnittstelle<br />

für Webservices, über<br />

die sich die Ressourcen von<br />

Cloud-Anbietern steuern lassen.<br />

Implementierungen des<br />

API existieren unter anderem<br />

für Amazon, Eucalyptus, Go<br />

Grid, IBM, Microsoft, Open<br />

Stack und Rackspace.<br />

Weitere Informationen zur<br />

Cloudlösung sowie den Code<br />

unter der Apache-2.0-Lizenz<br />

gibt es bei [http://​deltacloud.​<br />

​apache.​org].<br />

n<br />

Klare Aussage: <strong>Linux</strong>-Fertigkeiten sind ein begehrtes Feature.


AKTION NUR BIS<br />

30.04.12!<br />

SERVER-POWER<br />

JEDERZEIT. STUNDENGENAU.<br />

Jetzt 100 und heute Abend 1.000 Kunden?<br />

Kein Problem!<br />

■ NEU: Leistungserhöhung und Leistungsreduktion<br />

jederzeit flexibel nach Bedarf stundengenau einstellbar,<br />

bei stundengenauer Abrechung<br />

■ NEU: Weitere Virtuelle Maschinen stundengenau zubuchbar<br />

■ NEU: Bis zu 6 CPU, bis zu 24 GB RAM und bis zu 800 GB HDD<br />

■ Hosting in den sichersten 1&1 Hochleistungs-Rechenzentren<br />

■ <strong>Linux</strong>- oder Windows-Betriebssystem,<br />

bei Bedarf Parallels Plesk Panel 10 unlimited vorinstalliert<br />

■ Eigene dedizierte Server-Umgebung mit vollem Root-Zugriff<br />

■ Eigenes SSL-Zertifikat<br />

■ 24/7 Hotline und Support<br />

1&1 DYNAMIC CLOUD SERVER<br />

3 MONATE<br />

39, 99<br />

0<br />

€ *<br />

€/Monat*<br />

ab<br />

39,99 €/Monat*<br />

0,–danach<br />

NEU: Management und Monitoring<br />

Ihrer Server-Dienste im Browser<br />

oder per Mobile-App<br />

Infos und<br />

Bestellung:<br />

0 26 02 / 96 91<br />

0800 / 100 668<br />

www.1und1.info<br />

* 1&1 Dynamic Cloud Server Basiskonfi guration 3 Monate 0,– €/Monat, danach ab 39,99 €/Monat für die Basiskonfi guration. Konfi guration und Leistungsberechnung jeweils stundengenau.<br />

Einmalige Einrichtungsgebühr 39,– €. 12 Monate Mindestvertragslaufzeit. Preise inkl. MwSt.


Aktuell<br />

www.linux-magazin.de Kernel-News 05/2012<br />

18<br />

Zacks Kernel-News<br />

Proprietäre Module dürfen wieder auf VFS zugreifen<br />

Verletzt das Laden proprietärer<br />

Module in den <strong>Linux</strong>-Kernel<br />

die GPL? Diese Streitfrage<br />

kann vermutlich nur ein Gericht<br />

entscheiden, bis dahin<br />

bleibt eine Grauzone. In dieser<br />

breitet sich ein großes<br />

Angebot proprietärer Binärmodule<br />

für <strong>Linux</strong> aus. Meist<br />

stammen sie von Herstellern,<br />

die zwar ihre Hardware unter<br />

dem freien Betriebssystem<br />

zum Laufen bringen möchten,<br />

gleichzeitig aber das Innenleben<br />

ihrer Produkte möglichst<br />

geheim halten wollen.<br />

Ungeachtet der juristischen<br />

Unklarheiten haben sich die<br />

Kernelentwickler schon vor<br />

Jahren an einer technischen<br />

Lösung versucht: Das Makro<br />

»EXPORT_SYMBOL_GPL« gewährt<br />

ausschließlich Modulen<br />

mit GNU-Lizenz den Zugang<br />

zu den exportierten Symbolen.<br />

Es kommt allerdings nicht<br />

durchgehend zum Einsatz,<br />

sodass Binärmodule immer<br />

noch weite Teile des Kernels<br />

nutzen können.<br />

Linus Torvalds persönlich gibt<br />

an, er habe nichts gegen Binärtreiber.<br />

Alan Cox dagegen<br />

zieht die Grenzen enger: Er<br />

erlaubt es keinem proprietären<br />

Treiber, seinen Code im<br />

<strong>Linux</strong>-Kernel zu nutzen.<br />

Ein Patch von Christoph Hellwig<br />

in Kernel 3.1 bringt die<br />

Streitfrage jetzt abermals auf<br />

die Tagesordnung. Es schränkt<br />

den Zugriff von Nicht-GPL-<br />

Code auf die Schnittstellen<br />

des Virtual File System (VFS)<br />

dramatisch ein. Anton Altaparmakov<br />

von Tuxera gibt<br />

zu bedenken, dass damit alle<br />

nicht unter GPL lizenzierten<br />

Dateisysteme ihre Codepfade<br />

für Lese- und Schreiboperationen<br />

ändern müssten. Er fragt,<br />

Christoph Hellwigs Änderungen am VFS verwendeten Funktionen, die nur mit<br />

GPL-lizenzierten Modulen zusammenarbeiten.<br />

ob das wirklich Christophs<br />

Absicht war. Andreas Dilger<br />

weist darauf hin, dass die<br />

strengere VFS-Lizenzpolitik<br />

nichts mit technischen Erfordernissen<br />

zu tun hat.<br />

Hier schaltete sich Linus<br />

Torvalds ein. Er glaubt, die<br />

Änderung sei unabsichtlich<br />

erfolgt, zumal sie nicht in<br />

den Commit-Informationen<br />

dokumentiert sei. Daher vereinbarte<br />

er mit dem VFS-Chef<br />

Al Viro, sie rückgängig zu machen.<br />

Al war einverstanden<br />

und bittet die Entwickler, »EX-<br />

PORT_SYMBOL_GPL« nicht in<br />

VFS-Code zu verwenden – es<br />

sei denn aus einem wichtigen<br />

Grund, der aber dokumentiert<br />

gehöre.<br />

Damit ist der Status quo wiederhergestellt.<br />

Diese Episode<br />

zeigt allerdings, wie sehr die<br />

Meinungen der Entwickler zu<br />

Nicht-GPL-Modulen auseinandergehen.<br />

n<br />

Regellose Remounts<br />

Der Red-Hat-Mitarbeiter Jerome<br />

Marchand hat auf Unregelmäßigkeiten<br />

beim Einhängen<br />

von Dateisystemen<br />

hingewiesen. Benutze man<br />

den Mount-Befehl, um ein bereits<br />

eingebundenes Gerät zu<br />

remounten, passiere je nach<br />

Dateisystem etwas anderes,<br />

teilt er mit. Manche Systeme<br />

behielten die ursprünglich verwendeten<br />

Mount-Optionen,<br />

andere nutzten Standardeinstellungen<br />

und wieder andere<br />

ignorieren nur die neuen Optionen<br />

des Remounts. Daneben<br />

gebe es noch Mischformen.<br />

Außerdem merkt Jerome an,<br />

dass es verwirrende Unterschiede<br />

zwischen den Informationen<br />

in »/etc/mtab« und<br />

»/proc/mounts« gibt.<br />

Er fragte die Mailingliste, wie<br />

das Verhalten der Dateisysteme<br />

korrekterweise aussehen<br />

solle. Daraufhin meldete sich<br />

Jan Kara von der tschechischen<br />

Suse-Niederlassung<br />

und pflichtet ihm bei: Die<br />

bestehende Situation sei ein<br />

Riesenchaos. Es sei aber fast<br />

unmöglich, sie neu zu ordnen,<br />

weil massenweise Userland-<br />

Code existiere, der sich auf<br />

die Eigenheiten eines jeden<br />

Dateisystems verlasse.<br />

Karel Zak dagegen sieht mindestens<br />

eine Möglichkeit: Als<br />

Maintainer der <strong>Linux</strong>-Utilities<br />

könnte er neue Optionen für<br />

das Mount-Kommando umsetzen,<br />

mit deren Hilfe der<br />

Anwender genau festlegt, was<br />

bei einem Remount geschehen<br />

soll. Das ließe den derzeitigen<br />

Zustand unangetastet, beschere<br />

den Anwendern aber bessere<br />

Kontrollmöglichkeiten. n


Neuheiten von O’Reilly<br />

Lösungen vorprogrammiert<br />

Pohmel-FS neu implementiert<br />

Der russische Entwickler Jewgeni<br />

Poljakow hat das verteilte<br />

Dateisystem Pohmel-FS<br />

komplett neu implementiert<br />

und für den <strong>Linux</strong>-Kernel eingereicht.<br />

Die vorherige Version, schreibt<br />

er, habe auf NFS beruht und<br />

jahrelang im »staging/«-Verzeichnis<br />

vor sich hin gedämmert,<br />

ohne Fortschritte zu machen.<br />

Die neue Umsetzung ist<br />

Device Isolation Groups<br />

laut Jewgeni im Grunde nur<br />

ein Frontend für den Key-Value-Store<br />

des Projekts Elliptics<br />

Network. Auf diesen Objektspeicher<br />

als Basis habe er die<br />

Systemcalls für ein Dateisystem<br />

gesetzt.<br />

Die neue Version unterstützt<br />

normale Dateien, symbolische<br />

und harte Links sowie die<br />

weitere Standardausstattung<br />

eines <strong>Linux</strong>-Dateisystems. n<br />

Praxishandbuch VMware vSphere 5<br />

Ralph Göpel<br />

496 Seiten, 2012, 49,90 Euro<br />

ISBN 978-3-86899-164-2<br />

In diesem Handbuch finden Sie alles, was<br />

Sie über Virtualisierung und vSphere 5 wissen<br />

müssen – samt Tipps & Tricks zu<br />

angrenzenden Techno logien. Die 2. Auflage<br />

wurde komplett auf VMware vSphere 5<br />

aktualisiert und durch die Neuerungen bei<br />

vSphere5, z.B. VSA-Storage Cluster, Auto<br />

Deploy und vSphere Appliance auf SuSE<br />

<strong>Linux</strong> Basis ergänzt.<br />

Praxiskurs Routing & Switching<br />

Bruce Hartpence<br />

216 Seiten, 2012, 24,90 Euro<br />

ISBN 978-3-86899-185-7<br />

Dieses Buch bietet einen vertiefenden Blick<br />

in die Welt der Netzwerke, Nachrichtenverbindungen<br />

und Protokolle sowie ihre Strukturen<br />

und Arbeitsweisen. Mit vielen Beispielen.<br />

Für Studenten sowie Admins, die<br />

ihr Wissen erweitern und festigen wollen.<br />

Der australische Entwickler<br />

David Gibson hat in seinen<br />

Patches eine neue Infrastruktur<br />

namens Device Isolation<br />

Groups eingeführt. Deren<br />

Aufgabe ist es, den Rest eines<br />

<strong>Linux</strong>-Systems vor bestimmten<br />

Gerätetreibern zu schützen.<br />

Die Umsetzung besteht<br />

Commit-Mailingliste vermisst<br />

Nach dem Einbruch in die<br />

Kernelserver im August 2011<br />

hat es Monate gedauert, bis<br />

die Git-Repositories, Benutzerkonten<br />

und Mailinglisten<br />

wieder zur Verfügung standen.<br />

Manche Features vermissen<br />

die Benutzer von Kernel.<br />

org immer noch.<br />

Dazu gehört die Mailingliste<br />

»git‐commits‐head«, nach der<br />

Boaz Harrosh vom Storage-<br />

Hersteller Panasas erstmals im<br />

Oktober fragte. Sie liefert automatisiert<br />

die neusten Änderungsmeldungen<br />

aus der Kernelentwicklung.<br />

Boaz schrieb,<br />

die Liste sei in manchen Teilen<br />

der Welt unersetzlich, weil<br />

die Kernelmirrors bisweilen 24<br />

im Großen und Ganzen aus<br />

einer Blacklist, in der die Treiber<br />

stehen, die vom restlichen<br />

Betriebssystem isoliert werden<br />

sollen. David zieht aber ebenfalls<br />

in Erwägung, das Feature<br />

auch für eine Whitelist<br />

vertrauenswürdiger Treiber<br />

umzusetzen.<br />

n<br />

Stunden brauchten, um sich<br />

zu aktualisieren. Der Kernel-<br />

Journalist Jonathan Corbet<br />

versicherte ihm damals, die<br />

Serveradministratoren wüssten,<br />

was sie tun.<br />

Vier Monate später, im Februar<br />

2012, liefen bereits viele<br />

Kernel.org-Dienste wieder<br />

und Boaz fragte erneut nach.<br />

Jonathan schrieb zurück, er<br />

habe nichts Neues erfahren,<br />

obwohl er um einen Statusbericht<br />

gebeten habe.<br />

Daneben erzählte er von<br />

seiner selbst geschriebenen<br />

Lösung, die Änderungen per<br />

NNTP publiziert, und stellte<br />

deren Quelltext in Aussicht.<br />

(Zack Brown/​mhu) n<br />

S P I E G E L . D E - B U C H T I P P !<br />

Blog:<br />

community.oreilly.de/blog<br />

Google+:<br />

bit.ly/googleplus_oreillyverlag<br />

Hackerbrause – kurz & geek<br />

Kathrin Ganz, Jens Ohlig, Sebastian Vollnhals<br />

144 Seiten, 2011, 9,90 €<br />

ISBN 978-3-86899-141-3<br />

Wie kam Club-Mate, die bekannteste<br />

Hackerbrause, in die deutsche Hackerszene?<br />

Welchen Anteil hatten freie<br />

Getränkevertriebskollektive an der<br />

Verbreitung dieser Getränke? Und wer<br />

brachte das Getränk in die USA? Dies und<br />

noch vieles mehr wird in Hacker brause kurz<br />

& geek beschrieben.<br />

Die elektronische Welt mit Arduino entdecken<br />

Erik Bartmann<br />

704 Seiten, 2011, 34,90 Euro<br />

ISBN 978-3-89721-319-7<br />

Dieses Buch führt Sie Schritt für Schritt in<br />

die Welt der Elektronik, der Schaltpläne<br />

und der Leuchtdioden ein. Autor Erik<br />

Bartmann war beim ComputerClub 2 zu<br />

Gast: In der Sendung mit Wolfgang Back<br />

und Wolfgang Rudolph stellte er den<br />

Microcontroller und dessen Möglichkeiten<br />

vor. Mehr Infos: http://bit.ly/ardiuno-cc2<br />

O’REILLY ®<br />

www.oreilly.de<br />

Facebook:<br />

facebook.com/oreilly.de<br />

Twitter:<br />

twitter.com/oreilly_verlag


Aktuell<br />

www.linux-magazin.de LNM-Awards 05/2012<br />

20<br />

<strong>Linux</strong> New Media Awards 2012<br />

Trophäensammler<br />

Vom „Hottest <strong>Linux</strong> Device“ über das innovativste Open-Source-Projekt bis zur besten Interoperabilitätslösung<br />

– die <strong>Linux</strong> New Media AG prämiert bei der Cebit mit ihren Awards Leistungen rund um <strong>Linux</strong> und freie Software.<br />

Die meisten Trophäen sahnten diesmal Android und Libre Office ab. Mathias Huber<br />

Abbildung 1: Die Preisträger in Reih und Glied auf der Cebit 2012: (von links): Florian Effenberger (Libre<br />

Office), Andreas Kretschmer (PostgreSQL Europe), Christine Hupe (Google), Julia Oppel und Soung-min Choi<br />

(Samsung) sowie Thorsten Behrens (Libre Office)<br />

Bei der Verleihung im Open-Source-Forum<br />

der Cebit haben das Projekt Libre Office,<br />

Samsung und Googles Betriebssystem<br />

Android jeweils zwei der insgesamt<br />

sieben Preise (Abbildung 1) gewonnen.<br />

Zuvor hatte eine Jury, bestehend aus den<br />

<strong>Magazin</strong>-Redaktionen sowie rund 300<br />

Personen aus der internationalen OS-<br />

Community, ihr Votum abgegeben.<br />

Dass die Open-Source-Szene sich bei der<br />

Cebit inzwischen zahlreich auf einer veritablen<br />

Fläche in Halle 2 immer breiter<br />

macht, haben auch die Juroren zu spüren<br />

bekommen. Im Rennen um den Preis<br />

für das innovativste Open-Source-Projekt<br />

beispielsweise traten dieses Jahr fast 40<br />

Bewerber an.<br />

Die meisten Stimmen entfielen schließlich<br />

auf Android, Googles Mobil-Betriebssystem.<br />

Es habe <strong>Linux</strong> einen enormen<br />

Verbreitungsschub beschert, betonte der<br />

Knoppix-Erfinder Klaus Knopper in seiner<br />

Laudatio und überreichte den Award an<br />

Googles Produkt-Marketing-Managerin<br />

Christine Hupe. In ihrer Ansprache bedankte<br />

sie sich bei der großen Gemeinde<br />

der App-Entwickler, die Software für die<br />

Plattform bereitstellen.<br />

Christine Hupe kam noch ein zweites<br />

Mal auf die Bühne, als Android auch den<br />

Preis für herausragende Verdienste um<br />

<strong>Linux</strong> und freie Software erhielt. Diesen<br />

überreichte der langjährige <strong>Linux</strong>-Advokat<br />

und Exekutive Director von <strong>Linux</strong><br />

International Jon „Maddog“ Hall. Der<br />

US-Amerikaner hob in seiner Würdigung<br />

hervor, dass Android den Verbrauchern<br />

die Wahl zwischen verschiedenen Geräten<br />

und Anbietern ermögliche.<br />

Heiße Ware<br />

Im Zusammenhang mit Android steht<br />

auch das „Hottest <strong>Linux</strong> Device 2012“:<br />

Das Smartphone Galaxy Nexus von<br />

Samsung konnte sich gegen Geräte wie<br />

Amazons Kindle sowie die große Vielfalt<br />

weiterer Android-Telefone durchsetzen.<br />

In seiner Laudatio bekannte Marcel<br />

Hilzinger, Chefredakteur der Zeitschrift<br />

„Android User“, auch sein persönlicher<br />

Favorit sei das Galaxy Nexus. Das koreanische<br />

Unternehmen Samsung erhielt zudem<br />

den Preis als Android-freundlichster<br />

Hardwarehersteller.<br />

Als weiterer Hauptgewinner erwies sich<br />

die freie Büro-Suite Libre Office. Das<br />

Ende 2010 von Open Office abgespaltete<br />

Projekt hat es bereits geschafft, sich als<br />

Quasi-Standard auf dem freien Desktop<br />

zu etablieren, Libre Office läuft aber<br />

auch unter Windows und Mac OS X. Die<br />

Office-Suite hat Konkurrenten wie Samba<br />

und Wine als beste Interoperabilitätslösung<br />

auf die Plätze verwiesen.<br />

In seiner Vorrede betonte der <strong>Linux</strong>-Consultant<br />

Thomas Uhl die Bedeutung dieser<br />

Kategorie: Jeder Anwender verfasse<br />

Text- und Office-Dokumente und sei notgedrungen<br />

auf Interoperabilität angewiesen.<br />

Den Preis nahm Thorsten Behrens<br />

von der hinter dem Projekt stehenden<br />

Stiftung Document Foundation entgegen.<br />

Er widmete den Preis allen Mitwirkenden<br />

aus der Community. Thomas Uhl zeigte<br />

sich bereits neugierig auf die Web- und<br />

Mobilversionen der Büro-Suite.<br />

Auch die Herzen der Anwender hat das<br />

freie Büroprogramm offenbar gewonnen:<br />

Es erhielt den Preis für die beste Desktop-<br />

Anwendung. Für diesen Publikumspreis<br />

sind die Leser aufgerufen, Vorschläge zu<br />

machen und anschließend abzustimmen.<br />

Zudem hat die <strong>Linux</strong> New Media AG<br />

einen Preis für die beste Open-Source-<br />

Datenbank ausgelobt: Mit deutlichem<br />

Abstand gewann PostgreSQL. Der Sieger<br />

vereinte eineinhalbmal so viele Stimmen<br />

auf sich wie der Zweite. (uba) n


www.kamp.de<br />

In der IT setzt man besser<br />

auf einen starken Partner!<br />

IT-Lösungen – stark und individuell. Mehr unter www.kamp.de


Titelthema<br />

www.linux-magazin.de Softwareverteilung 05/2012<br />

22<br />

Zwei freie Systeme zur Softwareverteilung im Vergleich<br />

Paketzentren<br />

Alle <strong>Linux</strong>-Clients einer Firma auf dem aktuellen Stand halten – das erweist sich auf Dauer als logistische Herausforderung.<br />

Dem geplagten Administrator helfen zum Glück Systeme zur Softwareverteilung, für die er noch<br />

nicht einmal den Geldbeutel öffnen muss. Tim Schürmann<br />

© Oleg Zhukov, 123RF<br />

Zwei Mausklicks genügen – und schon<br />

bekommen alle Rechner der Buchhaltung<br />

die neueste Tabellenkalkulation installiert.<br />

Der Administrator muss sich dazu<br />

nicht einmal von seinem Stuhl erheben.<br />

Möglich machen das Programme zur Paketverteilung.<br />

Sie arbeiten allesamt nach<br />

einem einfachen Prinzip: Ein zentraler<br />

Server hortet und verwaltet alle verfügbaren<br />

Softwarepakete. Dort können<br />

sich dann nicht nur die angeschlossenen<br />

Clients selbst bedienen, auf Weisung des<br />

Administrators schiebt der Server auch<br />

beliebige Pakete auf einige ausgewählte<br />

Clients. Daneben lassen sich natürlich<br />

Pakete auch wieder deinstallieren oder<br />

Clients aktualisieren.<br />

Damit sich der Admin dabei nicht die<br />

Finger wund klickt, darf er mehrere zusammengehörende<br />

Pakete zu einer Paketgruppe<br />

vereinen: Die Entwicklungsabteilung<br />

freut sich beispielsweise über<br />

Eclipse, Java und einen UML-Editor.<br />

Danach genügt ein einziges Kommando,<br />

um alle drei Werkzeuge gleichzeitig auf<br />

den betroffenen Clients einzuspielen oder<br />

wieder zu löschen. Analog fasst er jene<br />

Clients in Gruppen zusammen, die jeweils<br />

eine angepasste Software-Ausstattung<br />

erhalten.<br />

Serverausstattung<br />

Wer nach einer kostenlosen Softwareverteilung<br />

für <strong>Linux</strong>-Clients sucht, stößt<br />

immer wieder auf die Namen M23 und<br />

Spacewalk. Wesentlich neuer ist Pulp,<br />

das ein eigener Artikel in diesem Themenschwerpunkt<br />

beschreibt.<br />

Beide Testkandidaten richten auf dem<br />

Server-Rechner mindestens Apache nebst<br />

einer Datenbank ein, die leider meist<br />

mit bereits installierten Pendants kollidieren.<br />

M23 bringt einen LDAP-Server<br />

mit, Spacewalk bindet vorhandene ein.<br />

Um nicht in die Tiefen der Konfigurationsdateien<br />

absteigen zu müssen, stellt<br />

der Administrator tunlichst einen eigenen<br />

Server für die Paketverteilung ab.<br />

Dieser kann übrigens nicht nur selbst<br />

Pakete vorhalten, sondern auch gleich<br />

ganze (externe) Repositories spiegeln.<br />

Damit ist man zwar unabhängig von der<br />

Internetverbindung, doch kostet die Zwischenspeicherung<br />

mitunter ordentlich<br />

Festplattenplatz.<br />

Der Server kann die Installation der<br />

Programmpakete nur dann erzwingen,<br />

wenn die Clients unter seiner Kontrolle<br />

stehen. Dazu impft der Admin sie mit<br />

einer Client software und meldet sie anschließend<br />

beim Server an. M23 und<br />

Spacewalk installieren daneben auch<br />

ganze Distributionen auf neuen Clientrechnern<br />

und wildern damit im Bereich<br />

der Provisioning-Systeme.<br />

E M23<br />

Schon seit 2002 arbeitet Hauke Goos-<br />

Habermann an M23 [1], das auf dem<br />

Server zwingend ein Debian-System voraussetzt.<br />

Die Software verwaltet Clients<br />

mit Debian, Ubuntu, Kubuntu, Xubuntu,<br />

<strong>Linux</strong> Mint, Fedora und Open Suse. Der<br />

Server lässt sich von einem bereitgestellten<br />

ISO-Image installieren, das ein kleines<br />

Debian 6 (Squeeze) in der 32-Bit-Fassung<br />

enthält. Alternativ holt der Admin die<br />

M23-Pakete auch aus einem Repository<br />

in einen vorhandenen Debian-Server<br />

oder greift zu einer fertigen virtuellen<br />

Maschine für Virtualbox.<br />

Nach der Installation läuft auf dem M23-<br />

Server neben Apache mit PHP und einer<br />

MySQL-Datenbank auch ein eigener<br />

DHCP-Server. Er beißt sich unter Umstän-


Abbildung 1: M23 bedient der Admin über eine bunte Webanwendung, die sich nur auf einem großen Monitor gut macht.<br />

den mit anderen Kollegen im Netzwerk.<br />

Bei Kollisionen empfiehlt das Handbuch,<br />

die anderen DHCP-Server abzuschalten<br />

und ausschließlich die M23-Instanz zu<br />

benutzen.<br />

Übersichtlich<br />

Die Verwaltung der Clients erfolgt bequem<br />

über eine Webanwendung (Abbildung<br />

1). Sie wirkt etwas altbacken und<br />

geht großzügig mit Platz um, ist dafür<br />

aber recht übersichtlich (Abbildung 2).<br />

M23 kann mehrere Administratoren unterscheiden,<br />

die allerdings allesamt die<br />

gleichen weitreichenden Zugriffsrechte<br />

besitzen – die Konkurrenz erlaubt hier<br />

eine feinere Rechtevergabe.<br />

Sobald der Server läuft, lässt der Systemverwalter<br />

die Clients via PXE oder<br />

Etherboot vom Netzwerk booten. M23<br />

schiebt den Rechnern dann das jeweils<br />

gewünschte Betriebssystem zu. Alternativ<br />

ist in der Serveroberfläche ein Image für<br />

eine passende Boot-CD zu finden. Bestehende<br />

Clients bindet der M23-Server nur<br />

dann ein, wenn auf ihnen<br />

Debian oder Ubuntu mit<br />

einem SSH-Server läuft.<br />

Verschiedene Paketquellen<br />

lassen sich auch zu einer<br />

neuen Gruppe zusammenfassen<br />

und als Basis für<br />

die Client-Installation verwenden.<br />

Neben normalen Programmpaketen<br />

kennt M23<br />

noch Spezialpakete, die<br />

Systemoperationen oder<br />

umfangreiche Aufgaben<br />

lösen. Dazu gehört etwa,<br />

eine Festplatte zu formatieren<br />

oder in einem Rutsch<br />

KDE 4 parallel zu Gnome<br />

zu installieren.<br />

Auf Wunsch erzeugt der<br />

integrierte Paket-Architekt<br />

aus ».tar.gz«-Archiven<br />

pas sende ».deb«-Pakete. Erhält ein Client<br />

einen Installations- oder Deinstallationsauftrag,<br />

weckt ihn der Server bei Bedarf<br />

via Wake on LAN auf. Nach durchgeführter<br />

Arbeit versetzt ihn der Server dann<br />

wieder in den Ruhezustand. Als kleine<br />

Delikatesse nimmt M23 sogar Shellskripte<br />

entgegen, die es auf die Clients überträgt<br />

und dort ausführt.<br />

Der M23-Server erzeugt außerdem Abbilder<br />

seiner Festplatten und von denen<br />

des Clients und legt via Backup-PC-Komponente<br />

auch dateibasierte Sicherheits-<br />

Softwareverteilung 05/2012<br />

Titelthema<br />

www.linux-magazin.de<br />

23<br />

8,90€ *<br />

124 Seiten <strong>Linux</strong><br />

+ DVD<br />

Die aktuelle Ausgabe von <strong>Linux</strong>User Spezial<br />

dringt in die Tiefen des <strong>Linux</strong>-Systems ein<br />

und zeigt, wie Sie Ihren Rechner auf der<br />

Kommandozeile administrieren.<br />

Jetzt bestellen<br />

unter: www.linuxuser.de/spezial<br />

Tel.: 089-9934110, Fax: 089-99341199, E-Mail: order@linuxnewmedia.de


Titelthema<br />

www.linux-magazin.de Softwareverteilung 05/2012<br />

24<br />

Abbildung 2: Mit den farbigen Punkten in der ersten Spalte signalisiert M23, ob die Clients gerade beschäftigt sind.<br />

nur Softwarepakete verteilen,<br />

sondern auch gleich<br />

Clientsysteme automatisiert<br />

aufsetzen und inventarisieren.<br />

Der Server verwaltet<br />

zwar auch Clients<br />

mit Debian und Suse Enterprise<br />

<strong>Linux</strong>, doch an vielen<br />

Stellen zeigt sich, dass die<br />

Software ursprünglich nur<br />

auf Red-Hat-Systeme zugeschnitten<br />

war.<br />

Obwohl für RHEL, Centos<br />

und Fedora fertige Pakete<br />

der Spacewalk-Software<br />

bereitstehen, macht die Einrichtung des<br />

Servers einige Arbeit. Das liegt zum einen<br />

an der Dokumentation, die lediglich aus<br />

einem ziemlich chaotischen Wiki besteht<br />

[6], zum anderen an den zahlreichen<br />

Abhängigkeiten. Der Spacewalk-Server<br />

übertrifft darin seine Konkurrenten und<br />

bannt unter anderem Java, Python, den<br />

Tomcat-Server und die Datenbank PostgreSQL<br />

auf die Platte. Anstelle von PostgreSQL<br />

darf der Anwender auch zu einer<br />

Oracle-Datenbank greifen, in beiden Fällen<br />

ist er jedoch für die Einrichtung selbst<br />

verantwortlich.<br />

Darüber hinaus hätte Spacewalk gerne<br />

auf allen Rechnern Full Qualified Domain<br />

Names sowie Durchgänge in der Firewall<br />

an den Ports 80, 443, 4545, 5222 und<br />

5269. Bei den Clientrechnern ist Spacewalk<br />

genügsamer: Dort reicht es volkomkopien<br />

an. Diese landen grundsätzlich<br />

auf der Festplatte des Servers. Nur die<br />

Serverbackups darf der Admin sicher per<br />

»scp« auf einen Fileserver schieben, mit<br />

den Clientbackups geht das unverständlicherweise<br />

nicht.<br />

Virtuell<br />

Direkt aus der Browseroberfläche heraus<br />

lassen sich auf dem Server und den<br />

Clients weitere virtuelle Maschinen mit<br />

Clientsystemen einrichten und verwalten.<br />

Im Hintergrund kommt dabei Virtualbox<br />

zum Einsatz. Hauke Goos-Habermann<br />

bietet auf seiner eigenen Homepage einen<br />

Fernadministrations-Service an, über den<br />

der Kunde den eigenen M23-Server via<br />

Internet fernsteuern kann. Als Bonbon<br />

lässt sich schließlich der Funktionsumfang<br />

des M23-Servers noch über Plugins<br />

erweitern.<br />

In den Tests der Redaktion verhielt sich<br />

M23 hin und wieder zickig: Obwohl aus<br />

dem angebotenen ISO-Image installiert,<br />

wollte der DHCP-Server aufgrund einer<br />

fehlerhaften Konfigurationsdatei nicht<br />

starten, folglich suchten die Clients<br />

vergeblich ihren Meister. Einen bereits<br />

installierten Ubuntu-Rechner band der<br />

M23-Server klaglos ein, weigerte sich<br />

dann aber hartnäckig, auf ihm Software<br />

zu installieren. Wie sich herausstellte,<br />

fehlten dem Server die Berechtigungen<br />

für ein nicht existierendes Verzeichnis.<br />

Vermutlich hat hier die M23-Oberfläche<br />

bei der Registrierung des Clients geschludert.<br />

Beheben ließ sich das Problem bis<br />

Redaktionsschluss nicht.<br />

Der Versuch, den Server über die Browseroberfläche<br />

via »Update« zu aktualisieren,<br />

führte nur zu einer leeren Seite.<br />

Außerdem präsentierte M23 die für die<br />

Administration der Clients benötigten<br />

Rootpasswörter auch ständig im Klartext<br />

– sicherheitsbewussten Administratoren<br />

ein Graus.<br />

Über seine eigene Homepage bietet der<br />

Entwickler kostenpflichtigen Support an<br />

[1], beantwortet aber auch die im offiziellen<br />

Community-Forum [2] gestellten<br />

Fragen. Als weitere Anlaufstelle existieren<br />

eine Mailingliste [3] sowie ein ausführliches<br />

Handbuch auf Deutsch, das<br />

allerdings mehr als Referenz dient [4].<br />

E Spacewalk<br />

Beim zweiten Testkandidaten handelt es<br />

sich um die Open-Source-Variante des<br />

Red Hat Network Satellite Server [5].<br />

Ähnlich wie M23 kann Spacewalk nicht<br />

Abbildung 3: Die Benutzeroberfläche von Spacewalk wirkt nur auf den ersten Blick übersichtlich. Viele Funktionen<br />

verstecken sich in Untermenüs.


Tel. 0 64 32 / 91 39-749<br />

Fax 0 64 32 / 91 39-711<br />

vertrieb@ico.de<br />

www.ico.de/linux<br />

SEIT 1982<br />

men aus, ein kleines Kommandozeilenwerkzeug<br />

zu installieren.<br />

Die Bedienung erfolgt wie bei M23<br />

größtenteils über eine Webanwendung<br />

(Abbildung 3). In einigen Situationen<br />

muss der Admin jedoch auf Kommandozeilenwerkzeuge<br />

zurückgreifen – etwa<br />

wenn er dem Spacewalk-Server ein Paket<br />

hinzufügt oder einen bestehenden Client<br />

anmeldet. Damit Letzteres klappt, muss<br />

er für diesen auf dem Server zunächst<br />

einen Aktivierungsschlüssel generieren.<br />

Der funktioniert ähnlich wie eine Eintrittskarte<br />

ins Fußballstadion: Er verhindert,<br />

dass beliebige Clients eigenmächtig<br />

an den Server andocken, und regelt<br />

gleichzeitig, zu welchen Paketquellen der<br />

legitimierte Client Zutritt erhält.<br />

Softwarepakete und Repositories sammelt<br />

Spacewalk in so genannten Channels.<br />

Jeder Client kann einen oder mehrere<br />

solcher Kanäle abonnieren. Neue Pakete<br />

in den Channels holt sich entweder der<br />

Client automatisch ab (Polling) oder der<br />

Administrator schiebt sie explizit hinüber<br />

(Push). In letzterem Fall hat er jedoch<br />

Tabelle 1: Systeme zur Softwareverteilung<br />

keine Kontrolle darüber, wann genau<br />

die Installation eines Pakets stattfindet.<br />

Der Administrator kann lediglich festlegen,<br />

ab wann Spacewalk das Paket<br />

installieren darf (Abbildung 4). Selbst<br />

geschnürte Pakete müssen übrigens signiert<br />

sein, andernfalls weist Spacewalk<br />

sie standardmäßig ab.<br />

In einer History merkt sich Spacewalk<br />

ausgeführte Aktionen, sie rückgängig<br />

machen kann die Software aber nicht.<br />

Außerdem lassen sich Profile anlegen, die<br />

den aktuellen Paketbestand des Clients<br />

festhalten. Die Profile darf der Admin<br />

dann miteinander vergleichen – mehr<br />

aber auch nicht. Snapshots der Clientsysteme<br />

lassen sich zwar erstellen und<br />

später bei Bedarf zurückspielen. Das<br />

funktioniert aber nur, wenn der Administrator<br />

den Client über die entsprechenden<br />

Provisioning-Funktionen in Spacewalk<br />

aufgesetzt hat.<br />

Errata verwaltet Spacewalk separat, dabei<br />

darf der Anwender auch eigene erstellen.<br />

Als kleine Besonderheit führt Spacewalk<br />

auf den Clients (Shell-)Skripte aus und<br />

Name M23 Spacewalk<br />

Version 12.1 rock 1.6<br />

Internetadresse [http:// m23. sourceforge. net] [http:// spacewalk. redhat. com]<br />

Lizenz GPLv2 GPLv2<br />

Server-Betriebssystem Debian Fedora, Centos, RHEL<br />

Client-Betriebssysteme<br />

Debian, Ubuntu, Kubuntu, Xubuntu,<br />

<strong>Linux</strong> Mint, Fedora, Open Suse<br />

32-/​64-Bit-Systeme ja/​ja ja/​ja<br />

Fedora, Centos, Suse Enterprise<br />

<strong>Linux</strong>, Debian<br />

Benutzeroberfläche Webanwendung Webanwendung, Kommandozeile,<br />

XML-RPC-API<br />

Repositories gruppieren ja ja (über Channel)<br />

Pakete gruppieren ja ja (über Sub-Channel)<br />

Clients gruppieren ja ja<br />

Client in Ausgangszustand ja<br />

nur manuell<br />

zurücksetzen<br />

Snapshots ja nur wenn über Spacewalk installiert<br />

Repositories spiegeln ja ja<br />

Backup der Clients ja Snapshots in besonderen Fällen<br />

Wake on LAN ja nein<br />

Mehrere Administratoren ja ja (rollenbasiert)<br />

Skripte auf Clients ausführen<br />

ja<br />

ja<br />

Management von Konfigurationsdateien<br />

nein<br />

ja<br />

Automatische Betriebssysteminstallation<br />

ja<br />

ja<br />

Lastverteilung über Proxys nein ja<br />

Kommerzieller Support ja nur für Satellite<br />

Innovative Computer • Zuckmayerstr. 15 • 65582 Diez<br />

Neueste Intel<br />

® Xeon ®<br />

E5 Technologie<br />

inkl. Mwst.<br />

inkl. Mwst.<br />

inkl. Mwst.<br />

GmbH<br />

XANTHOS R16A 1HE 4x 3,5“ SERVER<br />

Flexibler und skalierbarer 1HE Hochleistungs-<br />

Server mit Intel ® Xeon ® E5 Technologie.<br />

• 2x Intel ® Xeon ® E5-2620 2,0GHz<br />

• 8x 4GB DDR3-1600<br />

• 4x 1TB Toshiba Nearline SAS<br />

• LSI 9260CV-4i + NAND BBU<br />

• 4x Gigabit-LAN<br />

• Intel ® Remote Management<br />

exkl. Mwst.<br />

4401, 81 3699,-<br />

Art.Nr. BTO-285278<br />

XANTHOS R25A 2HE 8x 3,5“ SERVER<br />

Flexibler und skalierbarer 2HE Hochleistungs-Server<br />

mit Intel ® Xeon ® E5 Technologie<br />

und bis zu 8 Festplatten.<br />

• 2x Intel ® Xeon ® E5-2620 2,0GHz<br />

• 8x 4GB DDR3-1600<br />

• 8x 1TB Toshiba Nearline SAS<br />

• LSI 9260CV-8i + NAND BBU<br />

• 2x Gigabit-LAN<br />

exkl. Mwst.<br />

4520, 81 3799,-<br />

Art.Nr. BTO-285279<br />

XANTHOS R26A 2HE 16x 2,5“ SERVER<br />

Flexibler und skalierbarer 2HE Hochleistungs-Server<br />

mit Intel ® Xeon ® E5 Technologie<br />

und bis zu 16 Festplatten.<br />

• 2x Intel ® Xeon ® E5-2620 2,0GHz<br />

• 8x 4GB DDR3-1600<br />

• 16x 300GB Toshiba Nearline SAS<br />

• LSI 9260CV-4i + NAND BBU<br />

• 4x Gigabit-LAN<br />

exkl. Mwst.<br />

7495, 81 6299,-<br />

Art.Nr. BTO-285280<br />

Intel, das Intel Logo und Xeon Inside sind Marken der<br />

Intel Corporation in den USA und anderen Ländern.<br />

Alle Preise in Euro.<br />

wir liefern auch<br />

nach Österreich<br />

u. in die Schweiz


Titelthema<br />

www.linux-magazin.de Softwareverteilung 05/2012<br />

26<br />

schiebt ihnen automatisch vorgefertigte<br />

Konfigurationsdateien unter. Für diese<br />

existiert sogar eine kleine Versionsverwaltung,<br />

über die der Administrator<br />

schnell zu einer älteren Konfiguration<br />

zurückspringen kann.<br />

Spacewalk ist sichtlich auf große Unternehmensnetzwerke<br />

ausgelegt. So hält es<br />

sogar die Rechner verschiedener Organisationen<br />

auseinander. Jeder Benutzer,<br />

der sich an der Weboberfläche anmeldet,<br />

sieht dabei nur die Systeme aus seiner<br />

Organisation. Spacewalk unterscheidet<br />

zwischen Benutzern und Administratoren,<br />

wobei Rollen für Admins festlegen,<br />

welche Aktionen sie auslösen dürfen und<br />

welche nicht. Daneben sieht Spacewalk<br />

den Einsatz von Proxys vor. Sie puffern<br />

die Inhalte und Pakete eines Spacewalk-<br />

Servers und sollen so die Last besser<br />

verteilen beziehungsweise die Ausfallsicherheit<br />

erhöhen.<br />

Die Dokumentation beschränkt sich auf<br />

das angesprochene, unordentliche Wiki<br />

[6] und die offizielle Red-Hat-Network-<br />

Satellite-Dokumentation [7]. Weiteren<br />

Support gibt es nur über die Mailingliste<br />

oder via IRC [8].<br />

Fazit<br />

Administratoren haben in der Praxis keine<br />

besonders große Auswahl: Wer Debianoder<br />

Ubuntu-Systeme einsetzt, greift eher<br />

zu M23, für Installationen mit Fedora,<br />

Centos oder Red Hat gibt es Spacewalk<br />

oder auch Pulp, das ein anderer Artikel<br />

in diesem Schwerpunkt beschreibt. In heterogenen<br />

Umgebungen empfehlen sich<br />

trotz ihrer Vorlieben M23 und Spacewalk,<br />

der Admin muss dabei aber genau auf<br />

die unterstützten Distributionen achten.<br />

Eine kostenlose Softwareverteilung für<br />

beliebige <strong>Linux</strong>-Systeme ließ sich leider<br />

nicht aufspüren. Der Kasten „Weitere<br />

Software“ listet aber weitere erwähnenswerte<br />

Tools, die für bestimmte Szenarien<br />

passen mögen.<br />

M23 lässt sich am einfachsten in ein neu<br />

aufzusetzendes Netzwerk integrieren,<br />

das Einbinden bestehender Clientrechner<br />

klappt dagegen nur mit Schwierigkeiten.<br />

Spacewalk wiederum lässt sich nur umständlich<br />

installieren, bietet dafür aber einen<br />

großen Funktionsumfang und bringt<br />

eine komfortable, Browser-basierte Benutzeroberfläche<br />

mit – wenngleich diese<br />

Abbildung 4: In Spacewalk kann man Pakete ab einem bestimmten Zeitpunkt einspielen lassen.<br />

nicht ganz so intuitiv zu bedienen ist wie<br />

die von M23.<br />

Einen eindeutigen Favoriten gibt es somit<br />

nicht, jedes System hat seine individuellen<br />

Vor- und Nachteile, die in Tabelle 1<br />

übersichtlich präsentiert sind. Wer vor<br />

der Wahl steht, sollte daher seine Anforderungen<br />

mit den Funktionen der Probanden<br />

vergleichen und sich dann erst<br />

entscheiden. (mhu)<br />

n<br />

Infos<br />

[1] Goos-Habermann, Support für M23:<br />

[http:// www. goos‐habermann. de]<br />

[2] M23-Forum:<br />

[http:// m23. sourceforge. net/ phpBB2]<br />

[3] M23-Mailingliste: [https:// lists.​<br />

sourceforge. net/ lists/ listinfo/ m23‐user]<br />

Weitere Software<br />

[4] M23-Handbuch: [http:// m23. sourceforge.​<br />

net/ docs/ manual/ html/ de/ manual. html]<br />

[5] Red Hat Network Satellite Server:<br />

[http:// de. redhat. com/ products/​<br />

enterprise‐linux/ rhn‐satellite/]<br />

[6] Spacewalk-Wiki: [https:// fedorahosted.​<br />

org/ spacewalk/ wiki/ UserDocs]<br />

[7] Dokumentation zu Red Hat Network<br />

Satellite: [http:// www. redhat. com/ docs/​<br />

en‐US/ Red_Hat_Network_Satellite/ 5. 3. 0/​<br />

Installation_Guide/ html/ index. html]<br />

[8] Spacewalk-Mailingliste und IRC-Chat:<br />

[http:// spacewalk. redhat. com/​<br />

communicate. html]<br />

[9] OCS Inventory NG:<br />

[http:// www. ocsinventory‐ng. org]<br />

[10] Open PC Server Integration (Opsi):<br />

[http:// uib. de/ www/ opsi/ index. html]<br />

[11] Uranos: [http:// uranos. sourceforge. net]<br />

Neben M23 und Spacewalk gibt es noch einige<br />

weitere freie Anwendungen, die aber meist<br />

einen oder mehrere Haken haben.<br />

So ist etwa OCS Inventory NG [9] eigentlich<br />

eine Inventarisierungssoftware, die einen<br />

Überblick über die im Netzwerk enthaltenen<br />

Rechner mit ihrer Hard- und Software geben<br />

soll. Als Nebenjob schickt sie allerdings auch<br />

Programmpakete an die Clients. Diese Pakete<br />

muss der Admin allerdings selbst schnüren, als<br />

Archivformat dienen ».zip« oder ».tar.gz«. OCS<br />

entpackt das Archiv auf dem Client und führt<br />

ein darin enthaltenes Programm oder Skript<br />

aus. Unter dem Strich ist das nicht gerade das,<br />

was der <strong>Linux</strong>-Admin gewohnt ist. Im Gegenzug<br />

kann OCS Inventory mit verschiedenen<br />

Betriebssystemen auf den Clients umgehen,<br />

angefangen bei Windows über Mac OS X bis<br />

hin zu HP-UX.<br />

Open PC Server Integration (Opsi, [10]), läuft<br />

zwar auf einem <strong>Linux</strong>-Server, verteilt Software<br />

aber ausschließlich an Windows-Clients.<br />

Die Entwicklerfirma Uib GmbH stellt auf ihrer<br />

Homepage allerdings die automatische Installation<br />

von <strong>Linux</strong>-Clients in Aussicht.<br />

Kurz vor Redaktionsschluss zeigte sich auf der<br />

Cebit mit Uranos [11] noch ein weiteres interessantes<br />

Tool mit Weboberfläche. Der <strong>Linux</strong>-<br />

Admin Mario Gzuk entwickelt es bereits seit<br />

2004 für den Eigenbedarf.


CLEVER KOMBINIERT!<br />

Premium Server + VeriSign<br />

®<br />

SSL-Zertifikat<br />

Leistungsstark! Sicher! Günstig!<br />

Jetzt 4 Wochen unverbindlich testen!<br />

Inkl. VeriSign ® Secure Site SSL -Zertifikat!<br />

VIRTUAL DEDICATED SERVER<br />

» 4 GB RAM<br />

» 100 GB Speicherplatz<br />

» Root-Zugriff<br />

» Parallels<br />

® Plesk<br />

» Hostingsystem von Dell<br />

®<br />

Regulär: 49,-<br />

39,-<br />

EUR / Monat*<br />

DEDICATED SERVER<br />

» Intel ® Xeon ® E3-1260L<br />

» 4 Cores mit je 2,4 GHz<br />

» 8 GB RAM<br />

» 2 x 600 GB SAS HDD<br />

» Dell<br />

® PowerEdge R210 II<br />

Regulär: 129,-<br />

79,-<br />

EUR / Monat*<br />

Nur bei InterNetX GRATIS!<br />

» VeriSign ® SSL Secure Site<br />

› Malware Scan<br />

› Trust Seal<br />

› Seal-in-Search<br />

› Bis 256-Bit-Verschlüsselung<br />

» Domain-, Server- & SSL -<br />

Management-Tools<br />

Regulär: 299,-<br />

0,-<br />

Zu jedem Server<br />

einmalig*<br />

Klickrate in Suchmaschinen maximieren<br />

Durch Seal-in-Search wird in<br />

Suchmaschinen-Einträgen<br />

Trust Seal angezeigt.<br />

Mehr Bestellungen, mehr Kundenanfragen<br />

Zeigen Sie Ihren Kunden,<br />

dass Ihr Unternehmen durch<br />

Trust Seal verifiziert ist.<br />

Security Scan Ihres Servers<br />

Präventivschutz! Prüfen Sie Ihren Server mit<br />

Vulnerability Assessment* auf Schwachstellen.<br />

Vertrauenswürdige Webseite<br />

Der Malware Scan garantiert Ihren Kunden eine<br />

sichere Website – frei von Schad-Software.<br />

Jetzt informieren<br />

und bestellen:<br />

www.internetx.com<br />

+49 (0) 941 / 59 559-483<br />

Unser Partner<br />

*Alle Preise richten sich nur an Gewerbetreibende und verstehen sich zzgl. gesetzlicher MwSt. Bei allen Angeboten sind das VeriSign ® Secure Site SSL-Zertifikat für 12 Monate gratis und<br />

500 GB Traffic/Monat inklusive. Je nach Nutzung fallen weitere Traffic-Gebühren ab 0,29 €/GB an. Der Testzeitraum beträgt 28 Kalendertage nach Bereitstellung und ist begrenzt auf einen Test<br />

pro Kunden. Vulnerability Assessment ist erhältlich ab VeriSign Secure Site Pro. Virtual Dedicated Server: 39,- €/Monat. Mindestvertragslaufzeit 12 Monate. Keine Einrichtungsgebühr.<br />

Dedicated Server: 79,- €/Monat. Mindestvertragslaufzeit 24 Monate. Einmalige Einrichtungsgebühr 79,- €. Nur solange der Vorrat reicht. Die Abbildung des Servers ist symbolisch.


Titelthema<br />

www.linux-magazin.de Pulp 05/2012<br />

28<br />

Automatisches Softwaredeployment mit Pulp<br />

Filmreif austeilen<br />

„Ich bin Mr. Wolf. Ich löse Probleme.“ Ob Zitate wie dieses hilfsbereite von Harvey Keitel aus Tarantinos „Pulp<br />

Fiction“ die Macher der im Folgenden vorgestellten Softwareverteilung inspiriert haben, lässt sich nicht sicher<br />

sagen. Was das Red-Hat-Community-Projekt Pulp ausmacht aber schon. Konstantin Agouros<br />

Gruppe gelistet ist, landet die Buchhaltungssoftware<br />

damit nicht. Zudem besitzt<br />

das System die für Software-Inventarisierungen<br />

typischen Abfragemöglichkeiten,<br />

zum Beispiel welche Systeme welche Pakete<br />

verwenden.<br />

Dreiteilige Architektur<br />

© Aaron Amat, 123RF<br />

Yum [1] mildert die Leiden von Administratoren,<br />

die RPM-basierte Systeme<br />

pflegen, erheblich. Mit Hilfe von Yum-<br />

Repositories installiert der Admin das<br />

Zielpaket wie bei Debian oder Gentoo<br />

und das Paketmanagement löst alle Abhängigkeiten<br />

eigenständig auf. Auch Updates<br />

und das Installieren aus mehreren<br />

Quellen unterstützt Yum.<br />

Aber was macht der Admin, wenn er<br />

nicht ein paar, sondern 10, 50 oder 1000<br />

Rechner verwaltet, die möglichst gleich<br />

oder in Gruppen gleicher Systeme installiert<br />

sein sollen? Dazu kommt vielleicht<br />

noch eine Mischung aus Centos, Fedora<br />

und Red Hat Enterprise <strong>Linux</strong>. Entweder<br />

steht viel Handarbeit an oder es entsteht<br />

eine bunte Skriptsammlung.<br />

Einen Ausweg schafft das Pulp-Projekt<br />

[2], eine Softwareverteilung für Red Hat<br />

Enterprise <strong>Linux</strong> 5 und 6, Fedora 15 und<br />

16 sowie Centos. Das Prinzip der Software<br />

(seit Februar 2012 mit der Versionsnummer<br />

1.0) ist es, dass der Administrator<br />

die RPM-Sammlungen lokal vor- und<br />

aktuell hält und dass sich angeschlossene<br />

Clients daraus bedienen.<br />

In das System eingebundene Clients verwenden<br />

es einfach als Yum-Repository,<br />

ihnen stehen dann alle Pakete aus den<br />

Quellen, für die sie sich beim Server registriert<br />

haben, zur Verfügung. Der Clou<br />

des Systemes ist aber, dass der Server<br />

Pakete auch an die Clients verteilen kann<br />

und für bereits installierte Pakete Updates<br />

einspielt. Somit lässt sich der Softwarestand<br />

auf allen angeschlossenen Systemen<br />

zentral administrieren.<br />

Pulp eröffnet Möglichkeiten, Systeme zu<br />

Gruppen zusammenzufassen, um zum<br />

Beispiel alle Systeme der Buchhaltung<br />

mit einem Kommando mit dem Update<br />

der Buchhaltungssoftware auszustatten;<br />

auf dem Webserver, der in einer anderen<br />

Pulp ist in Python programmiert und enthält<br />

drei logische Komponenten:<br />

n Den Yum-Server, der die Pakete und<br />

die Verwaltungsinformationen vorhält<br />

und die Installationen steuert.<br />

n Den Yum-Client beziehungsweise Consumer,<br />

er bezieht seine RPM-Pakete<br />

vom Yum-Server oder bekommt sie<br />

von ihm zugeteilt.<br />

n Optional gibt es noch den Yum Content<br />

Delivery Server (CDS), der in verteilten<br />

Installationen die Last und den<br />

Netzwerktraffic entzerrt. Dazu hält er<br />

eine lokale Kopie der RPMs vor, damit<br />

diese gegebenenfalls nicht über<br />

eine langsame WAN-Leitung auf dem<br />

Client landen.<br />

Seine Verwaltungsinformationen speichert<br />

das System in einer Mongo DB [3].<br />

Die Kommunikation der Komponenten<br />

erfolgt zum einen über HTTPS, zum anderen<br />

über einen eigenen Messagebus<br />

auf Basis von Apache Qpid [4]. Es ist<br />

vorgesehen, diese Kommunikation mit<br />

SSL abzusichern, wobei sich der Server<br />

beim Client und auch der Client beim<br />

Server authentisiert. Abbildung 1 zeigt<br />

die Zusammenhänge.<br />

Paketquellen zuweisen<br />

Repositories, also Paketquellen von<br />

zum Beispiel einer Version der Fedora-<br />

Distribution, sind für Pulp zentral. Dass


Pulp auch für den eigentlichen Installationsprozess<br />

Yum verwendet, macht<br />

die Zuordnung einfach: Jedes Repository<br />

entspricht einem Yum-Repository, das der<br />

Pulp-Server aus einer externen Quelle<br />

füllt (und aktuell hält) und aus dem sich<br />

die Clients oder Consumer bedienen oder<br />

betankt werden.<br />

Der Administrator weist dem Pulp-Consumer<br />

ein oder mehrere Repositories<br />

zu (Datei »pulp.repo«). Für den Consumer<br />

sind sie alle per Yum erreichbar.<br />

Verbleiben die Originaleinträge aus der<br />

Installation in »/etc/yum.repos.d« oder<br />

stehen sie auf »enabled«, so führt auch<br />

eine zentrale Installation dazu, dass sich<br />

der Client – auf dem ja »yum install«<br />

periodisch läuft – gegebenenfalls das Paket<br />

über die Repository-Quelle aus dem<br />

Internet lädt.<br />

Repositories automatisch zu synchronisieren<br />

beherrscht Pulp von sich aus. Der<br />

Administrator gibt einfach ein Schedule<br />

vor, das definiert, wie oft der Server sich<br />

mit der externen Quelle abgleicht. Dabei<br />

kann er Bandbreitenlimits vorgeben<br />

oder DVDs sowie andere Dateiquellen<br />

als Repository-Gegenüber bestimmen.<br />

Der Administrator darf zudem mehrere<br />

Repositories als Gruppe deklarieren,<br />

zum Beispiel alle Versionen von Fedora.<br />

Ebenso kann er Gruppen von Consumern<br />

bilden und dort mit nur einem Kommando<br />

ein Patch auf allen Gruppenmitgliedern<br />

ausrollen.<br />

Last verteilen<br />

Die Content Delivery Server eröffnen<br />

eine Möglichkeit, Repositories auszulagern,<br />

und sorgen für Lastverteilung und<br />

Ausfallsicherheit. Ein CDS bekommt<br />

Repositories zugewiesen – welche darf<br />

der Admin konfigurieren. Mehrere CDS<br />

lassen sich zu logischen Clustern zusammenfassen.<br />

Die Clients bekommen bei<br />

der Registrierung zu einem Repository<br />

einen CDS zugeordnet. Der Pulp-Server<br />

synchronisiert die Repositories auf die<br />

CDS. Der Administrator darf wieder einen<br />

Zeitplan angeben, wann dies sinnvollerweise<br />

geschehen soll, etwa um Nebenzeiten<br />

auszunutzen.<br />

Die Benutzer kann der Admin in Pulp<br />

lokal anlegen und authentisieren oder<br />

sie auch gegen einen externen LDAP-<br />

Server authentisieren. Benutzer bekommen<br />

dann Rollen zugeordnet und diese<br />

wiederum Rechte (Permissions).<br />

Pulp-Server installieren<br />

Wer einen Pulp-Rechner aufsetzen will,<br />

tut dies, wie könnte es anders sein, per<br />

Yum. Für einen Pulp-Server legt der<br />

Admin in »/etc/yum.repos.d/« ein »pulp.<br />

repo« ab. Auf der Installationswebseite<br />

finden sich je nach Distribution und deren<br />

Version gleich die passenden Wget-<br />

Kommandos, mit denen die Datei auch<br />

an den richtigen Ort gelangt.<br />

Einiges ist allerdings zu beachten, wie<br />

mehrere Testinstallationen ergaben:<br />

n Die Hardware sollte nicht zu schwach<br />

dimensioniert sein, da viel I/O anfällt,<br />

die Mongo DB CPU-Leistung benötigt<br />

und die Repositories viel Festplattenplatz<br />

belegen.<br />

n Auf dem Server soll ein Apache-Webserver<br />

mit »mod_wsgi« laufen. (Das<br />

verträgt sich meist nicht mit »mod_python«.)<br />

Die Firewall muss die Ports<br />

443, 5672 und 5674 offenhalten.<br />

n Der Pulp-Server benötigt ein gültiges<br />

SSL-Zertifikat, das auf den Full Qualified<br />

Domain Name ausgestellt ist;<br />

dies kann selbst erzeugt sein. Achtung:<br />

Jene von Apache auf »localhost.<br />

localdomain« verhindern die Kommunikation<br />

zwischen<br />

Consumern und Clients<br />

dem Server und<br />

auch zwischen<br />

dem Administrationstool<br />

und dem<br />

Server. Für Content<br />

Delivery Server gilt<br />

das Gleiche, sollen<br />

sich alle Consumer<br />

mit Clientzertifikaten<br />

authentisieren.<br />

n Die Repositories<br />

lan den unter »/var/<br />

lib/pulp« – dabei<br />

kom men schnell<br />

mehrere Gigabyte<br />

zusammen. Der Admin<br />

sollte rechtzeitig<br />

prüfen, ob genug<br />

Platz ist.<br />

n Die Da ten für die<br />

Verwaltung liegen<br />

in der Mongo DB<br />

unter »/var/lib/<br />

Server<br />

mongo db«. Auch hierfür sollte ausreichend<br />

Platz sein, wenn auch nicht so<br />

viel wie für die Repositories.<br />

Beim Planen muss anfangs nicht feststehen,<br />

ob es Content Delivery Server<br />

geben soll, die lassen sich nämlich später<br />

einfach hinzugefügen. Die Installation<br />

beginnt auf dem Server mit »yum install<br />

pulp« . Unter Fedora braucht nichts weiter<br />

zu passieren. Bei RHEL 5 und 6 installiert<br />

der Admin noch das »epel«-Paket, die<br />

Installationsanleitung auf der Webseite<br />

nennt hierfür das Kommando.<br />

Bei Red Hat 5 muss er zudem eine Subscription<br />

zu den Channels „MRG Mes saging“<br />

und „Messaging Base“ einrichten.<br />

Beim für diesen Artikel getesteten Centos<br />

6.2 hat es gereicht, das Paket »qpid‐server«<br />

mit Yum ins System zu holen. Alternativ<br />

installiert der Admin Apache Qpid<br />

aus den Source-RPMs, wie dies bei älteren<br />

Centos-Versionen notwendig war.<br />

Dabei muss er Geduld oder eine kräftige<br />

Maschine mitbringen, da das Kompilieren<br />

eine Weile dauert.<br />

Liegt Pulp auf der Platte, ersetzt der Admin<br />

in der Datei »/etc/pulp/pulp.conf«<br />

zumindest »localhost« durch den individuellen<br />

Namen des Systems. Für ihn sollte<br />

auch das Webserver-Zertifikat ausgestellt<br />

sein. In derselben Datei ist auch der<br />

Default-Administrator »admin« mit Pass-<br />

Admin-CLI Consumer-CLI Pulp-Agent<br />

Pulp WS Proxy<br />

Apache<br />

Pulp Web Services<br />

»web.py«<br />

Pulp-Tools<br />

Pulp-Library<br />

»pymongo«<br />

Mongo DB<br />

Pulp Slave Messaging<br />

Qpid<br />

Pulp Master Messaging<br />

»python-qpid«<br />

Abbildung 1: Logische Struktur einer Pulp-Architektur. (Quelle: Pulp-Projekt)<br />

Pulp 05/2012<br />

Titelthema<br />

www.linux-magazin.de<br />

29


Titelthema<br />

www.linux-magazin.de Pulp 05/2012<br />

30<br />

wort »admin« hinterlegt. Vor dem Produktivbetrieb<br />

sollte man Letzteres ändern.<br />

Film ab!<br />

Mangels einer Policydatei für Pulp müssen<br />

RHEL-5-Admins noch die SE-<strong>Linux</strong>-<br />

Policy deaktivieren oder auf »permissive«<br />

stellen, es gibt ja keine. Spätestens jetzt<br />

kann’s losgehen: »service pulp‐server<br />

init« initialisiert den Dienst und »service<br />

pulp‐server start« startet ihn.<br />

Der Systemverantwortliche wird auf<br />

Dauer mit einer Admin-Clientsoftware<br />

arbeiten, deren Paket »pulp‐admin« mit<br />

Yum auf seinem PC landet. Der Rechner<br />

muss nicht mal Pulp-versorgt sein, sogar<br />

der Pulp-Server selber eignet sich. Damit<br />

der Admin-Client den Server findet,<br />

gehört der Hostname des Servers in die<br />

»/etc/ pulp/admin/admin.conf«.<br />

Auf den Clients führt der Administrator<br />

jetzt »yum install pulp‐consumer« aus<br />

und ersetzt in der Datei »/etc/pulp/consumer/consumer.conf«<br />

abermals »localhost«<br />

durch den Namen des Pulp-Servers.<br />

Jetzt kann er auf den Clients »service<br />

pulp‐agent start« aktivieren.<br />

Der Logik folgend bekommen eventuelle<br />

Content Delivery Server mit »yum install<br />

pulp‐cds« ihre Soft ware verpasst. In de-<br />

Tabelle 1: Ausstattung Pulp<br />

Name<br />

Version 1.0<br />

Internetadresse<br />

Lizenz<br />

Server-Betriebssystem<br />

Client-Betriebssysteme<br />

32-/​64-Bit-Systeme<br />

Benutzeroberfläche<br />

Repositories gruppieren<br />

Pakete gruppieren<br />

Clients gruppieren<br />

Client in Ausgangszustand zurücksetzen<br />

Snapshots<br />

Repositories spiegeln<br />

Backup der Clients<br />

Wake on LAN<br />

Mehrere Administratoren<br />

Skripte auf Clients ausführen<br />

Management von Konfigurationsdateien<br />

Automatische Betriebssysteminstallation<br />

Lastverteilung über Proxys<br />

Kommerzieller Support<br />

ren »/etc/pulp/cds.conf«-Datei gehört der<br />

Pulp-Server ebenso wie der Speicherort<br />

für die Repo sitories. Auch der CDS muss<br />

beim Pulp-Server angemeldet sein.<br />

Konfigurieren<br />

Der Administrator meldet sich beim Pulp-<br />

Server entweder mit »‐u Benutzername<br />

‐p Passwort« an oder indem er mit dem<br />

Kommando »pulp‐admin auth login« die<br />

Zugangsdaten im Homedirectory speichern<br />

lässt – ein nur auf vertrauenswürdigen<br />

Systemen akzeptables Vorgehen.<br />

Der erste Schritt erzeugt und synchronisiert<br />

die Repositories. Bei Centos sieht<br />

dies folgendermaßen aus:<br />

pulp‐admin repo create ‐‐arch x86_64U<br />

‐‐name Centos6.2 ‐‐id centos6.2_64 ‐‐feedU<br />

http://centos.bio.lmu.de/6.2/os/x86_64/<br />

pulp‐admin repo sync ‐‐id centos6.2_64U<br />

sync ‐F<br />

Pulp<br />

[http://​pulpproject.​org]<br />

GPLv2<br />

Fedora 15 und 16, RHEL 5 und 6, Centos<br />

Fedora 15 und 16, RHEL 5 und 6, Centos<br />

ja/​ja<br />

Kommandozeile, REST<br />

ja<br />

ja<br />

ja<br />

nur manuell<br />

nein<br />

ja<br />

nein<br />

nein<br />

ja (rollenbasiert)<br />

nein<br />

nein<br />

nein<br />

ja<br />

nein<br />

Der Parameter »‐‐id« taucht bei allen Kommandos<br />

auf, die etwas mit Repositories<br />

zu tun haben, und gibt dieses an. Die Option<br />

»‐F« bestimmt, dass das Kommando<br />

im Vordergrund abläuft, normalerweise<br />

läuft das Synchronisieren im Hintergrund.<br />

URLs bei »‐‐feed« dürfen auch<br />

dem »file:«-Schema folgen, wenn eine<br />

DVD einzubinden ist. Es folgt das Anmelden<br />

des Clients am Server. Dies geschieht<br />

auf dem Clientsystem, im Beispiel ist das<br />

»centoshost.localnet«:<br />

pulp‐consumer ‐u admin ‐p adminU<br />

consumer register ‐‐id=centos.localnet<br />

Der Befehl antwortet mit einer harmlosen<br />

Warnung:<br />

this client is not known to the pulpU<br />

server; run 'pulp‐consumer consumerU<br />

register' to register it<br />

Successfully registered consumerU<br />

[ centos.localnet ]<br />

Nun bekommt der Client ein oder mehrere<br />

Repositories zugewiesen. Dies stößt<br />

der Admin entweder vom Client aus an<br />

oder erledigt die Zuordnung am Server.<br />

Im Sinne der zentralen Administration ist<br />

es klug, den zweiten Weg zu gehen:<br />

pulp‐admin consumer bindU<br />

‐‐id centos.localnet ‐‐repoid centos6.2_64<br />

Der letzte Schritt legt auf dem Client eine<br />

neue Datei in »/etc/yum.repos.d« an, die<br />

ausreicht, um das System mit den synchronisierten<br />

Paketen zu versorgen.<br />

Pulp benutzen<br />

Der Server kann nun Pakete auf dem<br />

Client (nach-)installieren, beispielsweise<br />

einen Webserver mit dem »pulp‐admin«-<br />

Kommando aus Listing 1. Will der Admin<br />

dagegen Updates einspielen, nimmt er<br />

statt »install« das Kommando »update«.<br />

Wer das Deployment auf Niedriglast-<br />

Zeiten verschieben will, gibt der Option<br />

»‐‐when« einen Installationszeitpunkt mit<br />

auf den Weg.<br />

Hinter »‐n« folgt der Name des gewünschten<br />

Pakets, mehrere übergibt der Admin<br />

mit mehrfachen »‐n«. Ein »update« ohne<br />

»‐n« aktualisiert alle Pakete des Hosts.<br />

Ist der Client nicht aktiv, puffert Pulp<br />

das Kommando und übermittelt es nach<br />

dem Aufbau der nächsten Verbindung<br />

zwischen Consumer und Pulp-Server.<br />

Statt der Option »‐‐consumerid« eignet<br />

sich auch »‐‐consumergroupid«, um eine<br />

Gruppe aus Hosts anzugeben. Hier die<br />

Definition einer Consumer-Gruppe:<br />

pulp‐admin consumergroup createU<br />

‐‐id fedora16<br />

pulp‐admin consumergroup add_consumerU<br />

‐‐id fedora16 ‐‐consumerid fedora<br />

pulp‐admin consumergroup add_consumerU<br />

‐‐id fedora16 ‐‐consumerid fed2


Nun lassen sich »install«- und »update«-<br />

Befehle auch auf Gruppen anwenden.<br />

Pulp geht dabei so intelligent vor, dass es<br />

etwa ein anstehendes Apache-Update nur<br />

auf den Systemen versucht, auf denen<br />

der Webserver auch installiert ist.<br />

Auf dem Server listet »pulp‐admin<br />

consumer info ‐‐id=Consumer‐Name<br />

‐‐show‐profile« auf, welche Pakete auf<br />

dem mit »‐‐id« angegebenen Consumer<br />

installiert sind. Der Systemverantwortliche<br />

bekommt so den Überblick über<br />

verteilte Pakete. Das Kommando erfasst<br />

allerdings nicht die manuell per »rpm«<br />

installierte und deinstallierte Software.<br />

Schwache Dialoge<br />

Eine kleiner Mangel trat zum Ende des<br />

Tests auf: Verwendet der Administrator<br />

»pulp‐admin auth«, um die Zugangsdaten<br />

zu speichern, geschieht dies in Form eines<br />

Zertifikates mit Verfallsdatum. Wenn dies<br />

mitten beim Arbeiten abläuft, erscheint<br />

ein nicht gerade instruktives »Certificate<br />

Expired«. (Wem dies widerfährt, der<br />

braucht sich nur mit »pulp‐admin auth«<br />

wieder anzumelden.)<br />

Ähnlich schwach sind die meisten Meldungen<br />

auf der Konsole und seltsame<br />

Python-Stacktraces in den Logfiles – dabei<br />

könnten die fast so instruktiv wie in<br />

„Pulp Fiction“ sein: „Also ich werde jetzt<br />

bis drei zählen. Wenn du bis dahin nicht<br />

den Koffer geöffnet hast, bleiben von deinem<br />

Gesicht nur noch die Ohren übrig!“<br />

Abspann<br />

Pulp 1.0 fehlt es noch an Genialität, als<br />

dass es zum Genreklassiker à la Tarantino<br />

reichen würde. Die Deploymentlösung<br />

erleichtert Administratoren größerer<br />

Umgebungen aber die Pflege und das<br />

automatische Nachinstallalieren von Paketen.<br />

Durch geschicktes Gruppieren von<br />

Servern gleicher Funktion lässt sich die<br />

Pflege noch optimieren.<br />

Mit Pulp den Installationsserver für die<br />

Software-Erstbeschickung von betriebssystemlosen<br />

Rechnern abzulösen gelingt<br />

bislang nicht (siehe auch Tabelle 1). Auf<br />

der Roadmap steht jedoch ein Mechanismus,<br />

der Konfigurationsdateien über<br />

den Pulp-Server verteilt, was den Admins<br />

einen weiteren Teil der Routinearbeiten<br />

am Set abnehmen würde. (jk) n<br />

Infos<br />

[1] Yum (Yellowdog Updater, Modified):<br />

[http:// yum.baseurl. org]<br />

[2] Pulp: [http:// pulpproject. org]<br />

[3] Mongo DB: [http:// www. mongodb. org]<br />

[4] Apache Qpid: [http:// qpid. apache. org]<br />

Der Autor<br />

Konstantin Agouros arbeitet bei der N.runs AG<br />

als Berater für Netzwerksicherheit. Dabei liegt<br />

sein Schwerpunkt im Bereich der Telekommunikationsanbieter.<br />

Sein Buch „DNS/​DHCP“ ist bei<br />

Open Source Press erschienen.<br />

Pulp 05/2012<br />

Titelthema<br />

www.linux-magazin.de<br />

31<br />

Listing 1: Webserver installieren<br />

01 $ pulp‐admin package install ‐n httpd ‐‐consumerid centos.localnet<br />

02 <br />

03 Created task id: 3a002d8f‐6b7f‐11e1‐9cd9‐0800278fe6fd<br />

04 Waiting: [\]<br />

05 Consumer ID: centos.localnet [ SUCCEEDED ]<br />

06 ==================================================<br />

07 Package Arch Version Repository<br />

08 ==================================================<br />

09 Installed:<br />

10 httpd x86_64 2.2.15 updates<br />

11 <br />

12 Installed for dependencies:<br />

13 apr x86_64 1.3.9 base<br />

14 apr‐util x86_64 1.3.9 base<br />

15 apr‐util‐ldap x86_64 1.3.9 base<br />

16 httpd‐tools x86_64 2.2.15 updates<br />

17 mailcap noarch 2.1.31 base<br />

3 AusgAben für nur 5,90 E<br />

Jetzt bestellen: 3 Hefte zum Preis von einem. Sie sparen 66 %!<br />

Neu!<br />

Jetzt bestellen unter:<br />

www.android–user.de/miniabo<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de<br />

Kennenlernangebot:<br />

3 AusgAben<br />

für nur 5,90 E


Titelthema<br />

www.linux-magazin.de Logfiles 05/2012<br />

32<br />

Logfiles überwachen und Aktionen anstoßen<br />

Log-Wellenreiter<br />

In den Logdateien eines <strong>Linux</strong>-Systems und seiner Dienste rauscht vorüber, was auf dem Rechner passiert.<br />

Tools wie Logcheck und Logsurfer filtern die wichtigsten Ereignisse für den Admin heraus – oder leiten sogar<br />

automatisch die passende Reaktion ein. Thilo Uttendorfer, Valentin Höbel<br />

© epicstockmedia, 123RF<br />

Wichtige Updates einspielen, auf kritische<br />

Ereignisse reagieren: Ein Systemadministrator<br />

muss stets eine Vielzahl<br />

von Aufgaben bewältigen. Umso besser,<br />

wenn er beruhigt einige dieser Pflichten<br />

an smarte Software abgeben kann. Längst<br />

gibt es Tools für die Loganalyse, die mit<br />

Hilfe klar definierter Regeln automatisiert<br />

auf Ereignisse reagieren.<br />

Das Wichtigste per Mail<br />

Das zeitaufwändigste Verfahren, Systeme<br />

zu beobachten, besteht in dem regelmäßige<br />

Blick in die Logdateien – doch<br />

das wird schnell monoton und aufreibend.<br />

Das Programm Logcheck schafft<br />

Abhilfe. Einmal installiert, überwacht es<br />

standardmäßig »/var/log/syslog« und<br />

»/var/log/auth.log«. Dabei filtert es belanglose<br />

Events aus, womit der Systembetreuer<br />

nur noch eine Mail mit einer<br />

Zusammenfassung der wichtigsten Ereignisse<br />

erhält (Abbildung 1).<br />

Mit dem richtigen Mailclient und entsprechenden<br />

Filtern lassen sich die Logs<br />

von Hosts oder Gruppen in Ordner einsortieren.<br />

So hat der Administrator alle<br />

Systeme im Blick, ohne sich auf diesen<br />

einloggen zu müssen. Logcheck [1] greift<br />

für die Überwachung der Logs übrigens<br />

auf das Programm Logtail zurück, das<br />

meist im selben Paket steckt.<br />

Logtail kümmert sich darum, nur die Zeilen<br />

einer Datei auszugeben, die bisher<br />

noch keine Beachtung fanden. Hierfür<br />

Tabelle 1: Werte für »action«<br />

Wert<br />

ignore<br />

exec<br />

pipe<br />

open<br />

delete<br />

report<br />

rule<br />

Bedeutung<br />

Diese Zeile ignorieren<br />

Programm ausführen<br />

legt es zu jedem Log eine weitere Datei<br />

mit der Bezeichnung »Dateiname.offset«<br />

an und speichert Informationen zum<br />

Inode der Logdatei. Zusätzlich hält es<br />

fest, bis zu welcher Stelle es ein Logfile<br />

bereits ausgelesen hat. Würde die Offsetdatei<br />

keine Informationen zum Inode dieses<br />

Log enthalten, würde Logtail neue<br />

Logs nicht erkennen und die Aktionen<br />

von Log rotate brächten das durchdachte<br />

System durcheinander.<br />

Der im Installationspaket enthaltene Cronjob<br />

unter »/etc/cron.d/logcheck« sorgt<br />

für den stündlichen Versand der Meldungen,<br />

die Logcheck seit dem letzten Mal<br />

aus den Logs extrahiert und für wichtig<br />

befunden hat. Zusätzlich sendet das Tool<br />

eine solche Mail nach jedem Systemstart.<br />

Listing 1 zeigt, wie eine Logcheck-Mail<br />

aussieht. Der Inhalt der Dateien unter<br />

»/etc/logcheck/ignore*« legt fest, welche<br />

Meldungen das Tool ausfiltert und aus<br />

seinen Mailreports entfernt.<br />

In diesem Listing finden sich zwei Zeilen,<br />

die Logcheck per Mail versenden würde.<br />

Die erste enthält eine Meldung des Mailservers<br />

Qmail, der sich über den fehlerhaften<br />

Verbindungsaufbau zum SMTP-<br />

Server des Empfängers einer Nachricht<br />

beschwert. Der zweite Eintrag hingegen<br />

weist den Systembetreuer auf ein er­<br />

Programm ausführen und die Zeile an Stdin übergeben<br />

Einen »context« eröffnen<br />

Einen »context« schließen<br />

Programm ausführen und die Kontextdaten an Stdin übergeben<br />

Eine neue Regel erstellen


folgreiches »su« für den<br />

Benutzer Logcheck hin.<br />

Beide Meldungen sind es<br />

wert, per Mail versandt<br />

zu werden.<br />

Logcheck beschränkt<br />

sich auf das Filtern von<br />

Meldungen und das Verschicken<br />

entsprechender<br />

Logmails. Besonders bei<br />

Debian-basierten Distributionen<br />

wird es aber mit einer sehr<br />

sinnvollen Vorkonfiguration für viele<br />

Dienste ausgeliefert. Zusätzlich enthalten<br />

die Debian-Pakete vieler Dienste, etwa<br />

des MySQL-Servers, ebenfalls eigene<br />

Logcheck-Filter. So kann der Admin mit<br />

wenig Aufwand eine sehr gute Filterung<br />

seiner System-Logs erreichen.<br />

Einigen Admins wird das eine Alternative<br />

zu Logcheck in Erinnerung rufen:<br />

Logdigest. Dieses Programm funktioniert<br />

ähnlich wie Logcheck, wird jedoch seit<br />

November 2009 nicht mehr aktiv weiterentwickelt.<br />

Das geplante Rewrite sowie<br />

eine Neuauflage des Tools in Python haben<br />

die Entwickler bisher nicht realisiert.<br />

Wer sich dennoch mit Logdigest auseinandersetzen<br />

möchte, findet unter [2]<br />

Lesematerial.<br />

Logtail<br />

Beim Beobachten von Logdateien zeigen<br />

sich bestimmte Events. Es liegt daher<br />

nahe, auf einige dieser Ereignisse mit<br />

festlegbaren Aktionen zu reagieren, natürlich<br />

automatisiert. Den Logcheck-Helfer<br />

Logtail kann der Admin auch dazu<br />

verwenden, auf bestimmte Ereignisse<br />

automatisch zu reagieren.<br />

Dazu legt er einen Cronjob an, der regelmäßig<br />

eine Protokolldatei prüft. Die<br />

Ausgabe lässt sich mit einem Werkzeug<br />

Abbildung 1: Logcheck extrahiert die wichtigsten Meldungen und schickt sie als Mail an den Admin.<br />

wie Grep oder einem Perl-Skript filtern.<br />

Erkennt das Programm ein bestimmtes<br />

Muster, kann es eine Aktion auslösen.<br />

Diese Aktion besteht vielleicht einfach<br />

nur aus einer Mail-Benachrichtigung wie<br />

bei Logcheck. Daneben kann der Admin<br />

auf diese Weise aber auch Dienste neu<br />

starten oder andere Kommandos aufrufen.<br />

Listing 2 zeigt einen Cronjob, der<br />

den MySQL-Daemon neu startet, wenn<br />

er ausgefallen sein sollte.<br />

Schneller Logsurfer<br />

Ein großer Nachteil von Logcheck und<br />

Logtail ist, dass der Admin sie über Cron<br />

regelmäßig aufrufen muss und die Programme<br />

dadurch nicht unmittelbar reagieren.<br />

Das lässt sich mit dem Einsatz<br />

von Logsurfer [3] ändern. Dieses auf<br />

dem Loganalyse-Tool Swatch basierende<br />

Programm hängt sich wie »tail« an ein<br />

Logfile und erfasst neue Einträge zur<br />

Laufzeit. Da Logsurfer in C geschrieben<br />

ist, ergibt sich auch ein Performancevorteil<br />

gegenüber dem in Bash realisierten<br />

Logcheck.<br />

Während Logcheck einfach nur bekannte<br />

Logmeldungen mit einem regulären Ausdruck<br />

ausfiltert, verwendet Logsurfer<br />

leistungsfähige Regeln. Deren grundsätzlichen<br />

Aufbau demonstriert Listing 3.<br />

Dabei gibt »Match_regex« den regulären<br />

Ausdruck an, der auf die gesuchte<br />

Logzeile passt. Mit dem zweiten Feld<br />

»Not_match_regex« kann der Anwender<br />

Muster ausschließen. Findet »Stop_regex«<br />

einen Treffer, streicht Logsurfer die Regel<br />

von der aktuellen Liste der aktiven<br />

Regeln, das Feld »Not_stop_regex« beschreibt<br />

wieder die Ausschlusskriterien.<br />

Der Timeout-Eintrag definiert, wie lange<br />

die Regel aktiv sein soll. Wer an dieser<br />

Stelle eine 0 angibt, legt die Gültigkeit als<br />

unbegrenzt fest.<br />

Die optionale Angabe »continue« teilt<br />

dem Programm Logsurfer mit, dass es<br />

die aktuelle Zeile auch dann parsen soll,<br />

wenn eine zuvor definierte Regel zutrifft.<br />

Tatsächlich hört Logsurfer standardmäßig<br />

nach dem ersten Treffer auf, eine Zeile zu<br />

verarbeiten. Das Minuszeichen »‐« lässt<br />

sich zum Markieren unbenutzter Felder<br />

verwenden.<br />

In Aktion treten<br />

Tabelle 1 zeigt die möglichen Schlüsselwörter<br />

für die Aktion im letzten Feld.<br />

Jeder Regel kann der Admin eine eigene<br />

Aktion zuweisen, um auf verschiedene<br />

Ereignisse auch unterschiedlich zu reagieren.<br />

Neben dem Ausführen beliebiger<br />

Programme mit den »exec«- und<br />

»pipe«-Aktionen erstellt die »open«-<br />

Aktion kontextabhängige Regeln. Dabei<br />

Logfiles 05/2012<br />

Titelthema<br />

www.linux-magazin.de<br />

33<br />

Listing 1: Mail von Logcheck<br />

01 Feb 20 23:12:14 jupiter qmail: 1329775934.816939 delivery 19626: deferral: Sorry,_I_wasn't_able_to_establish_an_SMTP_connection._(#4.4.1)/<br />

02 Feb 20 23:16:23 jupiter su[15621]: Successful su for logcheck by root<br />

Listing 2: Cronjobs mit Logtail<br />

01 * * * * * root /usr/sbin/logtail /var/log/syslog | grep ‐q "mysql exited unexpected" && /etc/init.d/mysql restart<br />

Listing 3: Logsurfer-Regeln<br />

01 Match_regex Not_match_regex Stop_regex Not_stop_regex Timeout [continue] Action [...]


Titelthema<br />

www.linux-magazin.de Logfiles 05/2012<br />

34<br />

speichert die Software sämtliche Zeilen,<br />

die auf einen regulären Ausdruck passen.<br />

Die »report«-Aktion gibt sie später als<br />

kompletten Block zusammenhängender<br />

Logeinträge aus.<br />

Listing 4 enthält ein einfaches Beispiel<br />

für eine Regel, die beim Ereignis »Out<br />

of memory« eine Mail mit der entsprechenden<br />

Logzeile verschickt. Der erste<br />

reguläre Ausdruck trifft auf Zeilen mit der<br />

Zeichenkette »kernel: Out of memory«<br />

zu. In diesem Fall schickt die Regel eine<br />

Mail an Root. Der Betreff der Mail verwendet<br />

Variablen aus dem Suchmuster,<br />

um betroffene Prozess-ID (»$2«) und weitere<br />

Informationen (»$3«) hinzuzufügen.<br />

Daneben übergibt die Regel die komplette<br />

Logzeile an die Standardeingabe des Programms<br />

»mailx«.<br />

Ein komplexeres Beispiel demonstrieren<br />

die drei Regeln in Listing 5. Sie erkennen<br />

SSH-Sessions und zeigen alle Daten der<br />

Session, falls der Benutzer ein falsches<br />

Passwort angibt. Passiert innerhalb der<br />

Listing 4: Mail verschicken<br />

01 'kernel: Out of memory: Kill process ([0‐9]*) (.*)'‐ ‐ ‐ 0<br />

SSH-Sitzung nichts Auffälliges (ist also<br />

das Passwort korrekt), verwerfen die Regeln<br />

die Logmeldungen.<br />

Kontexte als<br />

Zwischenspeicher<br />

Das Tool Logcheck könnte in diesem Szenario<br />

allenfalls die Logzeile »Failed password«<br />

herausfiltern, aber keine weiteren<br />

Informationen zur SSH-Session liefern.<br />

Alternativ könnte der Admin alle SSH-<br />

Logzeilen herausfiltern. Dann würde er<br />

aber mit zu vielen überflüssigen Informationen<br />

überschüttet und die wirklich<br />

wichtigen Zeilen dürften ihm entgehen.<br />

Logsurfer löst dieses Problem mit den<br />

so genannten Kontexten. Sie bieten die<br />

Möglichkeit, bestimmte Zeilen zwischenzuspeichern<br />

und bei Bedarf erneut zu<br />

verwenden.<br />

Die drei Regeln in Listing 5 ergeben<br />

nur in ihrer Kombination einen Sinn.<br />

Auf Debian-basierten Systemen lassen<br />

02 pipe "/usr/bin/mailx ‐s \"Warning! Out of memory! Process $2 killed: $3\" root "<br />

01 '^\w{3} [ :[:digit:]]{11} [._[:alnum:]‐]+ sshd\[([[:digit:]]+)\]: .*' ‐ ‐ ‐ 0 continue<br />

02 open "$2" ‐ 5000 86400 3600<br />

03 report "/bin/cat" "$2"<br />

04 <br />

05 '^\w{3} [ :[:digit:]]{11} [._[:alnum:]‐]+ sshd\[([[:digit:]]+)\]: Failed password .*' ‐ ‐ ‐ 0<br />

06 report "/bin/cat" "$2"<br />

07 <br />

08 '^\w{3} [ :[:digit:]]{11} [._[:alnum:]‐]+ sshd\[([[:digit:]]+)\]: Connection closed.*' ‐ ‐ ‐ 0<br />

09 delete "$2"<br />

Abbildung 2: Mit drei Logsurfer-Regeln lassen sich missglückte Anmeldeversuche am SSH-Port überwachen.<br />

Listing 5: Logsurfer-Kontext<br />

sie sich auf die Logdatei<br />

»/var/log/auth.log«<br />

anwenden. Der Einfachheit<br />

halber geben sie alle<br />

Informationen direkt auf<br />

der Konsole aus. Es wären<br />

aber auch andere<br />

Aktionen möglich, und<br />

sei es nur die, eine Mail<br />

zu schicken.<br />

Die erste Zeile erkennt<br />

alle Logzeilen des SSH-<br />

Daemon. Die Aktion<br />

»open« eröffnet einen<br />

neuen Kontext. Dabei<br />

benutzt die Regel die<br />

PID (in eckigen Klammern<br />

nach »sshd«) der jeweiligen SSH-<br />

Sitzung, um jene Zeilen zu erkennen,<br />

die zu einer SSH-Session gehören. Zusätzlich<br />

definiert sie Timeouts. Laufen<br />

diese ab, geben die Regeln ebenfalls die<br />

Session-Daten aus. Wichtig ist an dieser<br />

Stelle das Schlüsselwort »continue«, damit<br />

auch die nachfolgenden Regeln zum<br />

Zuge kommen.<br />

Enthält eine Logzeile den Eintrag »Failed<br />

password« (Zeile 5), gibt dieses Beispiel<br />

den kompletten Kontext der SSH-Session<br />

auf der Konsole aus. Wieder dient die<br />

PID der SSH-Session dazu, den Kontext<br />

zu identifizieren. Die Regel in Zeile 8<br />

löscht den Kontext wieder, wenn eine<br />

SSH-Session geschlossen wird. Abbildung<br />

2 zeigt die Ausgabe der Regeln im<br />

Praxiseinsatz.<br />

Wer den »tail«-Modus benutzt, darf nicht<br />

vergessen das Signal »SIGHUP« an den<br />

Logsurfer-Prozess zu schicken, wenn<br />

Log rotate oder ähnliche Tools das Logfile<br />

neu anlegen.<br />

Leider gibt es Logsurfer nur als Sourcepaket,<br />

es existieren keine fertigen Binärpakete<br />

in den gängigen <strong>Linux</strong>-Distributionen.<br />

Das Kompilieren und Installieren<br />

sollte aber dem durchschnittlich erfahrenen<br />

Administrator leicht von der Hand<br />

gegen. Für Debian-basierte Distributionen<br />

stellt der Autor dieses Artikels unter<br />

[4] fertige Pakete bereit.<br />

Sicherheit nicht vergessen<br />

Bei allen Tools für die Loganalyse darf<br />

der Admin nicht vergessen, dass nicht<br />

nur das System und seine Dienste Logmeldungen<br />

erzeugen, denn auch externe


Benutzer tun das mit ihren Aktionen.<br />

Ein Angreifer könnte beispielsweise das<br />

Postfach des Administrators zum Überlaufen<br />

bringen, im schlimmsten Fall aber<br />

auch mit geeigneten Ausdrücken Systeme<br />

außer Gefecht setzen oder beliebige Kommandos<br />

ausführen.<br />

Das trifft insbesondere auf Tools wie<br />

Logsurfer zu, die das Systemprotokoll<br />

in Echtzeit analysieren und beliebige<br />

Skripte oder Programme ausführen können.<br />

Werden Teile der Logzeile einem<br />

Die Autoren<br />

Thilo Uttendorfer arbeitet als Diplominformatiker<br />

(FH) bei der LIS AG in München und leitet dort die<br />

Entwicklungsabteilung. Seine Schwerpunkte sind<br />

Virtualisierungs- und Cluster-Techniken.<br />

Der Fachinformatiker Valentin Höbel arbeitet<br />

ebenfalls bei der LIS AG. Wenn er nicht gerade<br />

Kundensysteme auf <strong>Linux</strong> migriert, beschäftigt er<br />

sich hauptsächlich mit Groupware-Anwendungen,<br />

Monitoring und KVM-Virtualisierung.<br />

externen Programm als Parameter oder<br />

via Standardeingabe übergeben – wie<br />

im ersten Beispiel –, erhielte ein Angreifer<br />

die Chance, das Programm zu<br />

manipulieren. Der Anwender solcher<br />

Tools muss also die Übergabeparameter<br />

und die Standardeingabe entsprechend<br />

absichern. Weitere Informationen zum<br />

Thema Sicherheit enthält die Manpage<br />

von »logsurfer.conf«, die auch online unter<br />

[5] zu finden ist.<br />

Simpel oder raffiniert<br />

Wie die vorgestellten Beispiele zeigen,<br />

können sich Systemadministratoren eine<br />

Menge Arbeit sparen, indem sie Logfiles<br />

automatisch auswerten und gegebenenfalls<br />

Aktionen anstoßen.<br />

Neben den hier im Artikel beschriebenen<br />

Tools existiert noch andere nützliche<br />

Software, die automatisierte Reaktionen<br />

auf bestimmte Events einleiten kann. In<br />

den Tests der Autoren hat sich Logsurfer<br />

allerdings als das flexibelste Programm<br />

mit den meisten Möglichkeiten herausgestellt.<br />

Die Syntax wirkt zwar auf den<br />

ersten Blick ziemlich kompliziert, sie<br />

erlaubt es aber, auch komplexe Szenarien<br />

abzubilden. Wie immer gilt: Wer<br />

sich umfassend informiert und offen für<br />

bisher unbekannte Ideen ist, kann langfristig<br />

viel monotone Arbeit bei der Systembetreuung<br />

sparen. (mhu) n<br />

Infos<br />

[1] Logcheck und Logtail: [http:// alioth.​<br />

debian. org/ projects/ logcheck/]<br />

[2] Logdigest: [http:// sourceforge. net/​<br />

projects/ logdigest]<br />

[3] Logsurfer: [http:// www. crypt. gen. nz/​<br />

logsurfer/ index. html]<br />

[4] Logsurfer-Pakete für Debian und Ubuntu:<br />

[http:// devel. uttendorfer. net/ logsurfer]<br />

[5] Manpage zu »logsurfer.conf«:<br />

[http:// www. crypt. gen. nz/ logsurfer/​<br />

man_logsurfer_conf. html]<br />

Logfiles 05/2012<br />

Titelthema<br />

www.linux-magazin.de<br />

35<br />

Das <strong>Linux</strong>-Jahr 2011<br />

auf einer scheibe<br />

NUR<br />

14,95 Euro!<br />

12 Ausgaben<br />

auf DVD<br />

• Zwölf ausgaben<br />

komplett als hTML und<br />

PDf<br />

• n eu konzipierte navigation,<br />

die mit jedem<br />

browser funktioniert<br />

• b litzschnelle Volltextsuche<br />

• a lle Listings<br />

w Auf der 2. Seite der DVD:<br />

• Knoppix 6.7.1 von Klaus Knopper<br />

• bootfähige Live-Distribution<br />

in Deutsch<br />

• ohne Installation sofort von<br />

DVD losarbeiten<br />

Jetzt gleich bestellen!<br />

www.linux-magazin.de/DVD2011 oder 089 - 99 34 11 - 00


Titelthema<br />

www.linux-magazin.de Backup 05/2012<br />

36<br />

Report: Unbeaufsichtigte Backups<br />

Retten ohne Personal<br />

Eine Herstellerumfrage soll herausfinden, wie Admins typischer KMU-Umgebungen rotierende Backups so organisieren<br />

können, dass sie selbst in den normalen Prozess nicht eingreifen müssen. Jan Kleinert<br />

© suze, photocase.com<br />

Moderne Netzwerkbackup-Programme<br />

lassen sich nicht mehr intuitiv bedienen<br />

– zu vielfältig sind die Konfigurationsmöglichkeiten.<br />

Das <strong>Linux</strong>-<strong>Magazin</strong> hat<br />

darum die Hersteller und Projekte wichtiger<br />

Programme befragt, wie ein Setup für<br />

zum Beispiel eine Büroumgebung aussehen<br />

müsste, bei dem – einmal eingerichtet<br />

– der Admin keine Routineaufgaben<br />

mehr erledigen muss.<br />

Die Vorgaben waren: wöchentliches<br />

Vollbackup, täglich ein inkrementelles,<br />

Backupmedium soll ein NAS sein, angesprochen<br />

per NFS oder Samba. Die Software<br />

soll automatisch alte Sicherungen<br />

herausrotieren, sodass das Zielmedium<br />

nicht vollläuft. Hier die Antworten.<br />

E Amanda<br />

Die freie Backupsoftware Amanda [1]<br />

sichert normalerweise auf ein Bandlaufwerk.<br />

Für die geforderte Aufgabe würde<br />

ich das NAS per NFS am Backupserver<br />

anbinden und da rauf<br />

anhand von [2] so genannte<br />

Virtual Ta pes anlegen.<br />

Es entsteht eine<br />

virtuelle Bandbibliothek,<br />

deren Bänder Verzeichnisse<br />

auf dem NAS<br />

sind; »tpchanger "chg‐​<br />

disk:/Pfad_zu_Vtapes"«<br />

bindet den virtuellen<br />

Changer in die Amanda-<br />

Config ein.<br />

Zum Beispiel »amtape«<br />

macht es möglich,<br />

solche Bänder in den<br />

Changer einzulegen<br />

oder sie zu wechseln.<br />

Entsprechend eingestellt<br />

erledigt Amanda das automatisch<br />

passend zum<br />

geforderten Tape, was tägliche Eingriffe<br />

unnötig macht. Da ich die Größe der<br />

Bänder selbst definiere, kann ich leicht<br />

beeinflussen, wie viel Platz Backups maximal<br />

belegen, ich baue einfach zehn<br />

Bänder à 100 GByte.<br />

Beim Thema Vollbackup unterscheidet<br />

sich Amandas Philosophie [3] von den<br />

klassischen Backup-Schemata. Ich definiere<br />

darum beispielsweise:<br />

n Es gibt »$tapecycle« Bänder.<br />

n Mein »$dumpcycle« ist »7 days«.<br />

n In dieser Zeit führe ich an den Werktagen<br />

»$runspercycle« Sicherungsläufe<br />

aus.<br />

Das heißt, dass Amanda versucht von<br />

jeder DLE (Disk List Entry) innerhalb<br />

des »$dumpcycle« zumindest eine Vollsicherung<br />

zu machen. Eine DLE entspricht<br />

vielleicht einem Verzeichnis oder einer<br />

Partition, die ich sichern will und in die<br />

Amanda-Diskliste eintrage.<br />

An welchem der Wochentage Amanda<br />

die Vollsicherung anfertigt, ist nicht defi-<br />

niert. Ein Algorithmus bestimmt den<br />

Zeitpunkt dynamisch. Ein Estimate-Lauf<br />

prüft vorab, wie voll die zu sichernden<br />

Verzeichnisse sind und wann welche zuletzt<br />

full-gesichert wurden. Aus dem Ergebnis<br />

der Prüfung und aus meinen Vorgaben<br />

kalkuliert Amanda den Schedule<br />

für heute. Ziele sind eine ungefähr gleichbleibende<br />

Bandfüllung zu erreichen, eine<br />

vorhersehbare Backupdauer und die gestellten<br />

Aufgaben zu erfüllen.<br />

Mit »amadmin Config force DLE« darf ich<br />

jedoch dem Scheduler mitteilen: „Ich<br />

wünsche beim nächsten Lauf ein Full<br />

Backup dieser DLE.“ Wenn alle meine<br />

DLEs auf ein einzelnes virtuelles Tape<br />

passen, würde in einem Freitags-Cronjob<br />

»amadmin daily force myserver« für alle<br />

DLEs ein Level-0-Backup erzwingen.<br />

Da ich mit Amanda aber keinen einzelnen<br />

Tag mit Vollsicherung aller DLEs<br />

haben muss, darf die Summe der DLEs<br />

größer sein als ein Medium. Sofern ich<br />

ausreichend Medien in meiner Rotation<br />

habe, verteilt der Algorithmus die Backups<br />

über meine Tapes: Das Full Backup<br />

von »DLE1« landet vielleicht auf Band 12,<br />

das von »DLE2« auf Band 08. Ich sichere<br />

also mit relativ vielen und relativ kleinen<br />

Medien größere Datenmengen.<br />

Für das vorgegebene NAS-Szenario ist<br />

das unproblematisch, weil ja alle Bänder<br />

auf ein und demselben NAS liegen und<br />

nicht „entnommen“ werden. Listing 1<br />

benutzt zehn Tapes auf dem NAS. Zwei<br />

Cronjobs würden es täglich starten:<br />

Stefan G. Weichinger hat<br />

die auf Backupsoftware<br />

spezialisierte Firma<br />

Oops! [4] gegründet und<br />

ist seit Anfang 2004<br />

Mitglied des Amanda-<br />

Core-Teams.


# Morgendlicher Prüflauf, optional<br />

0 9 * * 1‐5 /usr/sbin/amcheck ‐m daily<br />

# abends das Backup<br />

00 22 * * 1‐5 /usr/sbin/amdump daily<br />

Nach einer Einlaufphase von zirka ein bis<br />

zwei »$dumpcycle« dürfte der Algorithmus<br />

die DLEs ausbalanciert haben. Das<br />

lässt sich zum Beispiel per »amadmin<br />

daily balance« sichtbar machen.<br />

E Arkeia<br />

Karsten Ehmann ist Regional<br />

Manager bei Arkeia<br />

Software und verfügt<br />

über <strong>Linux</strong>-Kenntnisse<br />

und mehr als zehn Jahre<br />

Erfahrung mit Speicher-<br />

Anwendungen.<br />

Das als Softwareversion, physikalische<br />

oder virtuelle Appliance verfügbare Arkeia<br />

[5] lässt sich einfach über einen<br />

Webbrowser administrieren. Per E-Mailing<br />

informiert es über den Verlauf der<br />

Backups. Einmal eingerichtet, erstellt<br />

und verwaltet Arkeia vollautomatisch<br />

volle, inkrementelle oder differenzielle<br />

Backups. Die Lebensdauer der Backupsets<br />

bestimmt der Benutzer selbst. Ist<br />

eines abgelaufen, entfernt es die Software<br />

aus der Datenbank. Die Backups finden<br />

– einmal eingerichtet – also automatisch<br />

über Jahre hinweg statt.<br />

Arkeia sichert auf vom Backupserver erreichbare<br />

Storages (NAS, Shares oder lokale<br />

Platten) oder Bandlaufwerke. Daten<br />

lassen sich auch erst auf Disk und dann<br />

auf Tape oder Cloud speichern (D2D2T/​<br />

D2D2C). Ein Restore einzelner Dateien,<br />

Verzeichnisse oder ganzer Backups passiert<br />

wieder über einen Browser und läuft<br />

dann automatisch ab.<br />

E Bacula<br />

Für die gestellte Aufgabe kann ich Bacula<br />

[6] empfehlen, weil Sicherungsintervall<br />

und ‐level schon sinnvoll vorkonfiguriert<br />

sind: Montag bis Samstag inkrementell,<br />

Erol Akman ist zertifizierter<br />

Bacula Instructor<br />

bei der Firma Dass IT<br />

GmbH.<br />

erster Sonntag im Monat Vollsicherung<br />

und die übrigen Sonntage differenziell.<br />

Das muss ich nur leicht abändern. Um Bacula<br />

anzuweisen, auf ein NAS zu schreiben,<br />

mounte ich das entfernte Verzeichnis<br />

per NFS und gebe es als Sicherungsverzeichnis<br />

in der »bacula‐sd.conf« an. Wer<br />

die volle Kontrolle über das NAS hat,<br />

kann sogar auf diesem Baculas Storage-<br />

Daemon »bacula‐sd« installieren.<br />

Das in Listing 2 gezeigte Setup habe ich<br />

zusammen mit Philipp Storz entworfen,<br />

dem Autor des demnächst erscheinenden<br />

„Bacula“-Buches [7]. Es definiert die<br />

Pools »daily« und »weekly«, die kombi-<br />

Listing 1: »daily« für Amanda<br />

01 dumpcycle 7 #<br />

02 runspercycle 5 # an 7 Tagen in der Woche läuft eine<br />

Sicherung<br />

03 tapecycle 10 # 10 Bänder in meinem Changer<br />

04 tapetype HARD‐DISK<br />

05 tpchanger "chg‐disk:/Pfad_zu_Vtapes" # laut Link<br />

angelegt<br />

06 <br />

07 define tapetype HARD‐DISK {<br />

08 comment "Dump onto hard disk"<br />

09 length 100 gb<br />

10 }<br />

Backup 05/2012<br />

Titelthema<br />

www.linux-magazin.de<br />

37<br />

Listing 2: Bacula-Konfiguration<br />

01 # Weekly Pool definition<br />

02 Pool {<br />

03 Name = weekly<br />

04 Label Format = "weekly‐"<br />

05 Pool Type = Backup<br />

06 Recycle = yes<br />

07 AutoPrune = yes<br />

08 Volume Retention = 14 weeks # Wer weniger Puffer zur Sicherheit<br />

haben möchte, kann die Vorhaltezeit der Vollsicherungen erhöhen.<br />

09 Maximum Volume Bytes = 100 GB<br />

10 # Maximum Volumes = 15 # Ist nicht unbedingt notwendig, da<br />

Volume Retention ausreicht. Mit Maximum Volumes muss man u.U. sogar<br />

häufiger manuell eingreifen.<br />

11 Volume Use Duration = 23 hours<br />

12 }<br />

13 <br />

14 # Daily Pool definition<br />

15 Pool {<br />

16 Name = daily<br />

17 Label Format = "daily‐"<br />

18 Pool Type = Backup<br />

19 Recycle = yes<br />

20 AutoPrune = yes<br />

21 Volume Retention = 31 days # gleiches wie oben<br />

22 Maximum Volume Bytes = 1 GB<br />

23 # Maximum Volumes = 32 # gleiches wie oben<br />

24 Volume Use Duration = 23 hours<br />

25 }<br />

26 <br />

27 # Im Schedule Differential auskommentieren:<br />

28 Schedule {<br />

29 Name = "WeeklyCycle"<br />

30 Run = Full sun at 23:05<br />

31 # Run = Differential 2nd‐5th sun at 23:05<br />

32 Run = Incremental mon‐sat at 23:05<br />

33 }<br />

34 <br />

35 # Standardmäßig soll Bacula das Pool daily nutzen, Vollsicherungen<br />

sollen im Full Pool "weekly" landen:<br />

36 JobDefs {<br />

37 Name = "DefaultJob"<br />

38 Type = Backup<br />

39 Level = Incremental<br />

40 Client = course‐fd<br />

41 FileSet = "Full Set"<br />

42 Schedule = "WeeklyCycle"<br />

43 Storage = File<br />

44 Messages = Standard<br />

45 Full Backup Pool = weekly<br />

46 Incremental Backup Pool = daily<br />

47 Pool = daily<br />

48 Priority = 10<br />

49 Write Bootstrap = "/home/course/bacula/working/%c.bsr"<br />

50 }


Titelthema<br />

www.linux-magazin.de Backup 05/2012<br />

38<br />

niert höchstens 15 Archivdateien (bei Bacula<br />

„Volumes“) mit je 100 GByte Größe<br />

entstehen lassen. Nach und nach überschreibt<br />

Bacula ältere Volumes.<br />

Noch zwei Tipps: In der Clientkonfiguration<br />

empfiehlt sich »Auto Prune« auf »no«<br />

zu setzen. Dies vermeidet, dass Bacula<br />

Datei-Informationen nach 30 Tagen aus<br />

seinem Katalog entfernt. Eine gute Idee<br />

ist es auch, sich die Bootstrap-Datei der<br />

Katalogsicherung im Katalogbackup-Job<br />

per E-Mail schicken oder auf NAS sichern<br />

zu lassen. Das gelingt per Skript im »Run-<br />

AfterJob«. Fällt der Backupserver aus,<br />

kann ich mit der Bootstrap-Datei den Bacula-Katalog<br />

bequem wiederherstellen.<br />

E BRU<br />

Mein Beispielsetup für BRU [8] geht von<br />

diesen Annahmen aus: Backupmedium<br />

ist ein gemounteter, 4 TByte großer Raid-<br />

5-Storage, auf dem im wöchentlichen<br />

Full Backup insgesamt 400 GByte Daten<br />

von 30 Clientsystemen mit geschätzten 5<br />

GByte täglichem Änderungsvolumen für<br />

inkrementelle Backups anfallen.<br />

Acht Wochen sollen die Vollbackups erhalten<br />

bleiben, zwei Wochen die inkrementellen.<br />

Wir legen dafür zwei Nutzer<br />

an: »Full« der Besitzer der wöchentlichen<br />

Komplettbackups und »Inc« für die täglichen<br />

inkrementellen Sicherungen.<br />

n Im »Preferences«-Dialog setze ich die<br />

»Max Stage Age« auf 56 Tage (8 Wochen).<br />

n Unter »Open Data Manager | Users«<br />

setze ich »Max Stage Age« auf 56 Tage<br />

für den User »Full«, für »Inc« auf 14.<br />

n Dann erstelle ich die Backup-Definitionen<br />

und -Schedules: »New…« erzeugt<br />

einen neuen Backupjob, sein Ziel<br />

(»Destination«) lasse ich auf »Stage<br />

Disk« zeigen, der Backuptyp ist »Full«,<br />

der Jobtyp »Backup«, das »Overwrite<br />

Setting« veranlasst den BRU-Server<br />

alte Backups zu überschreiben.<br />

n Jetzt noch den Eigentümer »Full« angeben,<br />

»OK« klicken, die Clients (und<br />

Online PLUS<br />

Bacula-Spezialist Erol Akman hat den<br />

Backupverlauf in ein hübsch animiertes<br />

PDF gepackt, das sich (nur) im Adobe Reader<br />

anschauen lässt. Download unter: [http://​<br />

www. linux‐magazin. de/ plus/ 2012/ 05]<br />

deren Daten) auswählen und speichern<br />

(»Save«).<br />

n Als Nächstes stelle ich ein, wie oft das<br />

Backup erfolgen soll (wöchentlich).<br />

n Das tägliche, inkrementelle Backup<br />

entsteht aus einer (umbenannten) Kopie<br />

der oben erzeugten wöchentlichen<br />

Komplettsicherung mit einem anderen<br />

User, Namen, Intervall (täglich,<br />

nach den üblichen Arbeitszeiten) und<br />

Backup typ (inkrementell).<br />

Als Ergebnis habe ich jetzt ein vollständiges<br />

Backup, das jeden Freitag mit der<br />

Userkennung »Full« auf der Platte landet.<br />

Zusätzlich dazu gibt es ein tägliches<br />

inkrementelles Backup auf dem Server<br />

(User »Inc«). Ersteres wird 56 Tage aufbewahrt,<br />

die täglichen Backups nur 14 Tage.<br />

Der BRU-Server löscht die Sicherungen<br />

vollautomatisch, sobald sie dieses Alter<br />

erreichen.<br />

E SEP Sesam<br />

Tim Jones, President<br />

and CTO of TOLIS Group<br />

Inc., beschäftigt sich seit<br />

1982 mit den Prozessen<br />

um Datenbackup and<br />

Restore. Seit 1994 gehört<br />

er zum BRU-Team.<br />

Mit SEP Sesam Version 4.x [9] ist es einfach,<br />

die manuellen Backups voll zu automatisierten.<br />

Nach der Installation erfolgen<br />

die Einstellungen in vier Schritten:<br />

n Aufnahme der Backupclients: Ich gebe<br />

den Hostnamen der Backupclient s unter<br />

dem Menüpunkt »Komponenten |<br />

Topologie« ein.<br />

n NAS als Backupstorage einbinden: Ich<br />

lege einen neuen Datastore mit einem<br />

beliebigen Name an, wähle als Device-<br />

Server den Backupserver selbst und<br />

gebe den UNC-Pfad des NAS-Share<br />

an, zum Beispiel »\\192.168.1.100\sesam«.<br />

Als Laufwerksgruppe verwende<br />

ich wegen der Übersichtlichkeit den<br />

Namen des Datastore. Ich bestätige<br />

Der Bundesverdienstkreuz-Träger<br />

Georg<br />

Moosreiner ist Vorstand<br />

der SEP AG.<br />

den Dialog mit »OK« und akzeptiere<br />

die Einstellungen der Watermarks.<br />

n Aufträge und Sicherungsgruppe: Im<br />

Menüpunkt »Aufträge | nach Clients«<br />

generiere ich für alle Backupclients<br />

einen neuen Auftrag und wähle über<br />

den Browser die lokalen Filesysteme<br />

aus. Auftragsname und Sicherungstyp<br />

ergeben sich automatisch. Unter »Aufträge<br />

| nach Gruppen« lege ich eine<br />

neue Gruppe an und füge ihr die angelegten<br />

Aufträge hinzu.<br />

n Zeitpläne: Auf der Management-Oberfläche<br />

lege ich unter »Zeitplanung |<br />

Zeitpläne« zwei Pläne an: einen vom<br />

Backuptyp »Full« zur wöchentlichen<br />

Ausführung der Vollsicherung, beispielsweise<br />

für Sonntage um 15:00<br />

Uhr, den zweiten vom Typ »INC« zur<br />

inkrementellen Sicherung, beispielsweise<br />

von Montag bis Samstag um<br />

20:00 Uhr. Die Zeitpläne füge ich abschließend<br />

zu der vorhin angelegten<br />

Sicherungsgruppe hinzu.<br />

SEP Sesam kann den Admin täglich per<br />

Mail über den Status der nicht erfolgreichen<br />

Sicherungen benachrichtigen. Ich<br />

gebe dazu unter dem Menüpunkt »Konfiguration<br />

| E‐Mail Einstellungen« passende<br />

Parameter an und aktiviere »sm_alarm«<br />

und »sm_disaster« über »Konfiguration |<br />

Schnittstellen«. (mfe)<br />

n<br />

Infos<br />

[1] Amanda: [http://​www. amanda. org]<br />

[2] Virtual Tapes in Amanda:<br />

[http:// wiki. zmanda. com/ index. php/​<br />

How_To:Set_Up_Virtual_Tapes]<br />

[3] Vollbackups in Amanda:<br />

[http:// wiki. zmanda. com/ index. php/​<br />

FAQ:How_do_I_make_Amanda_do_full<br />

_backups_on_weekends_and_incrementals<br />

_during_the_week%3F]<br />

[4] Oops!: [http:// www. oops. co. at/ de]<br />

[5] Arkeia: [http:// www. arkeia. com/ de/​<br />

products/ arkeia‐network‐backup]<br />

[6] Bacula: [http:// www. bacula. org/ de/]<br />

[7] Philipp Storz, „Bacula – Backup-Strategien<br />

und ‐Lösungen im Netzwerk“:<br />

Open Source Press, 2012, [https:// www.​<br />

opensourcepress. de/ index. php? 26&​<br />

backPID=178& tt_products=328]<br />

[8] BRU:<br />

[http:// www. tolisgroup. com/ products/]<br />

[9] SEP Sesam: [http:// www. sep. de/ de/​<br />

produkte/ sep‐sesam‐4/]


„Die Lösung für<br />

Individualisten“<br />

Thomas Krenn ist offizieller vCloud Service Provider<br />

Peter Ackermann,<br />

Technical Director Hosting<br />

THOMAS KRENN CLOUD<br />

Vorteile auf einen Blick<br />

vCloud Service Provider - profitieren auch Sie<br />

von unserem Know-How im Bereich VMware<br />

VMware vCloud Powered - nahtlose Migration<br />

Ihrer vorhandenen VMWare-VMs<br />

Transparent - stundengenaue Abrechnung nach<br />

wirklich genutzten Ressourcen<br />

Hochskalierbar - Sie bestimmen, was Sie benötigen<br />

Struktur innerhalb kürzester Zeit erweiterbar<br />

Garantierte Kapazitäten - Verfügbarkeit von Ressourcen,<br />

keine Überbuchung der IT-Infrastruktur<br />

Thomas Krenn steht für Server made in Germany. Wir<br />

assemblieren und liefern europaweit innerhalb von 24<br />

Stunden. Unter www.thomas-krenn.com können Sie<br />

Ihre Server individuell konfi gurieren.<br />

Unsere Experten sind rund um die Uhr für Sie unter<br />

+49 (0) 8551 9150-0 erreichbar<br />

(CH: +41 (0) 848207970, AT +43 (0) 7282 20797-3600)<br />

Angebot sichern nur unter: www.thomas-krenn.com/cloud_provider<br />

Made in Germany!<br />

Verkauf erfolgt ausschließlich an Gewerbetreibende, Firmen, Freiberufler (Ärzte, Rechtsanwälte etc.), staatliche Institutionen und Behörden. Druckfehler, Irrtümer und Änderungen in Preis und Ausstattung vorbehalten.<br />

Unsere Versandkosten richten sich nach Gewicht und Versandart. Genaue Preisangaben finden Sie unter: www.thomas-krenn.com/versandkosten. Thomas-Krenn.AG, Speltenbach-Steinäcker 1, D-94078 Freyung


Titelthema<br />

www.linux-magazin.de Pacemaker 05/2012<br />

40<br />

Automatisiertes Monitoring mit Pacemaker Resource Agents<br />

Dabeibleiben ist alles<br />

Macht ein Clusterknoten schlapp, startet die HA-Software Pacemaker bekanntermaßen die dabei mitgerissenen<br />

Dienste auf einem anderen Knoten neu. Wenig bekannt ist des Schrittmachers Dienste-Monitoring, mit<br />

dessen Hilfe der Clustermanager hängenden Diensten einzeln auf die Beine hilft. Martin Loschwitz<br />

© maridav, 123Rf<br />

auf, dass der Webserver zu starten ist,<br />

dann wird Pacemaker Apache nicht direkt<br />

aufrufen. Diese Aufgabe erledigen<br />

die so genannten Resource Agents: Sie<br />

bilden die Schnittstelle zwischen Dienst<br />

und Cluster-Schrittmacher. Ein typischer<br />

Agent ist ein Shellskript, spezifisch für<br />

ein bestimmtes Programm.<br />

Ressourcen-Agenten kennen drei Argumente,<br />

die ihnen der Clustermanager<br />

beim Aufruf mit auf den Weg geben kann:<br />

»start«, »stop« und »monitor«. Pacemaker<br />

ruft die Agents mit diesen Parametern<br />

auf und erwartet, dass sie entsprechend<br />

funktionieren: »start« sollte einen Dienst<br />

starten, »stop« sollte ihn beenden und<br />

»monitor« informiert Pacemaker darüber,<br />

ob ein Dienst noch läuft oder nicht.<br />

Pacemaker hat sich zur unangefochtenen<br />

Standard-HA-Lösung auf <strong>Linux</strong>-Systemen<br />

entwickelt. Fällt einer von zwei Knoten<br />

eines Clusters aus, startet Pacemaker die<br />

ausgefallenen Dienste auf dem anderen<br />

Clusterknoten neu. Wer Pacemaker allerdings<br />

nur zu solchen Failover-Zwecken<br />

einsetzt, bringt sich um den Nutzen der<br />

besten Features. Dass der Schrittmacher<br />

auch abgestürzten Applikationen automatisch<br />

wieder auf die Beine helfen<br />

kann, ist vielen Admins erstaunlicherweise<br />

bis heute unbekannt.<br />

Mehr als nur Umschalten<br />

Es gibt weitaus mehr Gründe dafür, dass<br />

ein Dienst nicht mehr läuft, als nur den<br />

Ausfall des Servers, der den Dienst bis<br />

dahin beheimatet hatte. Applikationen<br />

stürzen ab oder werden vom Kernel mangels<br />

Arbeitsspeicher (OOM, Out of Memory)<br />

in die Knie gezwungen.<br />

Admins rücken solchen Problemen üblicherweise<br />

mit umfangreichem Monitoring<br />

zu Leibe. Ein nicht mehr laufender Service<br />

produziert eine Warnung in Nagios,<br />

Icinga & Co. und informiert so den Systembetreuer.<br />

Bis dieser allerdings in der<br />

Lage ist, das Problem zu lösen, vergeht<br />

in der Regel eine gewisse Zeit. Währenddessen<br />

ist der abgestürzte Dienst nicht<br />

verfügbar – obwohl die restlichen Dienste<br />

des Clusters wie gewohnt weiterlaufen,<br />

bleibt der Failover also aus.<br />

Das war der Grund für die Entwickler,<br />

dem Pacemaker mehr als das bloße Umschalten<br />

zwischen zwei Clusterknoten<br />

beizubringen. Der Schrittmacher kennt<br />

einfaches Monitoring, das in vielen Fällen<br />

ausreicht, um ein Problem in den<br />

Griff zu kriegen, etwa indem es ein abgestürztes<br />

Programm neu startet.<br />

Dabei kommuniziert Pacemaker nicht direkt<br />

mit den Diensten. Trägt der Admin<br />

beispielsweise seinem Clustermanager<br />

Agenten-Klassen<br />

Die Resource Agents für Pacemaker sind<br />

in drei Kategorien eingeteilt: LSB-Agenten,<br />

also normale Init-Skripte nach LSB-<br />

Standard. Daneben gibt es die Heartbeat-<br />

Agenten, die aber als veraltet gelten. Die<br />

Kategorie der OCF-Agenten bildet die<br />

Königsklasse: Diese Agents sind für den<br />

Einsatz mit Pacemaker konzipiert und erlauben<br />

es in vielen Fällen, Parameter für<br />

die Konfiguration eines Dienstes direkt<br />

aus der Clusterkonfiguration anzugeben.<br />

Allen genannten Klassen ist gemein, dass<br />

sie die drei Optionen zum Starten, Beenden<br />

und Überwachen von Diensten<br />

kennen müssen.<br />

Bevor der Admin die eigene Pacemaker-<br />

Installation auf Monitoring trimmt, sollte<br />

er testen, ob jeder Resource Agent diese<br />

Parameter tatsächlich beherrscht. Denn<br />

während bei OCF-Agenten diese Parameter<br />

praktisch immer funktionieren, sieht<br />

es bei den Init-Skripten bisweilen düster


aus: Insbesondere<br />

auf Debian-Systemen<br />

finden sich diverse,<br />

die den »monitor«-<br />

Parameter nicht verstehen<br />

und daher<br />

eine Fehlermeldung<br />

ausgeben.<br />

Falsch<br />

verstanden<br />

Für den Clustermanager<br />

ist das fatal,<br />

denn aufgrund der<br />

Fehlermeldung vermutet<br />

er, der Dienst<br />

laufe nicht. Versucht<br />

er im Anschluss<br />

den Dienst zu starten,<br />

führt das meist<br />

zu einem Chaos im<br />

Cluster. Der Aufruf<br />

eines Init-Skripts mit<br />

dem »monitor«-Kommando<br />

bringt dem Admin bereits vorher<br />

beruhigende Gewissheit. Gibt der Agent<br />

einen plausiblen Wert zurück, ist das Init-<br />

Skript fit für den Monitoring-Einsatz in<br />

Pacemaker.<br />

Wenn klar ist, dass alle Agents in einem<br />

Pacemaker-Setup den Parameter »monitor«<br />

kennen, spricht nichts dagegen, die<br />

Funktion tatsächlich auch in der Pacemaker-Konfiguration<br />

zu verwenden. Als bevorzugtes<br />

Tool, um das Clustersetup anzupassen,<br />

gilt die CRM-Shell (Abbildung<br />

1), sie lässt sich auf Pacemaker-Systemen<br />

durch den Aufruf von »crm configure« in<br />

der Bash starten.<br />

Der Befehl führt unmittelbar in das<br />

»configure«-Menü. Es schadet nicht, zuvor<br />

sicherzustellen, dass in der Umgebungsvariablen<br />

»$EDITOR« tatsächlich<br />

der Kommandozeilen-Editor der eigenen<br />

Präferenz steht. Denn der nächste Befehl<br />

auf der CRM – »edit« – startet diesen<br />

Editor und lädt die existierende Clusterkonfiguration.<br />

Primitive-Monitoring<br />

Abbildung 1: »crm ra info« gibt die Informationen zu einem Resource Agent<br />

aus. Besondere Monitoring-Fähigkeiten sind üblicherweise hier vermerkt.<br />

Das Monitor-Feature bezieht sich jeweils<br />

auf einfache Ressourcen, in Pacemaker-<br />

Sprech Primitives genannt. Im Falle einer<br />

vorhandenen Konfiguration finden sich in<br />

der CRM-Konfiguration vermutlich mehrere<br />

Ressourcen dieses Typs. Sie unterstützen<br />

jeweils zwei Arten von Konfigurationseinstellungen:<br />

Parameter, die über<br />

den Resource Agent unmittelbar auf die<br />

Eigenschaften des jeweiligen Programms<br />

Einfluss nehmen, und Operationen. Erstere<br />

werden in der Konfiguration einer<br />

»primitive«-Ressource mit dem Schlüsselwort<br />

»params« eingeleitet.<br />

Zusätzlich gibt es das Keyword »op«, das<br />

die so genannten Operations einleitet.<br />

Über diese legt der Administrator fest,<br />

wie Pacemaker mit bestimmten Ressourcen<br />

umgehen soll. Drei Operationen<br />

gehören zum Standardrepertoire: Über<br />

»start« und »stop« stellt der Clusteradmin<br />

Toleranzwerte für die Timeouts<br />

beim Starten und beim Stoppen ein. Die<br />

dritte ist die »monitor«-Operation (Abbildung<br />

2). Sie bringt Pacemaker dazu,<br />

den Resource Agent für diese Ressource<br />

regelmäßig mit dem »monitor«-Befehl<br />

aufzurufen und aus den Resultaten Rückschlüsse<br />

zu ziehen.<br />

Um das Monitoring für eine »primitive«-<br />

Ressource zu aktivieren, ist die folgende<br />

Zeile in deren Konfiguration notwendig:<br />

op monitor interval="60s" timeout="30s"<br />

Diese Operation veranlasst Pacemaker<br />

jede Minute zu testen, ob der Dienst noch<br />

läuft. Bekommt der Clustermanager nach<br />

4 TAGE | NÜRNBERG | DÜSSELDORF<br />

5 TAGE | NÜRNBERG | DÜSSELDORF<br />

2 TAGE | NÜRNBERG<br />

3 TAGE | NÜRNBERG | ZÜRICH


Titelthema<br />

www.linux-magazin.de Pacemaker 05/2012<br />

42<br />

Abbildung 2: Das Monitoring auf Ressourcen-Ebene aktivieren Admins, indem<br />

sie die »monitor«-Operation für die »primitive« hinzufügen.<br />

30 Sekunden keinen Rückgabewert vom<br />

aufgerufenen Programm, gilt die Operation<br />

als gescheitert und Pacemaker initiiert<br />

einen Neustart der Ressource. Das<br />

Gleiche tut er, sollte der Test einer Ressource<br />

ergeben, dass diese nicht läuft.<br />

Außerdem setzt der Schrittmacher in diesem<br />

Falle den »failcount« der Ressource<br />

um 1 hoch, loggt also mit, dass die Ressource<br />

abgestürzt ist.<br />

Sonderfall DRBD<br />

Häufig kombinieren Admins Pacemaker<br />

mit DRBD. Die Lösung für replizierten<br />

Storage nimmt in Pacemaker eine Sonderrolle<br />

ein: Sie nutzt die Master‐Slave‐Ressourcen,<br />

sodass sie auf beiden Knoten<br />

eines Clusters DRBD verwalten kann,<br />

egal ob sich eine DRBD-Ressource gerade<br />

im »Primary«- oder »Secondary«-Modus<br />

befindet.<br />

Das Master-Slave-Setup findet sich in der<br />

Pacemaker-Konfiguration in Gestalt einer<br />

»ms«-Regel, die eine Referenz auf die<br />

eigentliche DRBD-»primitive«-Ressource<br />

hält. Um zu funktionierenden Monitoring-<br />

Operationen zu gelangen, gilt es, einen<br />

Sonderfall zu beachten: Die »monitor«-<br />

Operation für eine »primitive«-Ressource,<br />

auf die eine »ms«-Regel verweist, sieht<br />

folgendermaßen aus:<br />

op monitor interval="30s" role="Slave"<br />

op monitor interval="25s" role="Master"<br />

Für die Rollen »Master« und »Slave«<br />

sind also jeweils eigene Operationen für<br />

»monitor« notwendig. Sinnvoll ist es, die<br />

»Master«-Rolle etwas häufiger zu prüfen<br />

als die »Slave«-Rolle. Keinesfalls dürfen<br />

die beiden Intervalle<br />

identisch sein, denn<br />

dann würde die<br />

»monitor«-Operation<br />

nicht funktionieren.<br />

Thresholds<br />

Pacemaker kennt ein<br />

Konzept namens Migration<br />

Threshold.<br />

Gemeint ist der Vorgang,<br />

eine Ressource<br />

auf einem Clusterknoten<br />

nach einem<br />

Absturz nicht mehr<br />

zu starten, wenn ihr<br />

dort bereits eine bestimmte Anzahl von<br />

Abstürzen nachgewiesen ist. In einem<br />

solchen Falle würde der Clustermanager<br />

dann sein Glück auf einem anderen Clusterknoten<br />

versuchen.<br />

Das Feature ist praktisch für verschiedene<br />

Dienste, zum Beispiel Datenbanken:<br />

Stürzt MySQL auf einem Server mehrere<br />

Male ab, weil der RAM der Maschine kaputt<br />

ist, bringt es nichts, die Datenbank<br />

dort wieder und wieder zu starten. Über<br />

den »migration‐threshold«-Parameter<br />

lässt sich der Vorgang abkürzen. Doch<br />

bevor der Threshold-Parameter selbst<br />

ins Spiel kommt, ist auf der CRM-Shell<br />

in dem »configure«-<br />

Abschnitt noch der<br />

Block mit »property«<br />

um die folgende Zeile<br />

zu erweitern:<br />

cluster‐recheck‐U<br />

interval="5m"<br />

Dies sorgt dafür, dass<br />

der Clustermanager<br />

nicht nur bei irgendwelchen<br />

Ereignissen<br />

eingreift, sondern<br />

dass er regelmäßig<br />

alle 5 Minuten<br />

den Zustand des<br />

gesamten Clusters<br />

überprüft – Monitor-<br />

Anweisungen ausgenommen,<br />

die ihre<br />

eigenen Intervalle<br />

haben.<br />

Um für eine Ressource<br />

dann den<br />

Threshold zu aktivieren,<br />

braucht die Ressource noch den<br />

folgenden Eintrag:<br />

meta migration‐threshold=2<br />

failure‐timeout=60s<br />

In diesem Falle würde Pacemaker den<br />

Dienst nach zwei Abstürzen auf einen<br />

anderen Clusterknoten verschieben und<br />

es nach 60 Sekunden dem Dienst wieder<br />

erlauben, auf dem ursprünglichen Clusterknoten<br />

zu laufen. Statt »60s« ist hier<br />

auch die Angabe von Minuten möglich.<br />

»1440m« würde dafür sorgen, dass die<br />

Ressource einen ganzen Tag nicht auf<br />

dem kaputten Knoten laufen darf, es sei<br />

denn, der Admin greift händisch ein.<br />

Licence to kill<br />

Die meisten Resource Agents überprüfen<br />

beim Aufruf mit »monitor« nur oberflächlich,<br />

ob ein Programm läuft. Meist<br />

schauen sie nach, ob ein entsprechender<br />

Prozess in der Prozesstabelle zu finden ist<br />

und ob dieser auf »kill ‐0« noch reagiert.<br />

Nicht selten erfüllen Applikationen zwar<br />

diese beiden Bedingungen, funktionieren<br />

aber trotzdem nicht mehr richtig.<br />

Beispiele sind virtuelle Maschinen, deren<br />

»kvm«-Prozess zwar noch läuft, die aber<br />

auf »ping« nicht mehr antworten, sowie<br />

Asterisk, das nicht mehr reagiert, obwohl<br />

Abbildung 3: Soll der Resource Agent mehr können, als das Vorhandensein<br />

eines Prozesses zu testen, müssen RA-Autoren dies in die Skripte einbauen.


der Prozess noch läuft. Die Autoren von<br />

Resource Agents müssen sich um diese<br />

Probleme selbst kümmern. Für die beiden<br />

angegebenen Beispiele ist das passiert:<br />

Sowohl »ocf:heartbeat:VirtualDomain«<br />

als auch »ocf:heartbeat:asterisk« bieten<br />

erweiterte Testmechanismen, um Fehlurteilen<br />

vorzubeugen.<br />

Monitor-Skripte<br />

Der Virtual-Domain-Agent erledigt das<br />

über den Parameter »monitor_scripts«<br />

in der CRM-Konfiguration. Hier gibt<br />

der Admin eine Liste von Skripten an,<br />

die Pacemaker während der »monitor«-<br />

Operation aufruft, jeweils getrennt durch<br />

ein Komma. Falls der Clusteradmin hier<br />

externe Skripte angibt, bezieht der Resource<br />

Agent deren Rückgabewerte in das<br />

Ergebnis von »monitor« ein.<br />

Zusatzskripte (Abbildung 3) können beliebige<br />

Funktionen testen. Empfehlenswert<br />

ist etwa ein Skript, das »ping« mit<br />

der IP der virtuellen Maschine aufruft<br />

und 0 zurückliefert, falls diese auf Pings<br />

antwortet, oder 1, falls nicht.<br />

Der spezialisierte Asterisk-Agent »ocf:<br />

heartbeat:asterisk« kennt eine sehr ähnliche<br />

Funktion. Ist auf dem Zielsystem<br />

das Programm »sipsak« installiert und<br />

definiert der Admin in der CRM-Konfiguration<br />

den Parameter<br />

monitor_sipuri="sip:IP."<br />

dann schickt der Agent bei jedem Monitoring-Aufruf<br />

einen SIP-Request an<br />

den Asterisk-Server. Kommt auf den Request<br />

eine brauchbare Antwort, gilt die<br />

Operation als erfolgreich abgeschlossen.<br />

Andernfalls markiert Pacemaker den Vorgang<br />

als »failed« und spielt das übliche<br />

Programm ab.<br />

Übrigens: Hat der Admin nach dem<br />

Fehlschlagen einer Monitor-Operation<br />

die Ursache für das Problem beseitigt,<br />

hilft der Befehl »crm resource cleanup<br />

Name_der_Ressource« auf der Bash, um<br />

den »Failcount« der Ressource auf 0 zurückzusetzen.<br />

Das stellt die Ausgangssituation<br />

wieder her (Abbildung 4).<br />

Agenten erweitern<br />

Abbildung 4: Die Ressource »p_filesystem:1« ist zwischenzeitlich<br />

abgestürzt, aber Pacemaker hat das<br />

automatisch korrigiert. »crm_mon ‐1 ‐rf« zeigt, ob<br />

in der Vergangenheit Ressourcen abgestürzt sind.<br />

Wenn ein Resource Agent in der eigenen<br />

Clusterkonfiguration ab Werk nicht mit<br />

aufgebohrten Monitor-Features ausgestattet<br />

ist, dann ist das auch kein Beinbruch.<br />

In der Regel lassen sich die Agenten nämlich<br />

sehr leicht um solche Features erweitern.<br />

LSB-Agenten liegen üblicherweise<br />

im Verzeichnis »/etd/init.d«, Heartbeat-<br />

Agenten in »/etc/ha.d/resources.d« und<br />

OCF-Agenten finden sich in »/usr/lib/<br />

ocf/resource.d«.<br />

Um einen Agent zu erweitern, ist nur die<br />

richtige Datei zu finden und anzupassen;<br />

Shellprogrammierung dürfte für die meisten<br />

Admins kein unüberwindbares Hindernis<br />

sein. Sie müssen nur die Funktion<br />

finden, die der Agent beim Aufruf mit<br />

»monitor« bemüht – dort ist der richtige<br />

Platz für den zusätzlichen Code.<br />

Lesen bildet<br />

Wer sich detailliert mit dem Bearbeiten<br />

von Resource Agents befassen will, sollte<br />

sich zwei Dokumente zu Gemüte führen:<br />

Einerseits die Anleitung für die Entwickler<br />

von OCF-Agents [1] und andererseits<br />

einen Artikel im Admin-<strong>Magazin</strong>, der das<br />

Erstellen eines OCF-Agenten von Anfang<br />

bis Ende beschreibt [2]. (mfe) n<br />

Infos<br />

[1] OCF Resource Agents Developer’s Guide:<br />

[http:// www. linux‐ha. org/ doc/ dev‐guides/​<br />

ra‐dev‐guide. html]<br />

[2] Martin Gerhard Loschwitz, „Agentenausbildung“:<br />

Admin-<strong>Magazin</strong> 01/​2012,<br />

[http:// www. admin‐magazin. de/ Das‐Heft/​<br />

2012/ 01/ HA‐Serie‐Teil‐8‐OCF‐Agenten<br />

‐selbst ‐programmieren]<br />

Kennen Sie<br />

den schon?<br />

Oliver Sennhauser beschäftigt<br />

sich seit 1994 mit<br />

Datenbanken, 2000 wurde<br />

er Oracle-Berater und später<br />

Senior-Berater bei MySQL.<br />

Heute arbeitet er für eine unabhängige<br />

MySQL-Beratungsfirma. Er mag<br />

eigentlich alles von SQL-Tuning über DB-<br />

Parametrisierung hin zu Betriebsproblemen<br />

und hochverfügbaren MySQL-Setups.<br />

Sein nächster Kurs:<br />

MySQL für Profis<br />

18.06.<br />

WIR KÖNNEN NOCH MEHR...<br />

Sicherheit für <strong>Linux</strong>-Server<br />

Nagios/Icinga Networkmonitoring<br />

High-End-Mailserver: Postfix am Limit<br />

Disaster Recovery mit ReaR<br />

Zabbix<br />

11.06.<br />

Zend Framework<br />

18.06.<br />

07.05.<br />

22.05.<br />

07.05.<br />

http://www.heinlein-support.de/kurse<br />

21.05.


Titelthema<br />

www.linux-magazin.de Eigene Cloud 05/2012<br />

44<br />

Cloudlösungen im Eigenbau mit Sparkleshare und Owncloud<br />

Meine Wölkchen<br />

Cloudstorage verspricht komfortables, automatisches Synchronisieren von Daten in einem Mikrokosmos von<br />

mehreren Geräten. Wer seine Daten jedoch nicht in die Hände Dritter geben will, dem bieten Open-Source-<br />

Alternativen im Eigenbau einen Ausweg. Martin Loschwitz<br />

© Alfi007, sxc.hu<br />

Die überarbeitete Version eines Vertrags,<br />

ein paar CAD-Dateien, ein PDF-<br />

Dokument mit Entwürfen – oft gelangen<br />

diese Daten per Mail zu den Mitgliedern<br />

eines Teams. Dabei stehen Cloud-basierte<br />

Synchronisationslösungen bereit, die den<br />

Datei-Austausch automatisieren. Mit vielen<br />

Vorteilen, aber auch Risiken.<br />

Für kleine Unternehmen scheint es auf<br />

den ersten Blick zu aufwändig, eine<br />

Cloud zum Synchronisieren von Daten<br />

selbst aufzusetzen. Es gibt Dienstleister,<br />

die mit komfortablen und günstigen<br />

Angeboten locken. Wer aber den Datenschutz<br />

bedenkt, besonders bei ausländischen<br />

Anbietern, revidiert vielleicht seine<br />

Meinung, zumal die im Artikel vorgestellten<br />

Lösungen das Aufsetzen und Administrieren<br />

einfach machen.<br />

Bei Dienstleistern stellt sich die Frage:<br />

Haben Behörden anderer Staaten Zugriff<br />

auf die Daten? Meist hängt das davon ab,<br />

an welchem Ort die<br />

Server des Anbieters<br />

stehen. Im Normalfall<br />

unterliegen die<br />

Betreiber eines Rechenzentrums<br />

den<br />

jeweiligen Landesgesetzen.<br />

Der Standort gibt<br />

aber nur bedingt Sicherheit:<br />

Microsoft<br />

gab Mitte 2011 zu<br />

Protokoll, dass das<br />

Unternehmen im<br />

Rahmen des „Patriot<br />

Act“ Daten an<br />

Behörden der USA<br />

herausgeben müsse,<br />

auch wenn diese auf<br />

Servern in der EU lagern<br />

[1].<br />

Wer sich auf die Vertraulichkeit seiner<br />

Daten verlassen muss, kann die Zugriffsmöglichkeiten<br />

des Patriot Act kaum akzeptieren.<br />

Die Situation verschärft sich<br />

noch, weil im Geschäftsleben ein so<br />

genanntes Non Disclosure Agreement<br />

(NDA) die Grundlage der Kommunikation<br />

bildet, das die Weitergabe von Informationen<br />

verbietet.<br />

In der Cloud-Falle<br />

Viele geschäftliche Verträge verbieten<br />

es den Parteien, Informationen über<br />

gemeinsame Arbeiten oder Kunden an<br />

Dritte zu geben. Dienste wie Evernote<br />

[2], Wunderlist [3] und Dropbox [4]<br />

erweisen sich dann als Falle: Deren Betreiber<br />

sind „Dritte“ – geheime Daten<br />

haben dort nichts zu suchen.<br />

Besonders schmerzt die Tatsache, dass<br />

NDAs den Einsatz von Dropbox de facto<br />

unmöglich machen. Der Dienst böte sich<br />

für kleinere Unternehmen an: In der<br />

Dropbox-Cloud steht Speicherplatz bereit,<br />

der komfortabel von jedem Punkt erreichbar<br />

ist. Clients für <strong>Linux</strong>, Windows<br />

und sogar für iPhone und Android tun<br />

ein Übriges, um die Lösung als Onlinefestplatte<br />

in Stellung zu bringen.<br />

Wer mit diesen Funktionen liebäugelt,<br />

wählt einen EU-weit tätigen Anbieter oder<br />

legt einfach selbst Hand an. Mittlerweile<br />

gibt es mehrere Ansätze, die auf einfache<br />

und elegante Weise einen Dropbox-ähnlichen<br />

Dienst mit der eigenen Infrastruktur<br />

ermöglichen. So gelangen die Daten nicht<br />

in die Hände anderer. Dieser Artikel stellt<br />

zwei Lösungsansätze vor: Sparkleshare<br />

[5] und Owncloud [6].<br />

E Sparkleshare<br />

Die Macher von Sparkleshare bezeichnen<br />

ihre Software als „Collaboration and<br />

Sharing Tool“. Clients stehen für mehrere<br />

Plattformen bereit: Neben einer <strong>Linux</strong>-<br />

Version existieren Versionen für Mac OS<br />

X und Android. An einer Windows-Variante<br />

arbeiten die Entwickler, für I-OS gibt<br />

es ebenfalls Pläne.<br />

Das Programm ist vor allem ein grafisches<br />

Frontend für Git, das auf Funktionen<br />

zum Synchronisieren besonders<br />

vorbereitet ist. Sparkleshare pflegt die<br />

ihm vorgesetzten Daten folglich in einem<br />

Git-Repository. Änderungen sind leicht<br />

nachvollziehbar. Entfernt ein Nutzer eine<br />

Datei aus dem Sparkleshare-Ordner, fliegt<br />

sie auch aus dem Git-Repository.<br />

Nach dem ersten Start präsentiert Sparkle<br />

share einen Dialog, der etwas seltsam<br />

anmutet. Das Programm möchte nämlich<br />

wissen, auf welchem Rechner es das<br />

Repository anlegen soll (Abbildung 1).


sollte den Namen<br />

der Schlüsseldatei<br />

ändern, etwa durch<br />

ein angehängtes »_<br />

sparkleshare«. Das<br />

sorgt dafür, dass ein<br />

Login mit diesem<br />

Key auf dem Zielserver<br />

funktioniert:<br />

Managed<br />

Server<br />

ssh‐copy‐id ‐i $HOME/U<br />

.ssh/Öffentlicher_U<br />

Schlüssel User@Host<br />

Abbildung 1: Nach der Installation steht bei Sparkleshare die Konfiguration<br />

eines Git-Repository auf dem Plan.<br />

Neben dem eigenen Server stehen Alternativen<br />

zur Auswahl: Github [7], Gitorious<br />

[8] und der Git-Server des Gnome-<br />

Projekts [9]. Damit das Tool als nahtloser<br />

Ersatz für Dropbox fungiert, ist der eigene<br />

Server die Option der Wahl.<br />

Git aufsetzen<br />

Das impliziert, dass beim Zielhost Git<br />

auf dem Server laufen muss. Ein eigener<br />

Daemon für Sparkleshare ist nicht erforderlich.<br />

Als Server sollte eine Maschine<br />

fungieren, die per Secure Shell (SSH) erreichbar<br />

ist, denn die Kommunikation mit<br />

seinem Host wickelt das Programm über<br />

diesen verschlüsselten Kanal ab. Dabei<br />

sollte ein SSH-Schlüssel ohne Passwort<br />

zum Einsatz kommen. Das ermöglicht es<br />

dem Programm, sich im Hintergrund mit<br />

dem Server zu verbinden.<br />

Grundsätzlich läuft das Setup eines Git-<br />

Repository für Sparkleshare so ab: Im<br />

ersten Schritt legt der Admin mittels<br />

»ssh‐keygen« einen Schlüssel an. Fragt<br />

das Programm nach einem Passwort,<br />

sorgt [Eingabe] dafür, dass die Software<br />

den Schlüssel ohne Passwort generiert.<br />

Wer bereits einen SSH-Schlüssel hat,<br />

Jetzt fehlt noch das<br />

Repository für Git,<br />

das der Befehl »git<br />

init ‐‐bare Name.git« auf dem Host anlegt.<br />

Bei der Konfiguration des Sparkleshare-Frontends<br />

ist anschließend der<br />

vollständige Pfad zum Repository anzugeben.<br />

Im Feld »Adresse« ist neben<br />

der IP der Benutzername notwendig, das<br />

Feld »Pfad« bezeichnet den kompletten<br />

Pfad des Repository im Dateisystem (also<br />

beispielsweise »/home/martin/Sparkleshare.git«).<br />

Sobald diese Konfiguration festgelegt ist,<br />

testet Sparkleshare, ob das Repository<br />

wie gewünscht funktioniert. Danach geht<br />

es los: Beim Kopieren von Dateien ins<br />

Sparkleshare-Verzeichnis synchronisiert<br />

das Programm den Inhalt des Ordners<br />

im Hintergrund mit dem Server (Abbildung<br />

2). Ein Tray-Icon macht es einfacher,<br />

auf das Verzeichnis zuzugreifen.<br />

Einmal eingerichtet verrichtet das Werkzeug<br />

zuverlässig seinen Dienst. Dank<br />

SSH erfolgt die gesamte Kommunikation<br />

verschlüsselt.<br />

Besonderheiten<br />

Sparkleshare ermöglicht mehreren Leuten<br />

den Zugriff auf ein Repository. Solange<br />

einem Account, der auf einen Ordner<br />

Profitieren Sie von:<br />

ISO 9001 zertifiziertem<br />

Managed Hosting<br />

Hochsicherheits-Datacenter<br />

DE-CIX Direktanbindung<br />

IPv4/IPv6 Unterstützung<br />

24/7 Service und Support<br />

Professioneller Service<br />

Individuelle Managed Server mit<br />

persönlichem und kompetentem<br />

Support. Für mehr Performance,<br />

Sicherheit und Verfügbarkeit, jeden<br />

Tag, rund um die Uhr.<br />

Wir bieten Hostinglösungen vom<br />

Server bis zum Clustersystem inkl.<br />

Beratung, Planung und Service 24/7.<br />

hostserver.de/server<br />

Managed Hosting<br />

zertifiziert nach<br />

ISO 9001 : 2008<br />

Abbildung 2: Sparkleshare synchronisiert den Ordnerinhalt mit dem Server. Anschließend läuft der Zugriff<br />

auf die Dateien, die das Programm unter seinen Fittichen hat, über den Dateimanager.<br />

0 30 / 420 200 24 hostserver.de<br />

Berlin Marburg Frankfurt am Main


Titelthema<br />

www.linux-magazin.de Eigene Cloud 05/2012<br />

46<br />

zugreifen möchte, ein<br />

Log in per SSH möglich<br />

ist, klappt das. In diesem<br />

Fall sollte das Git-Repository<br />

nicht in dem persönlichen<br />

Ordner eines<br />

Nutzers liegen, sondern<br />

an einer Stelle im Dateisystem,<br />

auf die alle Zugriff<br />

haben. Dabei sind<br />

Rechte für den Ordner<br />

zu setzen.<br />

Als Sahnehäubchen erweist<br />

sich der Sparkleshare-Client<br />

für Android<br />

auf ihre Kosten.<br />

(Abbildung 3). Ähnlich wie der Dropbox-Client<br />

synchronisiert er den Inhalt<br />

des Ordners von Sparkleshare im Hintergrund<br />

und erlaubt Dateien zu lesen und<br />

zu schreiben, die von anderen Systemen<br />

dorthin gelangen.<br />

E Owncloud<br />

Abbildung 3: Außer für<br />

<strong>Linux</strong> steht ein Client für<br />

Android bereit, auch Mac-<br />

OS-X-Anwender kommen<br />

Wer Git nicht einsetzen will, braucht deshalb<br />

nicht auf einen Dropbox-Ersatz zu<br />

verzichten. Der Webdav-Standard ist etabliert<br />

und beschreibt den Datenaustausch<br />

über das HTTP-Protokoll. Diesen Ansatz<br />

macht sich Owncloud zunutze und zimmert<br />

rund um die LAMP-Plattform ein<br />

Frontend, das den Datei-Upload ermöglicht<br />

(Abbildung 4).<br />

Tatsächlich verbirgt sich dahinter wesentlich<br />

mehr als ein Dienst, der Dateien<br />

zwischen zwei Hosts synchron hält. Neben<br />

Dateien verwaltet das Programm<br />

bei Bedarf auch Kontakte und Kalendereinträge.<br />

Die aktuelle Version 3 bietet<br />

außerdem eine Plugin-Schnittstelle, die<br />

Zusatzfunktionen einbindet. Der Funktionsumfang<br />

ist also deutlich größer als<br />

der von Sparkleshare, aber das Setup des<br />

Dienstes verlangt mehr Handarbeit.<br />

ter. Die aktuelle Version steht auf<br />

der Website zum Download bereit<br />

[10]. Ist die geladene ».zip«-<br />

Datei entpackt, sind die Berechtigungen<br />

des Verzeichnisses so<br />

anzupassen, dass Apache auf<br />

den Ordner zugreifen darf. Auf<br />

Debian- und Ubuntu-Systemen<br />

muss dazu der Ordner dem Benutzer<br />

»www‐data« gehören, der<br />

Schreibrechte per »chmod ‐R«<br />

bekommen sollte.<br />

Anschließend meldet sich<br />

beim Öffnen des Ordners im<br />

Webbrowser der Setup-Wizard,<br />

der die weitere Installation und Konfiguration<br />

abwickelt. Im Rahmen dieses Vorgangs<br />

bekommt die MySQL-Datenbank<br />

die Erstausstattung an Daten. Hat der<br />

Wizard seine Arbeit erfolgreich beendet,<br />

steht die Software bereit (Abbildung 5).<br />

Übrigens: Wer SSL-Verschlüsselung benutzen<br />

möchte, aber auf seinem Webserver<br />

keine offiziellen SSL-Zertifikate hat,<br />

generiert diese über den Wizard während<br />

des Setup-Vorgangs. Danach klappt der<br />

Zugriff via HTTPS.<br />

Benutzer verwalten<br />

Owncloud bringt in der Standardkonfiguration<br />

ein eigenes Benutzermanagement<br />

mit, das nicht an das systemweite<br />

Authentifizieren mit PAM gekoppelt ist.<br />

Daher gilt es, zusätzlich Benutzer im<br />

Administrationsinterface anzulegen. Für<br />

Owncloud 3 gibt es allerdings eine App,<br />

die das Tool dazu bringt, Systembenutzer<br />

aus PAM zu integrieren [11]. Auf Systemen,<br />

für die nur wenige User eingetragen<br />

sind, ist der Mehraufwand des erneuten<br />

Anlegens einzelner Benutzer leicht zu<br />

verkraften. Wenn allerdings mehr Benutzer<br />

mitmachen, spart die PAM-Anbindung<br />

viel Zeit.<br />

Webdav im Alltag<br />

Mit dem Webdav-Protokoll ist Own cloud<br />

ab Werk mit einem dicken Paket an<br />

Funktionen ausgestattet. So beherrschen<br />

die gängigen Dateimanager der großen<br />

Desktops das Protokoll ohne zusätzliche<br />

Klimmzüge. Dadurch erscheinen die<br />

Webdav-Laufwerke als Festplatte, auf die<br />

sich – wie auf jedes andere Blockdevice<br />

– zugreifen lässt. Windows beherrscht<br />

diese Funktion ebenfalls.<br />

Anders als Sparkleshare synchronisiert<br />

Owncloud nicht direkt nach dem Connect<br />

alle Daten vom Server auf die Clients. Das<br />

spart Bandbreite und Traffic, insbesondere<br />

unterwegs mit Schmalspurverbindung.<br />

Um eine Datei aus dem Speicher<br />

zu holen, ist diese per Webdav herunterzuladen.<br />

Das Hochladen der Dateien geschieht<br />

auf dem gleichen Weg. Owncloud<br />

kopiert nach Webdav-Standard ebenfalls<br />

Request-abhängig.<br />

Die Webdav-Lösung sorgt auch für Freude<br />

auf I-OS- und Android-Systemen, denn<br />

beide beherrschen Webdav, eine eigene<br />

Installation<br />

Der Einsatz der Software setzt ein System<br />

mit typischen LAMP-Komponenten voraus<br />

– <strong>Linux</strong>, Apache, MySQL und PHP.<br />

Außerdem sollte der Webserver das Webdav-Protokoll<br />

unterstützten. Bei Apache<br />

geht das über das »mod_webdav«, das in<br />

der Regel aber nicht zur Standardinstallation<br />

des Webservers gehört.<br />

Läuft der Webserver, geht es mit dem<br />

Download der eigentlichen Software wei-<br />

Abbildung 4: Owncloud bietet Zugriff auf Dateien über Webdav. Das bietet viele Funktionen, setzt als Grundlage<br />

aber einen kompletten LAMP-Stack voraus.


opensourcepress.de<br />

BÜCHER<br />

Abbildung 5: Die Owncloud bietet sogar einen in den Browser integrierten<br />

Musikplayer an. Dieser ermöglicht es dem Nutzer, Lieder direkt aus dem<br />

Onlinespeicher abzuspielen.<br />

Clientsoftware ist nicht notwendig. Wer<br />

eine vom Betriebssystem unabhängige<br />

Cloud braucht, fährt mit diesem Ansatz<br />

also besser als mit Sparkleshare.<br />

Fazit<br />

Beide vorgestellten Lösungen bieten<br />

die Möglichkeiten, Dateien über mehrere<br />

Computer hinweg automatisch zu<br />

synchronisieren. Sparkleshare und Owncloud<br />

nutzen allerdings hierfür völlig<br />

unterschiedliche Ansätze. Sparkleshare<br />

setzt im Hintergrund auf Git und hält den<br />

Datenbestand der Teilnehmer tatsächlich<br />

automatisch auf dem aktuellen Stand. Je<br />

nach verfügbarer Verbindung und eventuell<br />

vorhandenen Beschränkungen erwächst<br />

daraus aber eventuell ein Traffic-<br />

Problem. Auf der Habenseite verbucht<br />

dieser Ansatz Clients für <strong>Linux</strong>, für Mac<br />

OS X und für Android.<br />

Wer auch von Windows-Rechnern auf<br />

den Speicher zugreifen muss, schaut<br />

also zunächst in die Röhre. Wer aber auf<br />

einen <strong>Linux</strong>-Client setzt und ein Android-Telefon<br />

sein Eigen nennt, findet in<br />

Sparkleshare einen zuverlässigen Partner.<br />

Weil das Programm obendrein auf SSH-<br />

Verschlüsselung setzt, ist die gesamte<br />

Verbindung sicher.<br />

Owncloud erweist sich insgesamt als<br />

wesentlich umfangreicher. Das mag daran<br />

liegen, dass seine Entwickler speziell<br />

darauf zielen, Benutzern<br />

den Aufbau und<br />

Betrieb einer eigenen<br />

Cloud zu ermöglichen.<br />

Wer dagegen<br />

nur schnellen Filestorage<br />

für zwischendurch<br />

braucht, sieht<br />

seine Anforderungen<br />

mit Owncloud bereits<br />

übererfüllt.<br />

Für alle, die mit zusätzlichen<br />

Funktionen<br />

– Kalender, Abgleich<br />

der Kontakte – etwas<br />

anfangen können, ist<br />

Own cloud ein zuverlässiges<br />

Werkzeug. Das<br />

Interface auf Webdav-<br />

Basis ist geräteneutral<br />

und entschädigt für<br />

die etwas aufwändigere<br />

Installation.<br />

Einen eindeutigen Sieger zu nennen fällt<br />

bei dieser Lage schwer. Beide Lösungen<br />

erfüllen die Aufgabe und leisten sich<br />

keine bösen Patzer. Die eigene Infrastruktur<br />

und die speziellen Anforderungen<br />

bestimmen daher im Wesentlichen die<br />

Wahl. (agr/uba)<br />

n<br />

Infos<br />

[1] Microsoft gibt im Zweifelsfall Daten von<br />

EU-Servern weiter: [http://www.microsoft.<br />

com/online/legal/v2/?docid=23]<br />

[2] Evernote: [http:// www. evernote. com]<br />

[3] Wunderlist: [http:// www. wunderlist. com]<br />

[4] Dropbox: [https:// www. dropbox. com]<br />

[5] Sparkleshare: [http:// sparkleshare. org]<br />

[6] Owncloud: [http:// owncloud. org]<br />

[7] Github: [https:// github. com]<br />

[8] Gitorious: [http:// gitorious. org]<br />

[9] Git-Server des Gnome-Projekts: [http://​<br />

git. gnome. org/ browse/]<br />

[10] Download Owncloud: [http:// owncloud. org/​<br />

go/ owncloud‐download]<br />

[11] PAM-Anbindung für Owncloud: [http://​<br />

apps. owncloud. com/ content/ show. php/​<br />

Unix+user+backend? content=148406]<br />

Der Autor<br />

Martin Gerhard Loschwitz arbeitet als Principal<br />

Consultant bei Hastexo. Er beschäftigt sich dort<br />

intensiv mit Hochverfügbarkeitslösungen und<br />

pflegt in seiner Freizeit den Clusterstack für<br />

Debian GNU/​<strong>Linux</strong>.<br />

Neuauflage<br />

ISBN 978-3-941841-27-7<br />

680 Seiten · brosch. · 25,- [D]<br />

Neu<br />

ISBN 978-3-941841-61-1<br />

312 Seiten · brosch. · 29,90 [D]<br />

opensourceschool.de<br />

TRAINING<br />

ISBN 978-3-941841-25-3<br />

ca. 750 Seiten · brosch. · 49,90 [D]<br />

ISBN 978-3-941841-45-1<br />

551 Seiten · brosch. · 44,90 [D]<br />

Programmierung<br />

02. – 04.05. iPhone und iPad Entwicklung<br />

02. – 04.05. Python<br />

07. – 09.05. C++ für Fortgeschrittene<br />

21. – 22.05. C++: STL und Boost<br />

Webentwicklung<br />

11. – 13.04. FLOW3 PHP-Framework<br />

11. – 13.04. ExtJS<br />

16. – 18.04. TYPO3 Extbase/Fluid Entwicklung<br />

07. – 09.05. HTML5<br />

10. – 11.05. CSS3<br />

14. – 15.05. TYPO3 für Administratoren<br />

21. – 23.05. TYPO3 für Webdesigner<br />

Administration<br />

07. – 11.05. Vorbereitung auf LPIC-2<br />

07. – 11.05. Vorbereitung auf LPI 301<br />

21. – 22.05. <strong>Linux</strong> auf dem IBM Mainframe<br />

21. – 25.05. Virtualisierung mit Xen<br />

weitere Themen und Termine:<br />

opensourceschool.de/kurstermine<br />

April<br />

2012<br />

Neu


Titelthema<br />

www.linux-magazin.de Tipps und Tricks 05/2012<br />

48<br />

Automatisierung: Nützliches aus der Trickkiste von <strong>Linux</strong>-<strong>Magazin</strong>-Autoren<br />

Turnschuh ade!<br />

Zwischen Turnschuhadministration und Automatisierung lauern Gräben und Klippen. <strong>Linux</strong>-<strong>Magazin</strong>-Autoren<br />

plaudern aus dem Nähkästchen und verraten ihre Kniffe. Udo Seidel, Konstantin Agouros, Thilo Uttendorfer, Charly Kühnast, Martin Loschwitz<br />

© Elena Alyukova-Sergeev, 123RF<br />

Test und Review, Gentoo anpassen,<br />

LDAP-Sicherung mit Versionierung, gezähmtes<br />

Monitoring und synchrone Konfiguration:<br />

<strong>Magazin</strong>-Autoren öffnen ihre<br />

Trickkisten.<br />

Reviews und Tests<br />

ivermeiden Pannen<br />

Bei all den Vorzügen der Automatisierung<br />

darf der Admin nicht vergessen,<br />

dass Methoden, die das Ausrollen eines<br />

Patch auf Hunderten von Rechnern erlauben,<br />

auch ein fehlerhaftes Skript verteilen<br />

können. Mit steigender Heterogenität<br />

des Rechnerverbunds wächst auch das<br />

Risiko für unerwartete Resultate nach einem<br />

administrativen Eingriff. Es gibt zum<br />

Glück Methoden, um das Risiko stark zu<br />

reduzieren: Peer Reviews und ausführliches<br />

Testen. Wichtig ist, dass Admins<br />

beide Checks als Einheit durchführen –<br />

keiner ist ersetzbar.<br />

Ich entwickelte vor Jahren ein Shellskript,<br />

welches das Rootpasswort auf Suse, Red<br />

Hat, HP-UX und Irix<br />

ändern sollte. Die<br />

Tests waren zwar erfolgreich,<br />

beim Rollout<br />

kam es aber zur Katastrophe.<br />

Ursache war<br />

ein Kommando, das<br />

syntaktisch richtig,<br />

aber semantisch falsch<br />

war.<br />

Das Resultat unter HP-<br />

UX: Bei 50 Prozent der<br />

Rechner war »/etc/<br />

passwd« 0 Byte groß.<br />

Eine sorgfältige Peer<br />

Review eines erfahrenen<br />

Shellskripters<br />

hätte dieses Disaster<br />

vielleicht vermieden.<br />

Bei großen Skripten kann dem Prüfer<br />

aber auch etwas entgehen. Nur ein echter<br />

Testlauf fördert den Bug zutage.<br />

Ich erinnere mich an den Fall, wie alle<br />

Rechner einer bestimmten <strong>Linux</strong>-Release<br />

den Hostname »uname« verpasst bekamen.<br />

Ein Testlauf fiel damals aus Zeitgründen<br />

weg – ein fataler Fehler, wie sich<br />

hinterher herausstellte. Fazit: Automatisierung<br />

ist toll! Einen Teil der gewonnenen<br />

Zeit muss der Admin aber in sorgfältige<br />

Tests und Peer Reviews stecken.<br />

Udo Seidel<br />

i Gentoo-Pakete<br />

erstellen und verteilen<br />

Als Admin vieler Gentoo-Rechner schätze<br />

ich die gängige Praxis, Binärpakete aus<br />

den Quellen zu bauen, da Gentoo beim<br />

Kompilieren CPU-Typen berücksichtigt.<br />

Auch kann ich mittels »USE«-Flags Pakete<br />

gemäß den Besonderheiten des Zielsystems<br />

zuschneiden, was letztlich über<br />

Configure-Optionen passiert.<br />

Die Binärversionen liegen normalerweise<br />

unter »/usr/portage/pack ages«. Andere<br />

Hosts dürfen sich effizienterweise dort<br />

per NFS, HTTP oder FTP bedienen, um<br />

zu fertigen Binärpaketen zu kommen.<br />

Dafür setzen sie die Umgebungsvariable<br />

»PORTAGE_BINHOST« auf eine oder<br />

mehrere passende URLs. Will ich auf<br />

solch einem partizipierenden System eine<br />

Software installieren, veranlasse ich mit<br />

der Option »‐g«, dass Gentoo die Pakete<br />

vom per URLs spezifizierten Rechner holt<br />

– allein diese Art des Deployments verdeutlicht<br />

Gentoos Unterschiede zu RPMund<br />

Deb-Distributionen.<br />

Richtig cool wird es, wenn der Verwalter<br />

mehrerer Gentoo-Rechner das Kompilieren<br />

mit »distcc« im Netz verteilt. Gentoo<br />

unterstützt dies transparent, es reicht, in<br />

die Datei »make.conf« unter der Variablen<br />

»FEATURES« die Option »distcc« zu setzen<br />

und bei »MAKEOPTS« mit »‐jX« den<br />

Parallelitätsgrad zu erhöhen, also mehr<br />

bereitstehende CPUs zu nutzen.<br />

Die Mühen der Praxis<br />

Soweit die Theorie. In der Praxis begegnet<br />

mir oft das Problem unterschiedlicher<br />

»USE«-Flags. Baut ein Server ohne<br />

grafische Umgebung die Pakete, passen<br />

diese nicht zu einer Desktopmaschine, da<br />

die Buildmaschine ohne die »USE«-Flags<br />

»X« sowie »gtk« oder »kde« gearbeitet<br />

hat. Das Problem trifft nicht nur Desktop-<br />

Anwendungen, sondern auch »gcc« oder<br />

»openssh«: Erstelle ich die Pakete mit<br />

dem »USE«-Flag und installiere sie auf<br />

einem Server, holt der sich das komplette<br />

X-Window und GTK+ herein.<br />

Das gleiche Problem ergibt sich bei unterschiedlichen<br />

CPUs. Gegen solche ungewollten<br />

Abhängigkeiten hilft die Option<br />

»‐‐binpkg‐respect‐use y«, die prüft, ob die


»USE«-Flags des Binärsystems<br />

zum lokalen passen.<br />

Ein Weg, mit Gentoo-Bordmitteln<br />

verteilt im Netz Binärpakete<br />

zu bauen (Abbildung<br />

1) und sie für mehrere Clients<br />

bereitzustellen, sieht so aus:<br />

Das »/usr/portage«-Verzeichnis<br />

wird auf einem Server<br />

synchron gehalten und per<br />

NFS read-only bereitgestellt.<br />

Pro CPU-Typ gibt es einen<br />

Buildhost, der Binärpakete<br />

erstellt und bereitstellt. Letzteres<br />

erfolgt in einem lokalen<br />

Verzeichnis, das nicht im<br />

read-only gemounteten »/usr/portage«<br />

liegt. Per Webserver stellt diese Maschine<br />

das Package-Verzeichnis bereit. Gibt es<br />

mehrere verschiedene »USE«-Flag-Typen<br />

(Desktops, Webserver), machen diese<br />

das Gleiche pro CPU-Typ.<br />

Alle weiteren Hosts eines CPU-Typs haben<br />

in der »PORTAGE_BINHOST«-Variablen<br />

die URL-Liste der Buildhosts mit<br />

Leerzeichen getrennt und fahren Updates<br />

oder Installs immer mit den Optionen »‐kg<br />

‐‐binpkg‐respect‐use y«. Das führt zum<br />

Abklappern aller URLs in der Variablen<br />

nach passenden Paketen. Nur wenn keines<br />

passt, wird selber kompiliert.<br />

Sind bei den CPU-Typen altersschwache<br />

dabei, kann ein schneller Host das Bauen<br />

übernehmen, indem er die Pakete mittels<br />

»ebuild /usr/portage/...buildfile« erzeugt<br />

und ich die Variablen »CHOST,CXXHOST«<br />

und »USE« passend zum schwächeren<br />

Zielsystem setze. Auch »PKGDIR« muss<br />

auf ein eigenes Verzeichnis zeigen, die<br />

URL in der Variablen »PORTAGE_BIN‐<br />

HOST« passe ich auf dem schwächeren<br />

System an. Die Lizenzen einiger Pakete<br />

verbieten die binäre Bereitstellung. Diese<br />

Pakete verwenden das Flag »bindist«, das<br />

der Admin aktivieren sollte.<br />

Das gezeigte effizienzsteigernde Vorgehen<br />

entbindet den Admin nicht davon,<br />

auf allen verwalteten Systemen regelmäßig<br />

Updates durchzuführen und danach<br />

mittels »etc‐update« die Konfigurationsdateien<br />

zu aktualisieren. Werkzeuge<br />

wie Cluster-SSH helfen dabei, solche<br />

wiederkehrenden Arbeiten zu optimieren.<br />

Grundlegende Pakete wie die Glibc<br />

bedingen, dass nach der Installation andere<br />

Dienste (etwa »vixie-cron«) neu zu<br />

starten sind. Zudem lasse ich ab und zu<br />

Abbildung 1: Mit Gentoo lassen sich Binärpakete bauen.<br />

das Tool Eclean aus dem Gentoolkit laufen,<br />

um veraltete Pakete mit »eclean packages«<br />

auf den Buildhosts zu löschen.<br />

Konstantin Agouros<br />

LDAP-Sicherung mit<br />

iVersionierung<br />

Ein Open-LDAP-Verzeichnis lässt sich<br />

mit dem Befehl »slapcat« sehr einfach sichern.<br />

Ein täglicher Cronjob erledigt das<br />

bei mir automatisch. Möchte ich aber Änderungen<br />

im Verzeichnis nachvollziehen<br />

können, wird es schon etwas komplizierter.<br />

Zwar lassen sich die einzelnen Sicherungen<br />

miteinander vergleichen, aber das<br />

ist Aufgabe eines Versionierungssystems.<br />

Folgender Cronjob implementiert dies mit<br />

Hilfe von »rcs«:<br />

45 23 * * * root umask 077 && cdU<br />

/var/backups && /usr/sbin/slapcatU<br />

>dump.ldif && (rcsdiff ‐q dump.ldif;U<br />

ci ‐q ‐l ‐d ‐mcron ‐t‐cron dump.ldif)<br />

Der Eintrag »umask« stellt sicher, dass<br />

die später angelegte Datei »dump.ldif«<br />

nur für Root zugänglich ist. Der Aufruf<br />

von »rcsdiff« ist optional und führt dazu,<br />

dass ich Änderungen per Mail zugestellt<br />

bekomme. Das »ci« schließlich sichert die<br />

neue Revision.<br />

Thilo Uttendorfer<br />

Rrdcached spart<br />

iZeit und Last<br />

Die Monitoring-Software Munin [1] leistet<br />

mir seit Jahren treue Dienste. Die Werte,<br />

die Munin sammelt, landen auf einem<br />

zentralen Server in Round-Robin-Datenbanken<br />

(RRDs), wo sie in festgelegten<br />

© testfight, photocase.com<br />

Intervallen zu Graphen verarbeitet werden.<br />

Munin überwacht pro Maschine oft<br />

mehrere Dutzend Werte und in großen<br />

Setups nicht selten eine drei- oder vierstellige<br />

Anzahl von Servern.<br />

Beim Aktualisieren Tausender RRDs<br />

steigt die I/​O-Last auf dem Munin-Server<br />

problematisch an. Weil die Platten<br />

permanent ihre Schreib-Lese-Köpfe neu<br />

positionieren, um einige Bytes der RRD<br />

zu aktualisieren, dauert das Ganze lange<br />

und geht je nach Update-Intervall dann<br />

wieder von vorne los.<br />

Beim anschließenden Neuzeichnen der<br />

Graphen spare ich etwas Zeit, indem ich<br />

dem Graph-Kommando den Parameter<br />

»"‐ ‐ lazy"« übergebe. Unveränderte Graphen<br />

werden so nicht neu geschrieben.<br />

Optimierter Zyklus<br />

Auch für die zyklischen Aktualisierungen<br />

der RRDs gibt es Hilfe. Dafür muss RRD<br />

Tool ab Version 1.4 installiert sein sowie<br />

Rrdcached [2]. Die gängigen <strong>Linux</strong>e haben<br />

Letzteres in der Regel als eigenständiges,<br />

von RRD Tool getrenntes Paket an<br />

Bord (Abbildung 2).<br />

Wird das Kommando zum Aktualisieren<br />

einer RRD ausgeführt (»rrdtool update<br />

…«), fängt Rrdcached diesen Aufruf ab<br />

und speichert die Daten in seinem RAM-<br />

Cache, der je nach Anzahl der RRDs<br />

entsprechend üppig sein sollte. Im Hintergrund<br />

läuft ein großzügig bemessener<br />

Timeout, um vor Ablauf jede RRD mehrmals<br />

zu aktualisieren. Rrdcached konsolidiert<br />

diese Aktualisierungen in seinem<br />

Cache und schreibt sie nach Ablauf des<br />

Timeouts gebündelt in die RRDs auf der<br />

Festplatte.<br />

Wichtige Daten über längere Zeit nur im<br />

RAM zu speichern ist gefährlich. Rrdcached<br />

löst dieses Problem, indem es die<br />

Cachedaten regelmäßig in ein Journal auf<br />

der Platte schreibt. Die dabei entstehende<br />

Festplattenlast ist vernachlässigbar. Gesteuert<br />

wird Rrdcached über Kommandozeilenoptionen.<br />

Listing 1 zeigt einen<br />

typischen Aufruf.<br />

Mit dem Parameter »-s« lege ich die Gruppenberechtigung<br />

für den Unix-Domain-<br />

Socket fest, den Rrdcached benutzen<br />

soll, und verwende dafür die Gruppe<br />

»rrdtool«, die auf dem RRD-Tool-Server<br />

ohnehin existiert. Es lässt sich auch eine<br />

neue Gruppe, etwa mit dem Namen »rrd‐<br />

Tipps und Tricks 05/2012<br />

Titelthema<br />

www.linux-magazin.de<br />

49


Titelthema<br />

www.linux-magazin.de Tipps und Tricks 05/2012<br />

50<br />

01 csync2 ‐cr /<br />

02 if csync2 ‐M; then<br />

03 echo "!!"<br />

Abbildung 2: Die Last der Platten verringert Rrdcached.<br />

cached« anlegen, um Verwirrung zu vermeiden.<br />

Die Filesystem-Berechtigungen<br />

für den Socket legt der Parameter »-m«<br />

fest, bevor »-l« definiert, um welchen Socket<br />

es sich handelt.<br />

Im Beispiel ist es ein Unix Domain Socket,<br />

dessen Pfad und Name »unix:/var/<br />

run/rrdtool/cache.sock« lautet. Entfällt<br />

die Angabe, würde Rrdcached den Unix<br />

Domain Socket »unix:/tmp/rrdcached.<br />

sock« benutzen. Das funktioniert, aber<br />

das »/tmp«-Verzeichnis ist zu sehr Spielwiese,<br />

um dort einen wichtigen Socket<br />

zu platzieren.<br />

Neben dem Unix-Socket lässt sich zusätzlich<br />

ein Netzwerk-Socket etablieren,<br />

wie im Beispiel mit »‐l 192.168.10.10«<br />

geschehen. Als Port dient standardmäßig<br />

UDP 42217. Auf ihn schicke ich verschiedene<br />

Kommandos, die das Verhalten von<br />

Rrdcached zur Laufzeit steuern. Die Manpage<br />

enthält eine Liste der Kommandos.<br />

»HELP« und »QUIT« sind selbsterklärend<br />

und werden immer akzeptiert.<br />

Ansonsten sind weitere Befehle hinter<br />

dem Parameter »‐P« explizit aufzulisten.<br />

Die Kommandos aus dem Beispiel:<br />

Listing 1: Rrdcached-Aufruf<br />

04 echo "!! There are unsynced changes! Type 'yes'<br />

if you still want to"<br />

05 echo "!! exit (or press crtl‐c) and anything<br />

else if you want to start"<br />

06 echo "!! a new login shell instead."<br />

07 echo "!!"<br />

»FLUSH Dateiname« verschiebt<br />

die Updates für »Dateiname«<br />

an die erste Stelle<br />

der Update-Warteschlange.<br />

»PENDING Dateiname« gibt<br />

eine Übersicht über alle Updates<br />

für »Dateiname« aus,<br />

die in der Warteschlange<br />

noch ihrer Erledigung harren.<br />

»STATS« präsentiert eine<br />

Reihe statistischer Daten über<br />

die Arbeit von Rrdcached, darunter<br />

die aktuelle Länge der<br />

Warteschlange, die Anzahl<br />

erhaltener Updates, bereits<br />

erledigter Updates und die Größe des<br />

Journals. Hinter »‐j« definiere ich den<br />

Pfad zum Journal.<br />

Startsequenz<br />

Beim Daemon-Start prüft Rrdcached,<br />

ob unerledigte Aufträgt im Journal warten,<br />

und arbeitet sie ab. Ist das Journal<br />

aktiviert und Rrdcached wird beendet,<br />

schreibt es die Daten der Warteschlange<br />

nicht in die RRDs, sondern nur ins Journal.<br />

Dadurch erfolgt der Shutdown flink,<br />

aber auf Kosten nicht aktualisierter RRDs.<br />

Ein »‐F« schaltet dieses Verhalten ab und<br />

Rrdcached führt beim Beenden einen<br />

»FLUSH« aus.<br />

Der Pfad hinter dem Parameter »-b« ist<br />

der Basispfad von Rrdcached. Alle relativen<br />

Pfadangaben in der Konfiguration<br />

beziehen sich darauf. Lasse ich diese<br />

Angabe weg, setzt Rrdcached »/tmp« als<br />

Basispfad ein. Prinzipiell kann ich einzelnen<br />

Konfigurationsoptionen mit absoluten<br />

Pfadangaben völlig andere Pfade<br />

nennen. In der Beispielkonfiguration verhindert<br />

dies aber das nachfolgende »-B«,<br />

01 rrdcached ‐s rrdtool ‐m 0660 ‐l unix:/var/run/rrdtool/cache.sock ‐P FLUSH,PENDING,STATS ‐l<br />

192.168.10.10 ‐j /var/lib/rrcached/journal/ ‐F ‐b /var/lib/rrcached/db/ ‐B ‐w 1800 ‐z 1800<br />

Listing 2: Automatisierter Aufruf von Csync2<br />

© nito500, 123RF<br />

08 if read ‐p "Do you really want to logout? " in<br />

&&<br />

09 [ ".$in" != ".yes" ]; then<br />

10 exec bash ‐‐login<br />

11 fi<br />

12 fi<br />

das Schreibzugriffe nur auf das Basisverzeichnis<br />

und Unterverzeichnisse davon<br />

erlaubt und auch keine symbolischen<br />

Links akzeptiert.<br />

Hinter »‐w« verbirgt sich der Flush-Timeout,<br />

im Beispiel eine halbe Stunde (1800<br />

Sekunden). Aktualisierungen, die länger<br />

in der Warteschlange stehen, landen in<br />

RRDs auf der Platte. Damit sich nicht<br />

alle halbe Stunde die Schreibzugriffe<br />

knubbeln, gibt es den Parameter »‐z«. Er<br />

verzögert den Zugriff um eine zufällige<br />

Zeitspanne zwischen 0 und 1800 Sekunden<br />

und entzerrt so die Schreibzugriffe.<br />

Der Erfolg ist, besonders in sehr großen<br />

Installationen, durchschlagend. Je nach<br />

Anzahl der RRDs und der eingesetzten<br />

Hardware verringert Rrdcached die I/​O-<br />

Last auf den Platten um ein Vielfaches.<br />

Charly Kühnast<br />

i Dateisynchronisierung<br />

mit Csync2<br />

Wenn es darum geht, Konfigurationsdateien<br />

zwischen mehreren Servern synchron<br />

zu halten, sind Puppet und Chef die<br />

Platzhirsche. Beide sind aber aufwändig<br />

zu konfigurieren und bringen viel Overhead<br />

mit – für Hochverfügbarkeits cluster<br />

mit zwei Knoten ist das oft schon zu<br />

viel des Guten. Csync2 ist eine schlanke<br />

Alternative: Der Name steht für Cluster<br />

Sync. Bei dem Programm handelt es sich<br />

um ein Tool, das einzelne Konfigurationsdateien<br />

zwischen zwei Servern mittels<br />

Rsync im Gleichklang hält.<br />

Die Konfiguration liegt in »/etc/csync2.<br />

cfg«. Alle in der Datei vermerkten Files<br />

lassen sich mit »csync2 ‐xv« auf andere<br />

Knoten synchronisieren. Damit ich nach<br />

einer Konfigurationsänderungen das<br />

Synchronisieren nicht vergesse, baut das<br />

».bash_logout«-Skript einen Automatismus<br />

ein. Listing 2 enthält den Code, der<br />

beim Logout prüft, ob es Änderungen<br />

in den von Csync2 verwalteten Dateien<br />

gibt. Dann zeigt es vor dem Logout eine<br />

Warnung und gibt mir die Chance, die<br />

Synchronisation nachzuholen.<br />

Martin Loschwitz<br />

n<br />

Infos<br />

[1] Munin: [http:// munin‐monitoring. org]<br />

[2] Rrdcached: [http:// oss. oetiker. ch/ rrdtool/​<br />

doc/ rrdcached. en. html]


In eigener Sache: DELUG-DVD<br />

Skolelinux, Knopper, Java, Pulp<br />

Einführung 05/2012 12/2010<br />

Software<br />

Auch diesen Monat bekommen die DELUG-Käufer die doppelte Datenmenge zum einfachen Preis: Von der einen<br />

Seite der DVD bootet das brandneue Skolelinux 6.04, auf der anderen Seite gibt es Klaus Knopper im Cebit-Video<br />

zu sehen, eine virtuelle Maschine mit Pulp, viel Software und ein kostenloses E-Book von Galileo. Markus Feilner<br />

www.linux-magazin.de<br />

51<br />

Inhalt<br />

52 Bitparade<br />

Im Kurztest: Tools, die HTML automatisch<br />

validieren und bereinigen.<br />

58 Aftershot<br />

Corels Fotosoftware im Praxisvergleich<br />

mit Gimp, Digikam und Rawtherapee.<br />

64 Libre-Office-Importfilter<br />

Wie gut klappt der neue MS-Visio- und<br />

Powerpoint-Import in Libre Office?<br />

68 Tooltipps<br />

Lziprecover, Kccmp, Checksuite, Tmsu<br />

Clamtk und Getxbook.<br />

Neben einem normalen <strong>Linux</strong>-<strong>Magazin</strong><br />

ohne Datenträger gibt es die DELUG-<br />

Ausgabe mit Monats-DVD, bei der die<br />

Redaktion den Datenträger nach einem<br />

speziellen Konzept zusammenstellt: In<br />

einer Art modularem System enthält<br />

er Programme und Tools, die in der jeweiligen<br />

<strong>Magazin</strong>-Ausgabe getestet und<br />

besprochen werden. Zudem gibt es von<br />

der Redaktion besonders empfohlene<br />

Software – alles gebündelt unter einer<br />

HTML-Oberfläche.<br />

Von der ersten Seite bootet Skolelinux,<br />

wer den Silberling umdreht und mit dem<br />

Browser darauf zugreift, findet ein HTML-<br />

Menü mit exklusiven Inhalten.<br />

Skolelinux und Video mit<br />

Klaus Knopper<br />

Ideal für Bildungseinrichtungen und<br />

Schulen ist Skolelinux. Die auch als<br />

Debian Edu bezeichnete Distribution<br />

will es auch Personen mit eher geringen<br />

Kenntnissen in der Administration<br />

ermöglichen, ganze Rechnerpools aufzubauen<br />

und zu verwalten – und eignet<br />

sich deshalb nicht nur für den Einsatz in<br />

der Weiterbildung. Die neueste Version<br />

basiert auf Debian Squeeze<br />

und installiert zahlreiche<br />

Bildungsprogramme von<br />

Celestia bis Dr. Geo auf dem<br />

KDE-, Gnome- oder LXDE-<br />

Desktop. Admins nutzen<br />

Profi-Tools wie Gosa 2 oder<br />

LWAT für die integrierte<br />

LDAP-Verwaltung.<br />

Ebenfalls exklusiv auf der<br />

DVD ist der zweite Eintrag<br />

im HTML-Menü: Klaus<br />

Knoppers Vortrag auf der<br />

Cebit als Video mit allen<br />

Folien seiner Präsentation.<br />

Wer Mr. Knoppix im Live-<br />

Stream verpasst hat, findet das Video auf<br />

der DELUG-DVD (Abbildung 1).<br />

Exklusiv: Fedora-Pulp<br />

Softwareverteilung à la Red Hat, das<br />

erledigt das Pulp-Projekt. Weil die im<br />

Artikel in der Titelstrecke beschriebene<br />

Servereinrichtung so manchen Fallstrick<br />

Abbildung 2: Mehr als eine Insel und komplett als<br />

E-Book auf der DELUG-DVD: Galileos „Java 7“ von<br />

Christian Ullenboom.<br />

Abbildung 1: Klaus Knopper erklärt die Features seiner neuen<br />

Knoppix-Version 7 exklusiv im Video vom Cebit Open Source Forum.<br />

bereithält, haben die Autoren des <strong>Linux</strong>-<br />

<strong>Magazin</strong>s eine virtuelle Maschine gebaut,<br />

in der ein Pulp-Server bereits vorbereitet<br />

ist, den Anwender zum einfachen Testen<br />

für das eigene Szenario verwenden<br />

können. Die virtuelle Maschine versorgt<br />

RHEL-, Fedora und Centos-Systeme mit<br />

ausgewählten RPM-Paketen, wodurch<br />

Admins auf allen beteiligten Systemen<br />

einen einheitlichen Softwarestand gewährleisten.<br />

E-Book „Java 7“<br />

Damit nicht genug, neben Software und<br />

Skripten aus dem Titelthema „Automatisieren“,<br />

den Tooltipps, der Bitparade und<br />

anderen Artikeln findet sich auf der DVD<br />

auch die brandneue Version 3.5.1 von<br />

Libre Office mit zahlreichen Bugfixes und<br />

Verbesserungen beim Import und Export<br />

von Visio- und Powerpoint-Dateien. Wem<br />

das noch nicht reicht, der schnappt sich<br />

das komplette E-Book „Java 7 – Mehr<br />

als eine Insel“ von Christian Ullenboom<br />

(Abbildung 2). In gedruckter Form kostet<br />

dieses Buch 50 Euro, DELUG-Abonnenten<br />

erhalten es einfach so.<br />

n


Software<br />

www.linux-magazin.de Bitparade 05/2012<br />

52<br />

HTML-Dateien validieren und bereinigen<br />

Der Dreck soll weg<br />

Die vier Testkandidaten helfen Webentwicklern dabei, HTML-Dokumente auf Standardkonformität hin zu prüfen.<br />

Die Saubermacher können aber nicht nur den Code validieren, sondern auch erlaubte, aber unerwünschte<br />

Elemente aufspüren und entfernen. Florian Effenberger<br />

© Mikhail Kokhanchikov, 123RF<br />

Früher war das Leben viel einfacher –<br />

Kompendien wie Self-HTML [1] deckten<br />

auf einer überschaubaren Seitenzahl so<br />

ziemlich alles ab, was das Webprogrammiererherz<br />

begehrte. Heute ist das Netz<br />

interaktiver und vielseitiger, aber auch<br />

komplizierter und gefährlicher. Das „eine<br />

HTML“ gibt es schon lange nicht mehr,<br />

stattdessen existiert ein Vielzahl von Versionen<br />

[2]. HTML 4.01, XHTML und das<br />

aktuelle HTML 5 sind nur einige davon;<br />

hinzu kommen Varianten wie Strict oder<br />

Transitional, garniert durch CSS-Dateien<br />

in mehreren Spielarten.<br />

Kurz vor dem 20. Geburtstag von HTML<br />

ist das Durcheinander dank neuer Versionen,<br />

Varianten und Elemente perfekt.<br />

Valide und sichere Dokumente zu erzeugen<br />

ist inzwischen alles andere als<br />

einfach. Contentmanagement-Systeme<br />

und Wysiwyg-HTML-Editoren helfen,<br />

dennoch bringt der prüfende Blick auf<br />

den Code meist Überflüssiges und echte<br />

Fehler zum Vorschein. Betreiber von<br />

Blogs und Foren stehen vor einem weiteren<br />

Problem: Oft sollen bestimmte Teile<br />

gar nicht erst im Quelltext auftauchen,<br />

beispielsweise um Bilder und interaktive<br />

Inhalte zu filtern.<br />

Vier Tools helfen dabei, den eigenen Code<br />

zu prüfen und zu bereinigen. HTML Tidy<br />

[3] und der Total Validator [4] treten im<br />

Test als Vertreter der klassischen Validierungstools<br />

an. Der HTML Purifier [5]<br />

und das darauf aufbauende HTM Lawed<br />

[6] sind PHP-basierte Bibliotheken, die<br />

HTML-Code besonders für Foren und<br />

Blogs bereinigen.<br />

E HTML Tidy<br />

Den Auftakt macht eines der bekanntesten<br />

Tools, das in vielen Kreisen neben<br />

dem offiziellen W3C-Validator [7]<br />

als Referenz gilt. Das unter der MIT-<br />

Lizenz veröffentlichte und mittlerweile<br />

als Sourceforge-Projekt entwickelte Programm<br />

ist als Stand-alone-Variante sowie<br />

als Bibliothek im Angebot. Letztere<br />

steht Software-Entwicklern bei, die ihre<br />

eigenen Anwendungen um eine HTML-<br />

Validierungsfunktion erweitern oder dem<br />

Original eine grafische Oberfläche spendieren<br />

möchten. HTML Tidy selbst arbeitet<br />

auf der Kommandozeile und bietet<br />

dazu sehr strukturierte und übersichtliche<br />

Aufrufoptionen.<br />

Der Klassiker unter den Validatoren unterstützt<br />

alle gängigen HTML-Varianten<br />

bis einschließlich Version 4.01, XHTML<br />

und mit Einschränkungen auch XML.<br />

Das noch recht neue HTML 5 findet keine<br />

Beachtung (Abbildung 1), was nicht weiter<br />

verwundert, stammt doch die letzte<br />

Relase vom März 2009.<br />

HTML Tidy ist Bestandteil vieler Distributionen;<br />

Anwender installieren das<br />

entsprechende Paket aus den üblichen<br />

Repositories. Es punktet mit zahlreichen<br />

Funktionen, korrigiert mangelhafte Elemente<br />

nach Möglichkeit beziehungsweise<br />

ergänzt Fehlendes und gibt kurze Erläuterungen<br />

zu den kritisierten Codestellen.<br />

Eine farbliche Hervorhebung des Quelltextes<br />

findet auf der Shell nicht statt, aber<br />

die Ausgabe von Zeile und Spalte hilft bei<br />

der Orientierung.<br />

Das Tool ist grundsätzlich auf lokale Dateien<br />

angewiesen und akzeptiert keine<br />

URLs als Quellen beim Aufruf. Es bietet<br />

viele Optionen, um den Quelltext zu optimieren<br />

und zu formatieren (»pretty print«,<br />

Abbildung 2). So rückt der Parameter »‐i«<br />

automatisch ein, »‐w« fügt Zeilenumbrüche<br />

hinzu und »‐u« setzt alle Tags konsequent<br />

in Großbuchstaben. Auch beliebte<br />

Flüchtigkeitsfehler, etwa ungültige Quotezeichen<br />

(»‐b«), Backslashes (»‐‐fix‐backslash<br />

yes«) und Sonderzeichen in URLs


HTML Tidy untersucht mit »‐access« die<br />

Barrierefreiheit der Dateien und fordert<br />

etwa »ALT«-Tags für Bilder ein. Grafiken<br />

dürfen zudem nicht nur aus Platzhaltern,<br />

Namen oder Größenangabe bestehen.<br />

Ähnliches gilt für eingebundene Applets<br />

oder Audiodateien. Das Tool beschwert<br />

sich auch über einen unzureichenden<br />

Farbkontrast zwischen Vorder- und Hintergrund<br />

und fehlende Noscript-Varianten<br />

in den Script-Sektionen.<br />

HTML Tidy hält Entwickler<br />

dazu an, auf indirekte<br />

Formatierung zu setzen<br />

(zum Beispiel Header-<br />

Auszeichnung statt großer<br />

Schriftart) und die Sprache<br />

des Dokuments zu kennzeichnen.<br />

Alle Kriterien<br />

samt Erklärungen und Testdateien<br />

finden Interessierte<br />

unter [8].<br />

Fehlermeldungen schreibt<br />

das Tool mit »‐f« und korrigierte<br />

Dokumente<br />

mit »‐o« in separate<br />

Dateien. Alternativ<br />

landen sie direkt auf<br />

der Konsole. Einziger<br />

Wermutstropfen ist,<br />

dass die Anwender<br />

HTML Tidy nur eingeschränkt<br />

um eigene<br />

Tags erweitern dürfen,<br />

und dies auch nur für<br />

den Body der Dokumente.<br />

Den Header<br />

der Dateien fasst das<br />

Tool nicht an.<br />

HTML-Dateien konvertiert<br />

es mit dem<br />

Abbildung 1: Das noch recht neue Format HTML 5 versteht HTML Tidy in der<br />

derzeitigen Programmversion noch nicht. Die neuen Tags erkennt es nicht Parameter »‐asxhtml«<br />

und wirft entsprechend mit Fehlermeldungen um sich.<br />

nach XHTML; in die<br />

umgekehrte Richtung<br />

(»‐‐fix‐uri yes«), korrigiert das Tool bis zu führt die Option »‐ashtml«. Anwender,<br />

einem gewissen Grad.<br />

die nicht jedes Mal einen Rattenschwanz<br />

Darüber hinaus konvertiert es Dokumente von Aufrufoptionen übergeben möchten,<br />

in gängige Zeichensätze (zum Beispiel speichern ihre Einstellungen in einer frei<br />

mit »‐latin0«) und entfernt proprietäre wählbaren Konfigurationsdatei. In dieser<br />

Elemente (»‐‐drop‐proprietary‐attributes«)<br />

sowie Kommentare (»‐‐hide‐com-<br />

stehen:<br />

können etwa Einträge wie die folgenden<br />

ments yes«). Auf Wunsch überführt<br />

fix‐backslash: yes<br />

HTML Tidy bestimmte HTML-Elemente fix‐uri: yes<br />

in CSS-Tags (»‐c«).<br />

hide‐comments: yes<br />

Augen auf!<br />

accessibility‐check: 0<br />

show‐warnings: yes<br />

Die Webseite [9] listet alle Möglichkeiten<br />

mit Beispielen und den Standardwerten<br />

auf. Die Einrichtungsdatei übergeben Anwender<br />

anschließend über »‐config«.<br />

E Total Validator Basic<br />

In einer ähnlichen Liga spielt der zweite<br />

Testkandidat. Genau wie HTML Tidy<br />

spricht der Total Validator zwar auch nur<br />

Englisch, bietet dafür aber ein komfortables<br />

GUI. Dabei handelt es sich um<br />

eine betriebssystemunabhängige Java-<br />

Applikation, die unter einer proprietären<br />

Lizenz steht. Neben der getesteten<br />

kostenlosen Basic-Version gibt es eine<br />

kostenpflichtige Pro-Version, die mit 30<br />

Euro zu Buche schlägt. Sie bietet einige<br />

zusätzliche Funktionen, etwa CSS-Validierung<br />

nach W3C-Standard, verschiedene<br />

Konfigurationsprofile, den Ausschluss<br />

einzelner Abschnitte einer Seite,<br />

die Überprüfung von 404-Fehlerseiten,<br />

ein Wörterbuch-Feature und den Test<br />

pass wortgeschützter Seiten.<br />

Zusätzlich gibt es ein unter der Mozilla<br />

Public License veröffentlichtes Firefox-<br />

Addon [10], das Webseiten direkt aus<br />

dem Browser heraus prüft. Das klappt<br />

mit lokalen Dateien und mit URLs, funktionierte<br />

im Test aber nicht ganz fehlerfrei.<br />

Beim Browserstart verschwand auf<br />

einmal die Extension, nur ein Profil-Reset<br />

und die anschließende Neuinstallation<br />

behoben das Problem. Der Bug tauchte<br />

auf einem zweiten Testgerät jedoch nicht<br />

auf, daher ist möglicherweise ein defektes<br />

Profil des Nutzers für diese Panne<br />

verantwortlich.<br />

Auch ohne fertig gepackte Pakete geht<br />

die Installation auf gängigen <strong>Linux</strong>-<br />

Distributionen leicht von der Hand. Anwender<br />

laden die Java-Anwendung von<br />

[4] herunter, entpacken das Archiv und<br />

starten das Programm über den Befehl<br />

»java ‐jar totalvalidator.jar«. Alternativ<br />

übernimmt das die Firefox-Erweiterung,<br />

die vom Anwender vorher den korrekten<br />

Pfad zur Java-Datei wissen möchte (siehe<br />

Abbildung 3).<br />

Egal für welchen Weg sich der Entwickler<br />

entscheidet, in beiden Fällen erfolgt die<br />

Ausgabe der eigentlichen Validierung im<br />

Browser. Er zeigt eine Zusammenfassung<br />

Abbildung 2: HTML Tidy unterstützt Webentwickler bei der Formatierung des Quellcodes. Im Gegensatz zur Originaldatei (links)<br />

präsentiert sich die bearbeitete Datei (rechts) deutlich besser lesbar.<br />

Bitparade 05/2012<br />

Software<br />

www.linux-magazin.de<br />

53


Software<br />

www.linux-magazin.de Bitparade 05/2012<br />

54<br />

Abbildung 3: Das Firefox-Addon übernimmt auf Wunsch den Start der<br />

eigentlichen Anwendung. Dazu tragen Anwender den Pfad zum Binary ins<br />

Feld »Tool« ein.<br />

der Kriterien und Testergebnisse an sowie<br />

zusätzlich eine Seite mit detaillierteren<br />

Informationen. Verschiedene Profile<br />

kennt die kostenlose Variante des Tools<br />

nicht. Anwender können lediglich die<br />

aktuelle Konfiguration im Einstellungsdialog<br />

speichern.<br />

Kein kalter Kaffee<br />

Am Funktionsumfang gibt es nichts auszusetzen.<br />

Der Total Validator unterstützt<br />

HTML in den Versionen 2.0 und 3.2, zudem<br />

die Versionen 4.0 und 4.01 – letztere<br />

jeweils in den Varianten Frameset,<br />

Transitional und Strict. Auch HTML 5<br />

und XHTML sind im Angebot sowie eine<br />

Vielzahl weiterer Spielarten inklusive automatischer<br />

Formaterkennung, weshalb<br />

sich die fehlende Möglichkeit, eigene<br />

Tags zu ergänzen, verschmerzen lässt.<br />

Auch der zweite Testkandidat legt Wert<br />

auf Barrierefreiheit und richtet sich dabei<br />

wahlweise nach den „W3C Web Content<br />

Accessibility Guidelines“ [11] oder den<br />

US-Regelungen nach Section 508 des Rehabilitation<br />

Act [12].<br />

Total Validator konzentriert sich hauptsächlich<br />

darauf, Fehler zu finden, sie<br />

automatisch zu korrigieren ist nicht vorgesehen.<br />

Den Quelltext rückt das Tool<br />

zur besseren Lesbarkeit automatisch ein.<br />

Es nummeriert auch die Zeilen und hebt<br />

die Fehlerposition farbig hervor. Zudem<br />

unterscheidet es zwischen echten Fehlern<br />

und Warnungen und versieht die<br />

Ausgabe mit kurzen Erläuterungen (siehe<br />

Abbildung 4). Die Navigation zwischen<br />

den einzelnen Meldungen geschieht mit<br />

Hilfe von Links.<br />

Gut gefallen hat den<br />

Testern zudem der integrierte<br />

Linkchecker,<br />

der auch in der kostenfreien<br />

Basic-Version<br />

des Programms zur<br />

Verfügung steht. Das<br />

Feature durchforstet<br />

die HTML-Seiten nach<br />

veralteten oder nicht<br />

erreichbaren Verknüpfungen<br />

und erspart<br />

dem Programmierer<br />

diese doch recht mühsame<br />

Klickaufgabe.<br />

Eine Rechtschreibprüfung<br />

für Deutsch,<br />

Englisch, Französisch, Italienisch und<br />

Spanisch rundet das Bild ab.<br />

E HTML Purifier<br />

Die nächsten beiden Kandidaten sind<br />

PHP-Bibliotheken. Der englischsprachige<br />

HTML Purifier ist unter der LGPL<br />

lizenziert und beherrscht die Standards<br />

XHTML 1.0 und HTML 4.01, jeweils in<br />

den Varianten Transitional und Strict, sowie<br />

XHTML 1.1. Die Library ist primär<br />

zum Einbinden in eigene PHP-Skripte gedacht.<br />

So würde Listing 1 beispielsweise<br />

das Dokument automatisch mit Paragraphen<br />

versehen. Für erste Tests enthält<br />

die Webseite ein Beispielformular, in<br />

dem Anwender einige Optionen direkt<br />

per Copy & Paste ausprobieren können<br />

(siehe Abbildung 5).<br />

Bei diesem Testkandidaten stehen genau<br />

wie beim folgenden die Blogs und Foren<br />

ganz oben auf der Liste der möglichen<br />

Einsatzgebiete. Die eigentliche Validierung<br />

des Quellcodes ist eher zweitrangig,<br />

das Erzeugen von sicherem und übersichtlichen<br />

Code steht im Vordergrund.<br />

Zwar entfernt auch dieses Tidy-Modul<br />

ungültige, alte oder im gewählten Dokumentstandard<br />

nicht mehr unterstützte<br />

Tags (»HTML.TidyLevel«) und erläutert<br />

sie auf Wunsch samt genauer Positionsangabe<br />

(»Core.CollectErrors«), die Funktion<br />

ist aber als experimentell gekennzeichnet<br />

und funktionierte beim Test mit<br />

eigenen PHP-Skripten nicht.<br />

Barrierefreiheit ist ein Fremdwort für den<br />

HTML Purifier, und die Bibliothek verifiziert<br />

auch keine Header. Der Fokus<br />

liegt stattdessen auf dem Seiteninhalt,<br />

den sie um möglicherweise schadhafte<br />

Abbildung 4: Der Total Validator erkennt auch ungültige Links. Das Tool hebt Fehler deutlich hervor und<br />

versieht sie sogar mit Erklärungen für den Webentwickler.


Elemente zu bereinigen versucht, um potenzielle<br />

Sicherheitslücken zu schließen.<br />

Dazu gehören etwa »Object«, »Iframe«<br />

oder »Embed«.<br />

Sag’s mit PHP<br />

Die Dokumentation auf der Webseite des<br />

Projekts empfiehlt, keine anderen Zeichensätze<br />

als UTF-8 einzusetzen. Die<br />

recht ausführliche Anleitung enthält außerdem<br />

detaillierte Beschreibungen der<br />

einzelnen Konfigurationsdirektiven und<br />

erläutert, welche Sprachelemente HTML<br />

Purifier unterstützt. Webentwickler finden<br />

hier auch Tipps, wie sie trotz strenger<br />

Filterregeln Filme aus Videoportalen<br />

wie Youtube einbinden und wie der URL-<br />

Filter funktioniert. Es ist darüber hinaus<br />

möglich, die Bibliothek um eigene Elemente<br />

zu erweitern.<br />

Anhand zahlreicher Konfigurationsdirektiven<br />

legen Anwender in einer Blackund<br />

Whitelist fest, was im Code erlaubt<br />

sein soll und was nicht. Auch den Inhalt<br />

einzelner Elemente dürfen sie festlegen.<br />

So geben sie beispielsweise grünes Licht<br />

für Attribute wie Class (»Attr.Allowed-<br />

Classes«) und Rel (»Attr.AllowedRel«),<br />

für Frame-Targets (»Attr.AllowedFrame-<br />

Targets«) und Kommentare (»HTML.AllowedComments«).<br />

Auch die verlinkten<br />

Protokolle (»URI.AllowedSchemes«), die<br />

Maximalgröße von Bildern (»HTML.MaxImgLength«)<br />

und ein automatisches Alt-<br />

Tag dürfen sie vorgeben.<br />

Für einen einfachen Einstieg empfiehlt<br />

es sich, alle externen eingebundenen Objekte<br />

(»URI.DisableExternalResources«)<br />

oder Links zu externen Seiten zu deaktivieren<br />

(»URI.DisableExternal«). Die Dokumentation<br />

liefert etliche Beispiele mit,<br />

wie Anwender detaillierte Listen erstellen.<br />

Der folgende Konfigurationseintrag<br />

erlaubt beispielsweise nur die Elemente<br />

»h1«, »h2«, »p« und »br«:<br />

$config‐>set('HTML.Allowed', 'h1,h2,p,br');<br />

Auch Einstellungen zum Escapen sind<br />

vorhanden (zum Beispiel »Core.Escape-<br />

NonASCIICharacters«). Die Anweisung<br />

»AutoFormat.RemoveEmpty« gliedert<br />

automatisch und entfernt überflüssigen<br />

Code wie etwa »«. Selbst<br />

eine Direktive, die Flash-Inhalten das<br />

Umschalten in den Vollbildmodus verbietet,<br />

ist vorhanden (»HTML.FlashAllowFullScreen«).<br />

Gut gefallen im Test hat<br />

auch, dass HTML Purifier Funktionen<br />

zum Überprüfen von CSS-Elementen enthält.<br />

Das geht bis zur Definition erlaubter<br />

Schriftarten (»CSS.AllowedFonts«).<br />

Insgesamt macht das Tool einen runden<br />

Eindruck und hält, was die gute Dokumentation<br />

verspricht.<br />

Bitparade 05/2012<br />

Software<br />

www.linux-magazin.de<br />

55<br />

E HTM Lawed<br />

Den vierten Kandidaten beschreiben seine<br />

Entwickler als Alternative zum HTML<br />

Purifier. Auch das LGPL-lizenzierte HTM<br />

Lawed ist eine PHP-Bibliothek, deren primäre<br />

Aufgabe darin besteht, Code für<br />

Blogs oder Foren zu optimieren. Neben<br />

der Korrektur ungültiger Elemente liegt<br />

der Schwerpunkt auf dem Herausfiltern<br />

unerwünschter Inhalte. Das Tool entfernt<br />

ebenfalls gezielt Designelemente und sichert<br />

Seiten gegen mögliche Sicherheitslücken<br />

ab.<br />

Zusätzlich bringt die Library Funktionen<br />

mit, um den Quelltext zu optimieren<br />

(»Beautify and Compact«) und Codeelemente<br />

einzurücken. Den Anwender<br />

Listing 1: HTML Purifier im Einsatz<br />

01


Software<br />

www.linux-magazin.de Bitparade 05/2012<br />

56<br />

01 'title'«<br />

verbietet beispielsweise lediglich das<br />

gleichnamige Attribut, die Direktive<br />

02 include('htmLawed.php');<br />

Listing 2: HTM-Lawed-Beispiel<br />

03 $input='Dieser<br />

Text verlinkt auf eine Mailadresse';<br />

04 $config=array('anti_mail_spam'=>' kringelchen ');<br />

05 $output=htmLawed($input,$config);<br />

06 ?><br />

Abbildung 6: HTM Lawed bietet neben der PHP-Bibliothek auch eine einfache Browseranwendung. Hier setzen<br />

Anwender viele Optionen per Mausklick und geben ihren Quellcode per Copy & Paste ein.<br />

»deny_attribute=>'* ‐title'« hingegen<br />

lässt alle Attribute außer »title«<br />

zu. Elemente wie beispielsweise »on-<br />

MouseOver« und »onClick« oder Links<br />

entfernt dagegen die Direktive »deny_<br />

attribute=>'on*,href'«. HTM Lawed<br />

korrigiert zudem häufige Fehler, etwa<br />

fehlende Abschluss-Tags oder nicht gesetzte<br />

Attribute. Alte Elemente, die nicht<br />

dem gewählten Standard entsprechen,<br />

korrigiert oder ersetzt die Bibliothek –<br />

wenn möglich. Gleiches gilt für überflüssige<br />

Kommentare.<br />

Die Library kommt mit fertigen Konfigurationsdirektiven<br />

wie etwa »safe=>1«.<br />

Diese aktiviert eine sinnvolle Vorauswahl<br />

von Tags, die das Tool filtern soll, darunter<br />

Skripte und externe Objekte, sodass Webentwickler<br />

nicht zwingend eine eigene<br />

Liste erstellen müssen. Was vom Code<br />

übrig bleibt, kann HTM Lawed zudem ordentlich<br />

verpacken und achtet dabei auf<br />

entsprechendes Quoting und Escaping.<br />

Über »hexdec_entity=>2« konvertiert es<br />

dabei sogar HTML-Entities in Dezimaloder<br />

Hexadezimalschreibweise.<br />

Überzeugend sind auch die Antispam-<br />

Maßnahmen für Mailadressen. Neben der<br />

schon gezeigten Funktion aus Listing 2<br />

bietet HTM Lawed an, mittels »"anti_link_<br />

spam" = array('`.`', '');« für einzelne<br />

oder alle Links das »nofollow«-Attribut<br />

zu setzen. Es sorgt dafür, dass Suchmaschinen<br />

den Verknüpfungen nicht folgen,<br />

und erschwert so genannten Link-Spammern<br />

damit das Leben. Darüber hinaus<br />

gibt es die Möglichkeit, absolute Links in<br />

relative umzuwandeln und umgekehrt.<br />

Anwender verbieten auch bestimmte<br />

Protokolle. So lässt »schemes=>'href:<br />

https'« beispielsweise nur die Verknüpfung<br />

zu SSL-Hosts zu.<br />

Die Bibliothek konvertiert keine Zeichensätze<br />

und sieht auch keine Anordnung<br />

von Attributen oder deren genaue Syntaxprüfung<br />

vor. Ebenso wenig entfernt sie<br />

unnützen Code wie etwa nicht benötigte<br />

Tags. Die Entwickler begründen die Entscheidung<br />

in der Dokumentation damit,<br />

dass dies weder die Anzeige im Browser<br />

beeinflusse noch Sicherheitslücken öffne.<br />

In der Voreinstellung unterscheidet das<br />

Tool bereits zwischen sicheren und unsicheren<br />

Elementen.<br />

Wer diesen sinnvoll gewählten Standard<br />

anpassen möchte, kann eigene Ergänzungen<br />

vornehmen, indem er nach dem<br />

Durchlauf eigene Routinen aufruft. Dazu


kann HTM Lawed seine Ergebnisse an<br />

eine selbst geschriebene PHP-Funktion<br />

übergeben.<br />

Hand in Hand<br />

Ein Tool, sie zu knechten, sie alle zu<br />

finden – das suchen Webentwickler vergeblich.<br />

Keiner der Testkandidaten erfüllt<br />

alle Wünsche und meistert alle Aufgaben.<br />

HTML Tidy und der Total Validator<br />

konzentrieren sich ganz aufs Validieren,<br />

HTML Purifier und HTM Lawed<br />

auf Sicherheit und Sauberkeit im Code.<br />

Total Validator hat in der ersten Paarung<br />

leicht die Nase vorn, bietet das Tool doch<br />

HTML-5-Support und mehr Komfort mit<br />

seinem GUI. Punktabzug gibt es nur für<br />

ein paar fehlende Funktionen in der kostenlosen<br />

Basic-Variante – ein Problem,<br />

das Anwender mit 30 Euro aus der Welt<br />

schaffen.<br />

Im direkten Vergleich zwischen HTML<br />

Purifier und HTM Lawed offenbaren sich<br />

unterschiedliche Features. Anwender<br />

sollten je nach Einsatzzweck entscheiden,<br />

welcher Bibliothek sie den Vorzug<br />

geben. Beide sind äußerst gut dokumentiert<br />

und zeigen in Beispielen auf ihren<br />

Webseiten, was sie können.<br />

Sauberen Code schreiben bleibt auch mit<br />

Hilfsmitteln eine Herausforderung, und<br />

je komplexer das Quellmaterial ist, umso<br />

wahrscheinlicher übersieht ein Tidy-Tool<br />

etwas oder kennzeichnet ein eigentlich<br />

gültiges Konstrukt als falsch. Im Zweifel<br />

empfiehlt sich eine Kooperation mehrerer<br />

Werkzeuge, um bestmögliche Ergebnisse<br />

zu erzielen. (hej)<br />

n<br />

Infos<br />

[1] Self-HTML: [http:// de. selfhtml. org]<br />

[2] Wikipedia-Übersicht zu HTML:<br />

[http:// de. wikipedia. org/ wiki/ HTML]<br />

[3] HTML Tidy: [http:// tidy. sourceforge. net]<br />

[4] Total Validator:<br />

[http:// www. totalvalidator. com]<br />

[5] HTML Purifier: [http:// htmlpurifier. org]<br />

[6] HTM Lawed:<br />

[http:// www. bioinformatics. org/​<br />

phplabware/ internal_utilities/ htmLawed]<br />

[7] W3C-Validator: [http:// validator. w3. org]<br />

[8] HTML Tidy, Barrierefreiheit: [http:// www.​<br />

aprompt. ca/ Tidy/ accessibilitychecks. html]<br />

[9] HTML-Tidy-Konfigurationsoptionen: [http://​<br />

tidy. sourceforge. net/ docs/ quickref. html]<br />

[10] Total Validator für Firefox:<br />

[https:// addons. mozilla. org/ firefox/ addon/​<br />

total‐validator]<br />

[11] Barrierefreiheits-Richtlinien nach WCAG:<br />

[http:// www. w3. org/ WAI/ intro/ wcag# is]<br />

[12] Rehabilitation Act, Abschnitt 508:<br />

[http:// www. section508. gov]<br />

Der Autor<br />

Florian Effenberger engagiert sich seit vielen<br />

Jahren für freie Software und ist Chairman im<br />

Board der Document Foundation. Er schreibt regelmäßig<br />

für zahlreiche deutsch- und englischsprachige<br />

Fachpublikationen und beschäftigt sich<br />

dabei auch mit rechtlichen Fragestellungen.<br />

Bitparade 05/2012<br />

Software<br />

www.linux-magazin.de<br />

57<br />

Digitales aBO<br />

linuxUser: Das Monatsmagazin für die Praxis<br />

DigisUB *<br />

nur 56,10 €<br />

im Jahr (12 PDFs)<br />

* Digitales Abo, jederzeit kündbar<br />

Jetzt Bestellen Unter:<br />

www.linux-user.de/digisub<br />

Telefon: 07131 /2707 274<br />

Fax: 07131 / 2707 78 601<br />

E-Mail: abo@linux-user.de


Software<br />

www.linux-magazin.de Aftershot 05/2012<br />

58<br />

Bildbearbeitung: Corel Aftershot im Praxisvergleich mit freien Tools<br />

Nach dem Schuss<br />

Weißabgleich, Farbrauschen, Pixelfehler, Vignettierung, chromatische Aberration und das Tausend-Bilder-Archiv:<br />

Nach dem Druck auf den Auslöser fangen die Probleme des Fotografen oft erst an. Altmeister Corel wirft<br />

jetzt mit Aftershot ein proprietäres Tool ins Rennen mit Gimp, Rawtherapee und Digikam. Fritz Reichmann, Markus Feilner<br />

© Fritz Reichmann<br />

Abbildung 1: Objektiv-, Farb-, Kontrast- und Pixelfehler sind beseitigt: Ein nächtliches Gewitter, vom Dach<br />

eines Wohnhauses aufgenommen und mit den Tools aus dem Artikel optimiert.<br />

Raw-Fotobearbeitung, Fehlerkorrektur<br />

und Bildarchivierung – für jede dieser<br />

Aufgaben gibt es unter <strong>Linux</strong> hochspezialisierte<br />

Softwarelösungen, zu denen sich<br />

seit Kurzem auch Corels Aftershot Pro<br />

[1] gesellt. Die kostenpflichtige Lösung<br />

(siehe Kasten „Corel Aftershot Pro“)<br />

will aber den kompletten Workflow abdecken<br />

und basiert auf dem populären<br />

Vorgänger Bibble. Corel hat im Jahr 2011<br />

dessen Hersteller Bibble Labs übernommen<br />

[2] und den Namen geändert.<br />

Gimp, Rawtherapee,<br />

Digikam<br />

Aftershots großer Funktionsumfang lässt<br />

sich auf Open Source am ehesten mit<br />

dem Repertoire von Digikam [3], UF Raw<br />

[4], Rawtherapee [5] und Gimp [6] vergleichen.<br />

Im Gegensatz zu Aftershot, das<br />

eine Art eierlegende Wollmilchsau sein<br />

will, fokussiert sich die Konkurrenz aber<br />

auf einzelne Aufgaben und hat sich bislang<br />

damit gut ins Bild gesetzt.<br />

Für den Vergleich in diesem Artikel dient<br />

ein kompliziert zu optimierendes Foto als<br />

Vorlage, das einen guten Überblick über<br />

die typischerweise notwendigen Handgriffe<br />

in der digitalen Dunkelkammer<br />

zeigt. Anhand dieses Bildes haben die<br />

Tester des <strong>Linux</strong>-<strong>Magazin</strong>s mit den unterschiedlichen<br />

Tools versucht ein besseres<br />

Ergebnis (Abbildung 1) zu erreichen,<br />

als dies die Standardeinstellungen (siehe<br />

Abbildung 2) erlauben.<br />

Fehler, Fehler, Fehler<br />

Wer immer perfekte Bilder schießt, kann<br />

natürlich auf jede Nachbearbeitung verzichten.<br />

Doch realistisch ist das nicht.<br />

Bei der Aufnahme legt der Fotograf mit<br />

Motiv, Bildaufbau, Blickwinkel, Licht-,<br />

Farb- und Schärfeverlauf die wesentlichen<br />

Merkmale eines Fotos fest. Dennoch<br />

gelingt eine gute Aufnahme, besonders<br />

unter schwierigen Bedingungen, selten<br />

auf Anhieb perfekt.<br />

Korrekturen, die Fotoprofis in der analogen<br />

Ära nur mit Chemikalien im Labor<br />

erreichen konnten, lassen sich heute<br />

spielerisch am Rechner und deutlich<br />

umfangreicher umsetzen. Dazu gehören<br />

Verbesserungen an der Aufnahme selbst,<br />

zum Beispiel bei Weißabgleich, Kontrast<br />

und Ausschnitt, aber auch Korrekturen<br />

von technischen Fehlern der Kamera, des<br />

Bildrauschens, der Pixelfehler, der Bildschärfe<br />

oder der chromatischen Aberration<br />

und Vignettierung des Objektivs.<br />

Sensor und Objektiv<br />

Bildrauschen und Pixelfehler entstehen<br />

im Bildsensor. Die chromatische Aberration<br />

wird durch die von der Wellenlänge<br />

des Lichts abhängigen Brechungseigenschaften<br />

der Linsen verursacht<br />

und führt zu Farbsäumen an scharfen<br />

Helligkeitskontrasten. Die Vignettierung<br />

ist ebenfalls ein Objektivfehler und bezeichnet<br />

Unterschiede des Objektivs in<br />

der Helligkeitsverteilung zwischen der<br />

Bildmitte und dem Rand. Üblicherweise<br />

ist die Bildmitte heller belichtet. Korrekturen<br />

daran finden sich vor allem in der<br />

oberen rechten Ecke von Abbildung 1 im<br />

Vergleich zu Abbildung 2.<br />

Die optische Qualität der Linse beschränkt<br />

auch die Bildschärfe. Objektivfehler sind<br />

gerade bei preisgünstigen Linsen größer<br />

als bei teuren und sie werden bei sehr<br />

großen und sehr kleinen Blendenöffnungen<br />

deutlicher sichtbar.<br />

Als Testbild für die Entwicklung aus<br />

dem Rohformat dient eine Aufnahme bei


Abbildung 2: Das unbearbeitete Beispielfoto – mit Standardeinstellungen aus<br />

den Raw-Daten importiert – mit den Lichtspuren des Flugzeug.<br />

schwierige Beleuchtungssituation: Blitze<br />

im Gewitter einer Vollmondnacht über<br />

einer Stadt. Die Lichtquellen Vollmond<br />

(dem Sonnenlicht sehr ähnlich), Blitze<br />

(zufällig, grell und violett) und die Lichter<br />

der Stadt (warmes Kunstlicht) sind<br />

unterschiedlich in ihrer Dauer, Farbe und<br />

Vorhersagbarkeit. Es erscheint schlicht<br />

unmöglich, die Kamera bereits im Voraus<br />

korrekt einzustellen.<br />

Für die Aufnahme hat der Autor mit einem<br />

zeitgesteuerten Auslöser eine Reihe<br />

von Aufnahmen je eine halbe Minute<br />

lang belichtet. In dem Gewitter traten<br />

so viele Blitze auf, dass fast auf jeder<br />

Aufnahme einer zu sehen war. Es reichte<br />

ja, wenn es innerhalb der halben Minute<br />

irgendwann einmal blitzte. Die weiteren<br />

Einstellungen waren: ISO 200 (um trotz<br />

langer Belichtung das Bildrauschen unter<br />

Kontrolle zu behalten) und eine eher<br />

große Blende von 4,5 bei einer Brennweite<br />

von 18 mm.<br />

Der Autor korrigierte<br />

vor der Aufnahme<br />

die gemessene<br />

Belichtung<br />

etwas in Richtung<br />

Unterbelichtung, um noch Platz für die<br />

Beleuchtung durch die Blitze zu lassen.<br />

Von vornherein war klar, dass die Bilder<br />

bei vorher nicht genau bekannter Beleuchtung<br />

durch Blitze nur mit Nachbearbeitung<br />

in Belichtung, Ausschnitt und<br />

Weißabgleich wirklich wirken würden.<br />

Die Blitze bringen darüber hinaus scharfe<br />

Helligkeitsunterschiede, sodass an ihren<br />

Rändern Objektivfehler wie die chromatische<br />

Aberration sichtbar werden, besonders<br />

bei preisgünstigen Linsen.<br />

Hot Pixel, Dark Frames<br />

Corel Aftershot Pro<br />

Die lange Belichtungszeit in der Dunkelheit<br />

führt am Himmel zu Bildrauschen<br />

und den in jedem Bildsensor auftretenden<br />

so genannten Hot Pixeln. Letztere<br />

lassen sich technisch durch einen so genannten<br />

Dark Frame entschärfen. Das<br />

bedeutet, mit verschlossenem Objektiv<br />

bei gleicher Temperatur der Kamera und<br />

exakt den gleichen<br />

Belichtungswerten<br />

ein Foto ohne<br />

Mit 90 Euro Verkaufspreis scheint Aftershot Pro ein<br />

richtiges Schnäppchen. Konkurrent Adobe verlangt<br />

für sein Lightroom fast das dreifache (240 Euro). Aftershot<br />

unterstützt eine Vielzahl von Dateiformaten,<br />

unzählige Filter und Raw-Bearbeitungsmethoden und<br />

bringt eine komplette Archivierungsfunktion samt<br />

Schlagwortverwaltung und Suche (Abbildung 3) mit.<br />

Ebenfalls enthalten sind komplexe Rückgängig-Funktionen<br />

in der Bildbearbeitung sowie eine lange Liste an Objektiv- und<br />

Kamera-spezifischen Einstellungen für die Fehlerkorrektur.<br />

Lichteinfall zu schießen, am besten gleich<br />

direkt vor oder nach dem eigentlichen<br />

Foto mit unveränderten manuellen Einstellungen.<br />

So werden nur die elektrischen<br />

Fehler der Kamera aufgenommen,<br />

die sich anschließend aus dem eigentliche<br />

Bild herausrechnen lassen.<br />

Da die Aufnahmen in der Umgebung des<br />

Münchener Flughafens entstanden, sind<br />

auf einigen Aufnahmen störende Lichtspuren<br />

von Flugzeugen. Alles in allem<br />

also eine die Technik herausfordernde<br />

Lichtsituation, die gerade deshalb eine<br />

elektronische Korrektur erfordert.<br />

Installation und Integration<br />

Unter Open Suse 12.1 gestaltet sich die<br />

Installation von Aftershot Pro angenehm<br />

einfach: Das von der Webseite [1] geladene<br />

RPM für die Testversion installiert<br />

»zypper install AftershotPro_i386.rpm«.<br />

Wie der Test [7] zeigt, können auf älteren<br />

oder anderen Distributionen Probleme<br />

auftreten. Digikam, UF Raw und<br />

Rawtherapee sind als Open Source bei<br />

Suse und den meisten anderen Distributionen<br />

gut integriert und installieren sich<br />

wie erwartet ohne Probleme.<br />

Ähnlich wie in Digikam lassen sich in<br />

Aftershot Pro Verzeichnisse nach Bildern<br />

Aftershot 05/2012<br />

Software<br />

www.linux-magazin.de<br />

59<br />

Abbildung 3: Der Metadatenbrowser von Aftershot Pro ist umfangreich und<br />

bietet viele Möglichkeiten, nach Bildern im Archiv zu suchen.<br />

Abbildung 4: Die Oberfläche von Aftershot Pro ist klar aufgebaut und bietet<br />

zahlreiche Funktionen zur Fehlerkorrektur.


Software<br />

www.linux-magazin.de Aftershot 05/2012<br />

60<br />

Abbildung 5: Die störende Lichtspur eines Flugzeugs in Aftershot Pro. Die chromatische<br />

Aberration des Objektivs erzeugt Pixelfehler, ...<br />

Abbildung 6: ... deren Regenbogeneffekt dank der eingebauten Korrekturfilter<br />

auch Aftershot deutlich abmildern kann.<br />

Außerdem sind die Abbildungsfehler der<br />

populärsten Objektive als Werte bereits<br />

im Programm hinterlegt. Rawtherapee<br />

bietet im Menü ähnlich wie Aftershot<br />

Pro Schieberegler an, UF Raw nutzt transparent<br />

die Funktionalität von Hugin ([8],<br />

[9]) zur chromatischen Korrektur. Dazu<br />

bietet UF Raw mit einem direkten Zugriff<br />

auf die Abbildungsmodelle in Hugin einen<br />

flexiblen Einfluss. Das funktioniert<br />

und ist mächtig, erscheint jedoch in der<br />

Menüführung umständlicher als für die<br />

Standardaufgabe notwendig.<br />

Für die Korrektur der Vignettierung ist<br />

die Unterstützung ähnlich. Aftershot Pro<br />

bindet diese ebenfalls als Schieberegler<br />

ein (Abbildung 9), über die der Benutzer<br />

den Fehler beheben kann. UF Raw bietet<br />

direkten Einfluss auf das Linsenmodell<br />

von Hugin, durch Eingabe der Werte lässt<br />

sich die Vignettierung beseitigen. Aber<br />

die umfangreichsten Funktionen bringt<br />

mit Abstand Rawtherapee mit.<br />

Das Bildrauschen ist im Testbild trotz ISO<br />

200 sichtbar vorhanden (am deutlichsdurchsuchen,<br />

die ein Menübaum auf der<br />

linken Seite als kleine <strong>Vorschau</strong> anzeigt.<br />

Dabei kann der Fotograf Bilder bewerten<br />

und kategorisieren. In jedem Fall empfiehlt<br />

es sich, unabhängig vom verwendeten<br />

Programm die Bilder zumindest grob<br />

sortiert in Verzeichnissen zu halten. Nur<br />

Digikam bietet hier noch mehr Möglichkeiten,<br />

vor allem bei der Suche.<br />

Funktionsumfang<br />

Der Funktionsumfang aller Programme<br />

ist ausgesprochen erfreulich. Sie bieten<br />

Funktionen für Belichtungskorrektur,<br />

Weißabgleich, Kontrast und Sättigung,<br />

Verbesserung des Bildrauschens und<br />

Nachschärfen. Die Korrektur der Vignettierung<br />

und chromatischen Aberration ist<br />

in Aftershot besonders komfortabel integriert.<br />

Dafür fehlt in dieser kommerziellen<br />

Lösung die Option, einen Dark Frame<br />

einzubinden – für Langzeitbelichtungen<br />

ist das allerdings ein klarer professioneller<br />

Mangel.<br />

Für die Entwicklung eines Bildes im Rohformat<br />

ist unter Digikam ein Rechtsklick<br />

und die Auswahl des Eintrags »Öffnen<br />

mit UFRaw« erforderlich, während Aftershot<br />

die Entwicklung selbstständig<br />

und aus eigener Kraft erledigt.<br />

Die Belichtungskorrektur im Beispielbild<br />

erscheint zwar auf den ersten Blick<br />

nicht zwingend notwendig, doch schlagen<br />

alle Programme eine Aufhellung vor.<br />

Hier muss sich der Fotograf entscheiden:<br />

Nicht selten frisst dann die Helligkeit in<br />

der Umgebung des Blitzes dessen Struktur<br />

zu sehr auf. Um die Aufhellung feiner<br />

zu dosieren, lassen sich die Helligkeitswerte<br />

auch unterschiedlich einstellen,<br />

also dunklere Stellen mehr und hellere<br />

weniger – oder auch umgekehrt –, um<br />

den Kontrast zu erhöhen. Dazu bieten Aftershot<br />

Pro (Abbildung 4) mit »Perfectly<br />

Clear« und UF Raw Automatismen, die zu<br />

klarer wirkenden Bildern führen. Je nach<br />

Aufnahme passt die Automatik bereits<br />

gut, wenn nicht, kann der Anwender von<br />

Hand nachbessern.<br />

Farblich ist die bestimmende Lichtquelle<br />

im Bild der Vollmond, der auf die Wolken<br />

scheint. Der Himmel soll im satten<br />

Blau der klaren Nacht strahlen, die<br />

warmen Lichtquellen der Stadt dürfen<br />

einen rötlichen Kontrast bilden. Diese<br />

Bildwirkung erzeugt der Weißabgleich<br />

auf Sonnenlicht, denn der Mond selbst<br />

ist im Wesentlichen grau und von der<br />

Sonne beschienen. Die besonders heißen<br />

Blitze behalten einen ihrer hohen Temperatur<br />

entsprechenden violetten Saum.<br />

Alle Programme Aftershot, UF Raw und<br />

Rawtherapee beherrschen den Weißabgleich<br />

tadellos.<br />

Chromatische Aberration<br />

Die chromatische Aberration ist im Bild<br />

besonders an der Lichtspur des vorbeifliegenden<br />

Flugzeugs sichtbar. Obwohl<br />

der Strich stört und später einer Retusche<br />

zum Opfer fallen soll, eignet er sich<br />

wegen des starken Kontrasts zwischen<br />

dunklem Himmel und der Flugzeugbeleuchtung<br />

doch gut zur Veranschaulichung<br />

der chromatischen Aberration.<br />

Abbildung 5 zeigt den Fehler vor der<br />

Bearbeitung in Aftershot Pro, die Abbildungen<br />

6 bis 8 die Bearbeitungen in den<br />

drei Programmen.<br />

Vor allem in der Vergrößerungslupe zeigen<br />

sich die Unterschiede, wobei kein<br />

Programm sich hier Blößen gibt. An den<br />

Rändern der Lichtspur ist eine Art Regenbogen<br />

sichtbar (Abbildung 5), der durch<br />

die unterschiedlich starke Lichtbrechung<br />

der verschiedenen Wellenlängen durch<br />

die Objektivlinsen entsteht. Hochwertige<br />

Linsen zeigen den Effekt schwächer, mit<br />

genug Kleingeld lässt sich der Effekt also<br />

stark eingrenzen.<br />

Doch bietet die digitale Nachbearbeitung<br />

die Möglichkeit, auch mit preiswerten<br />

Objektiven bessere Ergebnisse zu erzielen.<br />

Aftershop Pro bietet die Option als<br />

Schieberegler an, die lassen sich so lange<br />

schieben, bis das Ergebnis optimiert ist.<br />

Vignettierung


www.linux-magazin.de<br />

Aftershot 05/2012<br />

Software<br />

61<br />

Abbildung 7: Auch UF Raw kann objektivabhängige Korrekturen vornehmen. Das<br />

Ergebnis kann sich durchaus mit Aftershot Pro messen.<br />

Abbildung 8: Rawtherapee hat die Objektivkorrekturen angewandt. Deutlich<br />

sichtbar ist in dieser Abbildung das störende Bildrauschen.<br />

ten in Abbildung 8). Die Option »Noise<br />

Ninja« schwächt unter Aftershot Pro das<br />

Rauschen, unter UF Raw und Rawtherapee<br />

schlichter Rauschunterdrückung<br />

genannt. Rawtherapee stellt die meisten<br />

Regelmöglichkeiten bereit, einen sichtbar<br />

aufwertenden Effekt bieten jedoch alle<br />

Produkte. Jeder Anwender muss selbst<br />

entscheiden, ob er die Bequemlichkeit<br />

der Automatik oder die Flexibilität der<br />

manuellen Steuerung vorzieht – und welches<br />

Programm die wichtigeren Features<br />

enthält oder besser beherrscht.<br />

Gimp-Export<br />

Angenehmerweise lassen sich aus allen<br />

Programmen die entwickelten Bilder<br />

direkt in Gimp importieren. Das ist<br />

auch aus Sicht von Aftershot Pro nur<br />

konsequent, denn Gimp hat mit seinem<br />

mächtigen Funktionsumfang trotz Corels<br />

Allzwecktool keineswegs ausgedient. Im<br />

Falle des Beispielbilds wirkt die Lichtspur<br />

des Flugzeugs, obwohl nun um die<br />

chromatische Aberration korrigiert, zu<br />

störend, um im Bild verbleiben zu dürfen.<br />

Kein Problem für Gimps »Heilen«-<br />

Werkzeug: Im Nu ist die Flugzeugspur<br />

von der Bildfläche verschwunden.<br />

Fotografisch reizvoll sind Umwandlungen<br />

in Schwarz-Weiß. Der Funktionsumfang<br />

von Aftershot Pro, UF Raw und Gimp<br />

ist auch an dieser Stelle auf hohem Niveau<br />

und miteinander vergleichbar. In<br />

Rawtherapee ist direktes Umwandeln in<br />

Schwarz-Weiß nicht vorgesehen.<br />

Aftershot: Nicht immer<br />

besser, aber integriert<br />

Abbildung 9: Vor allem in der rechten oberen Ecke sichtbar: Die Linsenkorrektur<br />

von Aftershot korrigiert auch unerwünschte Vignettierungseffekte.<br />

Sowohl Aftershot Pro auf der einen als<br />

auch Digikam, UF Raw oder Rawtherapee<br />

auf der anderen Seite ermöglichen<br />

die umfangreiche Verwaltung und Entwicklung<br />

der Bilder aus dem Rohformat.<br />

Aftershot Pro erscheint am besten integriert,<br />

Rawtherapee bietet die umfangreichsten<br />

Einflussmöglichkeiten für die<br />

Entwicklung [10]. Digikam punktet ganz<br />

klar beim Archivieren oder bei Tools wie<br />

der ungenauen Suche, die nach ähnlichen<br />

Bildern oder schnell gezeichneten<br />

Skizzen sucht.<br />

Für eine vollständige Nachbearbeitung<br />

oder gar künstlerische Verbindungen<br />

mehrerer Bilder<br />

kommt kein Programm<br />

um Gimp<br />

herum.<br />

Aftershot Pro integriert<br />

Funktionen<br />

wie die von Digikam<br />

und UF Raw<br />

unter einer angenehmer<br />

zu bedienenden<br />

Oberfläche.<br />

Ein vergleichbarer<br />

Verbesserungseffekt<br />

lässt<br />

sich unter Aftershot Pro mit einem kürzerem<br />

Workflow als unter den aktuell<br />

weniger eng integrierten offenen Lösungen<br />

erreichen. Um das Allerletzte aus<br />

dem Bild zu kitzeln, erscheint jedoch die<br />

Flexibilität von Rawtherapee das notwendige<br />

Mittel.<br />

Der Preis der proprietären Corel-Software<br />

Aftershot Pro ist im Vergleich zur kommerziellen<br />

Konkurrenz freundlich und<br />

das Angebot einer proprietären Lösung<br />

unter <strong>Linux</strong> besonders erfreulich. Insgesamt<br />

bietet Corel ein gutes Produkt zu<br />

einem fairen Preis, das zwar nicht in allen<br />

Belangen mit den freien Tools ebenbürtig<br />

ist, für die meisten Anwendungen<br />

jedoch mehr als genug Funktionen bringt<br />

– und diese besser zu integrieren weiß als<br />

die Konkurrenz.<br />

n<br />

Infos<br />

[1] Aftershot Pro: [http:// www. corel. com/<br />

corel/ product/ index. jsp? pid=prod4670071]<br />

[2] Bibble Labs: [http:// bibblelabs. com]<br />

[3] Digikam: [http:// www. digikam. org]<br />

[4] UF Raw: [http:// ufraw. sourceforge. net]<br />

[5] Rawtherapee: [http:// rawtherapee. com]<br />

[6] Gimp: [http:// www. gimp. org]<br />

[7] Thomas Leichtenstern, „Entwicklungshelfer“:<br />

<strong>Linux</strong>-User 3/​12, S. 64-<br />

[8] Hugin: [http:// hugin. sourceforge. net]<br />

[9] Markus Feilner, Fritz Reichmann, „Runde<br />

Sache“: <strong>Linux</strong>-<strong>Magazin</strong> 01/​12, S. 60<br />

[10] Thomas Leichtenstern, „Alles unter einem<br />

Dach: <strong>Linux</strong>User 09/​10, S. 32<br />

Der Autor<br />

Fritz Reichmann arbeitet als Software Development<br />

Engineer bei der Amadeus Data Processing<br />

GmbH. Der leidenschaftliche Hobbyfotograf nutzt<br />

beruflich und privat <strong>Linux</strong> seit Kernel 1.2.12.


Software<br />

www.linux-magazin.de Libre Office 3.5 05/2012<br />

64<br />

Libre Office mit neuen Importfiltern<br />

Gut in Form<br />

Draw und Impress rüsten auf – die neue Libre-Office-Version 3.5 enthält erstmals einen Importfilter für MS-<br />

Visio-Dokumente und verspricht Powerpoint-Formen besser zu unterstützen. Der Test untersucht, wie fit die<br />

beiden Office-Module sind. Renate Hermanns<br />

© skaisbon, photocase.coma<br />

Anfang Februar veröffentlichten die<br />

Libre-Office-Entwickler einen neuen Release<br />

Candidate des freien Büropakets<br />

[1]. Alle Komponenten kommen mit<br />

Neuerungen oder Verbesserungen, auch<br />

das Zeichenprogramm Draw und die<br />

Präsentations-Software Impress. Gerade<br />

für Draw hatte die Nutzergemeinde in<br />

der Vergangenheit mehrfach den Wunsch<br />

geäußert, MS-Visio-Dateien bearbeiten<br />

zu können. In Rekordzeit stellten die<br />

Entwickler einen Importfilter für VSD-<br />

Files auf die Beine. Das Präsentationstool<br />

erweiterten sie ebenfalls um eine Importfunktion<br />

für Zeichenobjekte.<br />

Um die beiden neuen Features zu prüfen,<br />

installierten die Tester Libre Office<br />

3.5 (RC3 vom zweiten Februar, [2]) auf<br />

einem aktuellen Ubuntu-System (11.10).<br />

Sie deinstallierten zuvor die 3.4-Variante,<br />

wie im Wiki empfohlen [3]. Zwei selbst<br />

erstellte Dokumente sollen danach be-<br />

weisen, wie ausgereift die neuen Features<br />

tatsächlich sind. Draw wagt sich an ein<br />

mit Visio erzeugtes Netzwerkdiagramm,<br />

Impress importiert eine Powerpoint-Präsentation<br />

mit veränderbaren Formen.<br />

Visionen in Draw<br />

MS Visio erfreut sich vor allem in vielen<br />

Firmen und bei etlichen Windows-Anwendern<br />

großer Beliebtheit. Ein Grund<br />

Abbildung 1: Ein Diagramm mit Netzwerkstrukturen – einmal in MS Visio (links) und in Libre Office Draw (rechts): Die feinen Linien und die Details der Symbole sehen<br />

nach dem Import unverändert aus. Somit ist es nun erstmals möglich, VSD-Dokumente von Windows-Nutzern unter <strong>Linux</strong> zu öffnen.


Abbildung 2: Nach dem Abspeichern als ODG-Datei<br />

und erneutem Öffnen in Draw hat der Laptop leicht<br />

verschobene Linien.<br />

dürfte die intuitive Oberfläche des Visualisierungstools<br />

sein. Zudem lassen<br />

sich die einzelnen Visio-Schablonen mit<br />

Daten aus beliebigen Datenbanken und<br />

Excel-Tabellen verknüpfen.<br />

Bisher war es unmöglich, VSD-Dateien<br />

mit einem alternativen Programm unter<br />

Windows oder <strong>Linux</strong> zu öffnen. Anwendern<br />

blieb nur den Weg über den Export<br />

in ein anderes Format. Das ändert sich<br />

jetzt mit der neuen Libre-Office-Importfunktion<br />

von Draw. Mit Hochdruck haben<br />

die Entwickler in den letzten Monaten<br />

an dem Filter [4] gearbeitet – und er ist<br />

ihnen erstaunlich gut gelungen, wie die<br />

Tests zeigen. Die vorgefertigten Visio-Zeichenobjekte<br />

sind teilweise recht filigran.<br />

Dass die komplexen Vektorstrukturen<br />

beim Import in Draw erhalten bleiben,<br />

war offenbar das Hauptziel, und mit dem,<br />

was in Draw ankommt, können Anwender<br />

gut arbeiten (Abbildung 1).<br />

Das Zeichenprogramm speichert die<br />

importierten Dateien als Open-Document-Zeichnung<br />

(Endungen ».fodg« und<br />

».odg«) beziehungsweise ‐Vorlage (».otg«)<br />

sowie als Star-Office-Zeichnung (».sxd«)<br />

und ‐Vorlage (».std«). In allen Varianten<br />

zerfallen im Test die ehemals gruppierten<br />

Icons aus dem Netzwerkdiagramm beim<br />

Import in ihre Einzelteile.<br />

Als problematisch erweist sich der fehlende<br />

Verbund aber erst dann, wenn der<br />

Nutzer die geänderte Datei nach dem<br />

Speichern erneut öffnet. Bei einigen Zeichenobjekten,<br />

etwa dem Telefon und dem<br />

Laptop, verschieben sich ein paar Linien<br />

(Abbildung 2). Auch das erneute Gruppieren<br />

der Objekte vor dem Abspeichern<br />

in Draw löst das Problem nicht – hier ist<br />

Handarbeit angesagt.<br />

Ein Zurück zur Microsoft-Anwendung<br />

gibt es übrigens nicht. Das Windows-<br />

Programm öffnet keines der in Draw<br />

angebotenen Formate, auch der Export<br />

als Vektorgrafik (».svg«) liefert kein<br />

brauchbares Ergebnis. Das ist aber zu<br />

verschmerzen, zumal das Feature ja auch<br />

als Importfilter und nicht als Exportfilter<br />

angekündigt ist – vielleicht folgt dieser ja<br />

auch irgendwann.<br />

Impress versus Powerpoint<br />

Die Liste der Neuerungen in Libre Office<br />

3.5 [5] zeigt in zwei Screenshots<br />

anschaulich die Verbesserungen beim<br />

PPTX-Import benutzerdefinierter Formen.<br />

Die Vorgängerversion 3.4 veränderte<br />

einen Großteil der Custom Shapes<br />

noch stark, einige verschwanden beim<br />

Import komplett. In der neuen Release<br />

sind alle in Powerpoint angelegten Formen<br />

vorhanden, wie Abbildung 3 zeigt.<br />

Auch die verknüpfte Verweislinie einer<br />

Legendenform bleibt erhalten.<br />

Anwender können mit den optisch identischen<br />

Formen weiterarbeiten. Größen-<br />

und Lage-Änderungen sowie Veränderungen<br />

der enthaltenen Textfelder<br />

erweisen sich nicht als Problem. Die 3-D-<br />

Funktionen komplizierter Formen sind<br />

jedoch nur eingeschränkt verfügbar. So<br />

lässt etwa die Verweislinie einer Legende<br />

keine Veränderung mehr zu. Versucht der<br />

Nutzer diese Restriktion zu umgehen,<br />

verschwindet sie sogar völlig.<br />

Eine Enttäuschung erlebten die Tester<br />

beim Versuch, eine solche Präsentation<br />

in Impress zu speichern. Sowohl das originale<br />

PPTX-Format als auch das native<br />

ODP drücken der Datei ihren Stempel auf<br />

und verändern die Formen bis zur Unkenntlichkeit<br />

(siehe Abbildung 4). Der<br />

Hinweis, dass das Dokument Formatierungen<br />

und Inhalte enthalten kann, die<br />

das Programm nicht in dem aktuell ausgewählten<br />

Format zu speichern vermag,<br />

tröstet da nur wenig.<br />

Auch der versprochene Import von Smart-<br />

Art-Objekten in Impress klappt nicht. In<br />

Powerpoint können solche Objekte Aufzählungen<br />

grafisch aufbereitet anzeigen.<br />

Der Clou ist, dass Anwender den Textinhalt<br />

auch weiterhin wie normalen Text<br />

REGISTER<br />

NOW!<br />

Die Konferenz zum Thema Einsatz<br />

von Open Source Software in Rechenzentren<br />

und großen IT Umgebungen.<br />

Schwerpunktthema 2012:<br />

AGILE INFRASTRUCTURES<br />

mit dem Focus auf<br />

DEVOPS AND METHODS<br />

DATABASES<br />

SCALABILITY & INFRASTRUCTURE<br />

wwww.netways.de/osdc<br />

presented by<br />

NETWAYS ®


Software<br />

www.linux-magazin.de Libre Office 3.5 05/2012<br />

66<br />

Abbildung 3: Das Testdokument sieht in Powerpoint (links) genauso aus wie in Impress (rechts). Alle Formen importiert das Präsentationstool klaglos.<br />

editieren können und nicht direkt in das<br />

Objekt hineinschreiben müssen. Impress<br />

importiert diese Smart-Art-Objekte in der<br />

neuen Version, verliert auf dem Weg aber<br />

deren eigentliche Funktionalität.<br />

Die Autorin<br />

Renate Hermanns ist selbstständige<br />

Webentwicklerin.<br />

Sie plant und erstellt vor allem<br />

Templates für Contentmanagement-Systeme<br />

nach<br />

modernen Standards. HTML<br />

5 und CSS 3 sind ihre Werkzeuge, um Webseiten<br />

auch auf mobilen Endgeräten benutzerfreundlich<br />

auszugeben, und Javascript ermöglicht ihr<br />

den Spagat zwischen alten und neuen Browsergenerationen.<br />

Ihre Homepage ist [http:// www.​<br />

css‐manufaktur. de].<br />

Nach dem Import stehen dem Nutzer nur<br />

die in einzelne Grafikobjekte zerlegten<br />

Elemente mit Textboxen zur Verfügung.<br />

Beschriftungen muss er dort direkt ändern.<br />

Das wäre zu verschmerzen, aber<br />

auch hier offenbart sich nach dem erneutem<br />

Öffnen ein trauriges Bild. Die Objekte<br />

sind nicht mehr besonders smart, sondern<br />

fast alle verschwunden. Händisches<br />

Nachbessern ist somit ausgeschlossen.<br />

Fast bemerkenswert<br />

Mit der verbesserten Importfunktion<br />

für Draw ist den Entwicklern ein großer<br />

Schritt gelungen. Libre Office 3.5 öffnet<br />

Zeichenobjekte aus Visio, und Anwender<br />

können diese Dokumente auch weiterverarbeiten.<br />

Der positive Eindruck setzt<br />

sich beim Impress-Filter für Powerpoint-<br />

Dateien leider nicht fort: Das Libre-Office-Präsentationstool<br />

vermag die importierten<br />

und bearbeiteten Dateien nicht<br />

brauchbar zu speichern und verändert<br />

die erneut geöffneten Testdokumente teilweise<br />

bis zur Unkenntlichkeit. (hej) n<br />

Infos<br />

[1] Libre Office: [http:// de. libreoffice. org]<br />

[2] Libre-Office-Download:<br />

[http:// de. libreoffice. org/ download]<br />

[3] Installationsanleitung:<br />

[http:// wiki. documentfoundation. org/​<br />

Installing_LibreOffice_on_<strong>Linux</strong>]<br />

[4] Visio-Importfilter: [http:// de. libreoffice.​<br />

org/ download/ 3‐5‐neuerungen/ # Filter]<br />

[5] Impress- und Draw-Verbesserungen:<br />

[http:// de. libreoffice. org/ download/ 3‐5‐<br />

neu erungen/ # Impress‐Draw‐Verbesserung]<br />

Abbildung 4: Nach dem Abspeichern und erneuten Öffnen einer Powerpoint-Präsentation mit Formen zeigen sich diese weit entfernt vom Original. Die PPTX-Datei<br />

präsentiert nur noch gleichförmige Rechtecke und unschöne Artefakte.


Software<br />

www.linux-magazin.de Tooltipps 05/2012<br />

68<br />

Werkzeuge im Kurztest<br />

Tooltipps<br />

Lziprecover 1.13<br />

Lzip-Archive reparieren<br />

Quelle: [http:// www. nongnu. org/ lzip/​<br />

lziprecover. html]<br />

Lizenz: GPLv3<br />

Alternativen: File Ripper<br />

Kccmp 0.3<br />

Kernelkonfigurationen vergleichen<br />

Quelle: [http:// stoopidsimple. com/ kccmp]<br />

Lizenz: GPLv2<br />

Alternativen: Diff, Tkdiff<br />

Checksuite 3.3<br />

Monitoring-Toolsammlung<br />

Quelle: [http:// checksuite. sourceforge. net]<br />

Lizenz: GPLv2<br />

Alternativen: Nagios, Sawdog<br />

Fast jeder hat sich schon mal über defekte<br />

Archivdateien geärgert, die keinen<br />

Zugriff mehr auf den verpackten Inhalt<br />

erlauben. Für mit Lzip Komprimiertes<br />

empfiehlt sich Lziprecover und versucht<br />

sich an der Reparatur. Wunder sollten<br />

Anwender jedoch nicht erwarten. Lziprecover<br />

ist kein Ersatz für regelmäßige<br />

Sicherungskopien, denn je nach Größe<br />

des Schadens gestaltet sich die Instandsetzung<br />

aufwändig oder das Tool kann<br />

gar nichts mehr ausrichten.<br />

Leicht beschädigte Archive, bei denen<br />

etwa nur ein Byte am falschen Fleck<br />

sitzt, repariert Lziprecover mit »‐R«. Hat<br />

der Anwender weitere, ebenfalls defekte<br />

Kopien eines Archivs, kann das Tool sie<br />

zusammenfügen und eventuell zu einer<br />

intakten Datensammlung gelangen.<br />

Alternativ hat der Nutzer immer noch<br />

die Möglichkeit, wiederherstellbare Fragmente<br />

auf der Standardausgabe auszugeben<br />

und von Hand einzelne Dateien zu<br />

retten. Wer weiß, wo im lädierten Archiv<br />

die gesuchten Daten liegen, der kann<br />

außerdem einzelne Bereiche dekomprimieren.<br />

Die Quelldatei tastet Lziprecover<br />

dabei auf Wunsch nicht an.<br />

★★★★★ Lziprecover erweist sich als<br />

hilfreich bei der Korrektur leicht beschädigter<br />

Lzip-Archive. Sind diese stärker in<br />

Mitleidenschaft gezogen, ist viel Handarbeit<br />

gefordert.<br />

n<br />

Wer seine <strong>Linux</strong>-Kernel selbst baut, wird<br />

regelmäßig einen Blick in die ».config«-<br />

Dateien werfen oder die Standardkonfiguration<br />

einer neuen Version mit dem<br />

Vorgänger vergleichen. Meist kommt Diff<br />

dabei zum Einsatz, bequemer geht’s jedoch<br />

mit Kccmp. Das Tool nimmt zwei<br />

Kernel-Einrichtungsdateien entgegen,<br />

vergleicht sie und stellt die Einstellungen<br />

in einer Qt-4-basierten Oberfläche<br />

gegenüber.<br />

Auf Wunsch zeigt Kccmp nur die Parameter<br />

an, die in den beiden Konfigurationen<br />

voneinander abweichen. Alternativ gibt<br />

das Tool alle Optionen samt ihren Werten<br />

aus, die nur in einer der beiden Dateien<br />

vorkommen. Weiteren Bedienkomfort<br />

suchen Kernelbauer vergeblich. Eine<br />

Suchfunktion fehlt ebenso wie die Möglichkeit,<br />

Änderungen an den ».config«-<br />

Dateien vorzunehmen.<br />

Zwar dürfen Nutzer die einzelnen Felder<br />

markieren und die darin enthaltenen<br />

Werte ändern, diese Modifikationen landen<br />

aber nicht in den Einrichtungsdateien,<br />

wie eine Kontrolle mit Vim im Test<br />

ergab. Für schnelles Abgleichen zweier<br />

Kerne genügt Kccmp aber völlig.<br />

★★★★★ Kccmp erledigt das, was es verspricht,<br />

und liefert schnell einen Überblick<br />

über Abweichungen in Kernelkonfigurationen.<br />

n<br />

Diese nützliche Suite erleichtert das Leben<br />

von Sysadmins. Die acht Perl-Tools<br />

überprüfen etwa die Festplatte(n), Systemlast,<br />

I-Nodes, Links oder den Swapbereich.<br />

Checkdisk beispielsweise behält<br />

den Füllstand der Festplatte(n) im Auge.<br />

Checkhardware indes durchforstet die<br />

»dmesg«-Ausgabe nach möglichen Hardwarefehlern.<br />

Für die Überwachung der<br />

Systemlast ist Checkload zuständig. Es<br />

prüft die Angabe zu »load average« in<br />

der Voreinstellung alle fünf Minuten. Die<br />

Suche nach toten Prozessen übernimmt<br />

Checkzombie.<br />

Beim Aufruf gibt der Anwender den<br />

einzelnen Befehlen einen Schwellenwert<br />

sowie eine Mailadresse oder eine<br />

Pagernummer mit. Erreicht ein Tool die<br />

vorgegebene Grenze, alarmiert es den<br />

Sysadmin. Alternativ schreiben sämtliche<br />

Checkprogramme Logeinträge. Für<br />

die regelmäßige Kontrolle empfiehlt sich<br />

die Zusammenarbeit mit Cron. Eine entsprechende<br />

Beispielkonfiguration ist im<br />

Checksuite-Archiv enthalten. Hier finden<br />

Admins ebenfalls ein Beispiel für die Nutzung<br />

mit Logrotate.<br />

★★★★★ Checksuite ist eine interessante<br />

Alternative für alle Admins, die Nagios<br />

& Co. als zu mächtig und zu aufwändig<br />

empfinden. Wer nur die wichtigsten Eckdaten<br />

erfassen möchte, der kommt mit<br />

der Toolsammlung schnell ans Ziel. n


JETZT<br />

MIT DVD!<br />

MAGAZIN<br />

Sonderaktion<br />

Testen Sie jetzt<br />

3 Ausgaben<br />

für 3 Euro!<br />

Jetzt schnell bestellen:<br />

• Telefon 07131 / 2707 274<br />

• Fax 07131 / 2707 78 601<br />

• E-Mail: abo@linux-magazin.de<br />

• Web: www.linux-magazin.de/probeabo<br />

Mit großem Gewinnspiel unter:<br />

www.linux-magazin.de/probeabo<br />

Gewinnen Sie...<br />

die 7Links Outdoor-IP-Kamera „IPC-710IR“<br />

Einsendeschluss ist der 15.06.2012


Software<br />

www.linux-magazin.de Tooltipps 05/2012<br />

70<br />

Tmsu 0.0.5<br />

Dateien mit Tags versehen<br />

Quelle: [https:// bitbucket. org/ oniony/ tmsu/​<br />

wiki/ Home]<br />

Lizenz: GPLv3<br />

Alternativen: keine<br />

Clamtk 4.37<br />

Grafische Oberfläche für Clam AV<br />

Quelle: [http:// clamtk. sourceforge. net]<br />

Lizenz: GPLv3<br />

Alternativen: Wbm Clam AV, Antivirus<br />

Scanner<br />

Getxbook 0.8<br />

Onlinebücher herunterladen<br />

Quelle: [http:// njw. me. uk/ software/​<br />

getxbook]<br />

Lizenz: ISC<br />

Alternativen: I-Bookshelf<br />

Tags erweisen sich beim Verwalten von<br />

Musik und Bildern als extrem nützlich,<br />

und manch einer hat sich sicherlich<br />

schon gewünscht andere Dateien ähnlich<br />

auszuzeichnen. Tmsu erfüllt diesen<br />

Wunsch und erlaubt Anwendern, Dateien<br />

mit frei definierbaren Tags auszustatten.<br />

Die Originaldateien fasst das Tool nicht<br />

an, stattdessen erstellt es ein auf Fuse<br />

basierendes virtuelles Verzeichnissystem.<br />

Für jedes Tag existiert dort ein Unterverzeichnis,<br />

das symbolische Links auf die<br />

Urfassungen enthält.<br />

Vor dem Markieren erstellen Nutzer zunächst<br />

einen Mountpoint und aktivieren<br />

das virtuelle Dateisystem. Danach ist das<br />

Tool einsatzbereit und nimmt hinter dem<br />

Aufruf »tmsu tag« den Namen des Tags<br />

und die Datei(en) entgegen. Handelt es<br />

sich um einen neuen Begriff, fügt Tmsu<br />

ihn der Liste hinzu und legt ein entsprechendes<br />

Unterverzeichnis in seinem virtuellen<br />

Dateisystem an. Über »tmsu stats«<br />

erfährt der Anwender, wie viele Tags und<br />

markierte Dateien das Tool gerade verwaltet.<br />

Eine »dupes«-Funktion sucht nach<br />

doppelten Auszeichnungen. Außerdem<br />

enthalten sind Optionen, die Tags entfernen<br />

oder umbenennen.<br />

Sämtliche Fakten zu den Tags und den<br />

Dateien verwaltet Tmsu in einer SQlite-<br />

3-Datenbank im Benutzerverzeichnis. Sie<br />

umfasst drei Tabellen, die alle Informationen<br />

und Zuordnungen aufnehmen. Über<br />

»tmsu export« geben Nutzer die Daten im<br />

CSV-Format aus.<br />

★★★★★ Tmsu versieht beliebige Dateien<br />

mit Tags, ohne die Originale zu<br />

manipulieren. Auf diese Weise verwalten<br />

Anwender bequem große Datenmengen.<br />

Ein Blick lohnt sich.<br />

n<br />

Clamtk ist ein einfaches und übersichtliches<br />

GUI für den freien Virenscanner<br />

Clam AV. Das Programm setzt auf Tk-<br />

Bibliotheken und GTK-2-Perl. Bei jedem<br />

Aufruf verifiziert es zuerst, ob die Virensignaturen<br />

und die Clam-AV-Engine auf<br />

dem neuesten Stand sind. Gegebenenfalls<br />

lädt Clamtk dann Aktualisierungen aus<br />

dem Netz, es benötigt daher eine Internetverbindung.<br />

In der gut strukturierten Oberfläche scannen<br />

Nutzer mit wenigen Handgriffen<br />

einzelne Dateien oder ganze Verzeichnisse.<br />

Das Feintuning der Scanparameter<br />

erfolgt im »Advanced«-Menü. Hier<br />

nehmen Nutzer etwa versteckte Dateien<br />

vom Scan aus oder prüfen nur Dinge, die<br />

eine bestimmte Mindestgröße aufweisen.<br />

Außerdem klammern sie über Whitelists<br />

gleich ganze Verzeichnisse von einem<br />

Scandurchlauf aus.<br />

Das Ergebnis bereitet Clamtk als übersichtliche<br />

Liste auf. Vorschläge zur Weiterverarbeitung<br />

infizierter Daten macht<br />

das Tool nicht, also muss der Anwender<br />

selbst entscheiden, wie er vorgeht. Wer<br />

betroffene Dateien nicht direkt löschen<br />

möchte, der kann sie unter Quarantäne<br />

stellen oder umbenennen. Letzteres ist<br />

natürlich nicht besonders sicher. Für Anwender,<br />

die in einem restriktiven Netz<br />

arbeiten, bietet Clamtk Proxy-Einstellungen<br />

für die regelmäßigen Updates. Diese<br />

und andere Aufgaben automatisiert das<br />

Perl-Tool mit entsprechenden Crontab-<br />

Einträgen.<br />

★★★★★ Clamtk ist eine komfortable<br />

Oberfläche für den beliebten Virenscanner<br />

Clam AV. Anwender überprüfen mit<br />

wenigen Mausklicks, ob infizierte Dateien<br />

auf dem System liegen. n<br />

Getxbook lädt Bücher aus dem Netz herunter.<br />

Enthalten sind die drei Programme<br />

Getgbook, Getabook und Getbnbook für<br />

die drei Anbieter Google Books, Amazon<br />

und Barnes & Nobles. Um ein Werk von<br />

einem Dienst auf den eigenen Rechner<br />

zu bringen, ruft der Nutzer das entsprechende<br />

Tool zusammen mit der ID des<br />

gewünschten Werks auf. Bei Amazon ist<br />

das die ASIN, Google nutzt die Book ID<br />

und Barnes & Nobles die ISBN 13.<br />

Wenn nichts anderes angegeben ist, lädt<br />

der Befehl den gesamten verfügbaren Inhalt<br />

herunter. Es ist aber auch möglich,<br />

beim Aufruf Seitenzahlen anzugeben. Mit<br />

Hilfe von »seq« automatisieren Nutzer<br />

diesen Vorgang. Google beschränkt den<br />

maximalen Download pro IP-Adresse. Bei<br />

größeren Dokumenten muss der Anwender<br />

also in Etappen vorgehen. Getgbook<br />

merkt sich, welche Seiten es bereits übertragen<br />

hat.<br />

Für ihre Arbeit braucht die Toolsammlung<br />

direkten Internetzugriff, einen Proxy<br />

unterstützt sie nicht. Alle heruntergeladenen<br />

Seiten befinden sich in einem<br />

Verzeichnis mit der ID des Buches. Das<br />

Archiv enthält auch eine rudimentäre Tclbasierte<br />

Oberfläche, in die der Anwender<br />

die Buch-ID einträgt und das Tool auswählt.<br />

Sonderfunktionen wie die Erfassung<br />

einzelner Seiten unterstützt das GUI<br />

jedoch nicht.<br />

★★★★★ Getxbook besorgt Futter für Leseratten,<br />

welche die von Amazon, Google<br />

und Barnes & Nobles freigegebenen Bücher<br />

gerne offline lesen oder archivieren<br />

möchten. Abzüge in der B-Note gibt es<br />

lediglich wegen des fehlenden Proxy-<br />

Supports. (U. Vollbracht/​hej) n


Aus dem Alltag eines Sysadmin: Pktstat<br />

Traffic Spotting<br />

Einführung 05/2012<br />

Sysadmin<br />

Gerade für Alltagsaufgaben wie das Überwachen des Netzwerkverkehrs sollte sich der Admin ein Standard tool<br />

küren, dass sowohl ausreichend funktional als auch nicht zu kompliziert zu handhaben ist. Charly Kühnast<br />

Inhalt<br />

72 Fünf Stats<br />

<strong>Linux</strong> bietet zahlreiche Tools zur Systemdiagnose:<br />

Vmstat, Netstat, Iostat,<br />

und Ifstat haben ihre Vorteile, aber am<br />

umfassendendsten berichtet Dstat.<br />

Heute schiebe ich die für Admins nicht<br />

gerade exotische Aufgabe, den Netzverkehr<br />

auf einem Interface menschenlesbar<br />

aufzudröseln, ins Licht dieser Kolumne.<br />

Grund: Auf der Suche nach einem Kompromiss<br />

zwischen dem einsilbigen Iptraf<br />

und dem geschwätzigen Wireshark bin<br />

ich auf Pktstat gestoßen. Das Tool gehört<br />

zum Umfang der meisten Distributionen,<br />

der Quellcode ist unter [1] erhältlich.<br />

Um die aktuellen Verbindungen auf der<br />

Schnittstelle zu sehen, tippe ich bloß:<br />

pktstat ‐i eth0<br />

In einer Ansicht, die entfernt an »top« erinnert,<br />

stellt Pktstat die Netzwerkaktivität<br />

nach Klassen sortiert (ICMP, TCP, UDP<br />

und so weiter) untereinander dar. Wem<br />

die Namensauflösung zu lange dauert,<br />

der schaltet sie mit dem Parameter »‐n«<br />

einfach ab. Bei Protokollen wie HTTP,<br />

FTP und X11 gibt Pktstat weitere Informationen<br />

über die übertragenen Daten aus,<br />

bei HTTP etwa den Pfad und die Requestmethode,<br />

also »GET« oder »POST«.<br />

Abbildung 1 zeigt den Download des ISO-<br />

Image der kommenden Ubuntu-LTS-Version<br />

12.04. Dabei fällt auf, dass Pktstat<br />

nicht die vollständigen Namen der Quellund<br />

der Zielmaschine anzeigt, sondern<br />

nur den Teil bis zum ersten Punkt – der<br />

Übersichtlichkeit wegen. Will ich partout<br />

den ganzen Namen sehen, lege ich Pktstat<br />

den Parameter »‐F« ins Gepäck.<br />

Die Übersicht geht aber spätestens flöten,<br />

wenn es auf der Netzwerkschnittstelle<br />

hektisch zugeht. Um Schritt zu halten,<br />

bediene ich mich zweier<br />

Schräubchen. Zum einen<br />

löscht Pktstat Verbindungen,<br />

für die keine<br />

Daten mehr fließen, erst<br />

nach 10 Sekunden aus<br />

der Übersicht. Diesen<br />

Wert verringere ich mit<br />

dem Parameter »‐k«<br />

(Keeptime), etwa auf 1<br />

Se kunde.<br />

Außerdem aktualisiert<br />

Pktstat seine Übersicht<br />

nur alle 5 Sekunden. Mit<br />

»‐w 1« mache ich ihm<br />

Beine, die Ansicht erneuert<br />

sich nun sekündlich.<br />

Für den Parameter »‐w« gibt es noch<br />

eine weitere Verwendung: Pktstat bietet<br />

einen so genannten Single-Shot-Modus,<br />

zum Beispiel per:<br />

pktstat ‐i eth0 ‐1 ‐w 10<br />

Durch »‐1« initiiere ich den Single-<br />

Shot-Modus. Pktstat läuft nun ohne<br />

Bild schirm ausgabe, bis die mit »‐w 10«<br />

festgelegten Sekunden abgelaufen sind.<br />

Danach beendet es sich und hinterlässt<br />

als Erbschaft eine übersichtliche Liste der<br />

erkannten Verbindungen.<br />

Neu sortiert<br />

Das Tool bietet noch einige Parameter,<br />

um die Ausgabe zu beeinflussen, am häufigsten<br />

benötige ich »‐l« (last seen). Damit<br />

sortiert Pkstat seine Übersicht danach,<br />

welche Verbindungen zuletzt aktiv waren.<br />

Je länger eine Kommunikation idle<br />

ist, umso weiter rutscht sie in der Liste<br />

nach unten. Mit »‐t« (top mode) arbeiten<br />

sich jene Datenströme nach oben, die am<br />

emsigsten Daten durchs Interface schaufeln.<br />

Die meisten Kommandozeilenparameter<br />

funktionieren auch interaktiv bei<br />

Abbildung 1: Das Downloaden eines ISO-Image entgeht Pktstat natürlich<br />

nicht. Die Namen von Quell- und Zielhost verkürzt das Tool hier bewusst.<br />

laufendem Pktstat; durch Drücken der<br />

Taste [L] aktiviere ich so den erwähnten<br />

Last-seen-Modus.<br />

Wer eine Weile damit arbeitet, wird mir<br />

sicherlich beipflichten, dass Admins<br />

sich mit Pktstat unkompliziert über die<br />

Netzwerk-Verkehrslage informieren können.<br />

Klassische Frage: Welcher Prozess<br />

schnorchelt hier gerade die ganze verfügbare<br />

Bandbreite ab? Für eine detektivische<br />

Stau-Ursachenforschung brauche<br />

ich aber nach wie vor Wireshark. (jk)n<br />

Infos<br />

[1] Pktstat: [http:// www. adaptive‐enterprises.​<br />

com. au/ ~d/ software/ pktstat/]<br />

Der Autor<br />

Charly Kühnast administriert Unix-Syste me im<br />

Rechenzentrum Niederrhein in Kamp-Lintfort.<br />

Zu seinen Aufgaben gehören die Sicherheit und<br />

Verfügbarkeit der Firewalls<br />

und der DMZ. Im heißen Teil<br />

seiner Freizeit frönt er dem<br />

Ko chen, im feuchten Teil der<br />

Süßwasseraquaristik und im<br />

östlichen lernt er Japanisch.<br />

www.linux-magazin.de<br />

71


Sysadmin<br />

www.linux-magazin.de Dstat & Co. 05/2012<br />

72<br />

Systemdiagnose von Vmstat über Netstat bis Dstat<br />

<strong>Linux</strong>-Multimeter<br />

Um zu beobachten, was auf einem <strong>Linux</strong>-System passiert, hat der Admin Vmstat, Iostat, Netstat und Ifstat in<br />

seinem Fundus. Oder er greift zum Alleskönner Dstat, der diese vier Tools in sich vereint. Valentin Höbel<br />

© Serghei Velusceac, 123RF<br />

Systemadministratoren nutzen meist<br />

mehrere Tools, um die Ressourcen-Auslastung<br />

eines <strong>Linux</strong>-Systems zu beobachten.<br />

Spätestens wenn es um das Auffinden<br />

von Engpässen geht, steigt aber der<br />

Aufwand: Einige Tools müssen über längere<br />

Zeiträume hinweg laufen und verbrauchen<br />

dabei selbst Ressourcen. Dieser<br />

Artikel stellt mit »vmstat«, »iostat«, »netstat«<br />

und »ifstat« vier Programme vor,<br />

die zur Grundausstattung des Admin gehören.<br />

Zum Abschluss präsentiert er das<br />

Vielzweck-Tool »dstat«, das viele Analysefunktionen<br />

in sich vereint.<br />

Grundwissen<br />

Wer Systemgrößen interpretieren möchte,<br />

muss sich zuvor klarmachen, was sie<br />

bedeuten. Dabei dreht sich vieles um den<br />

virtuellen Speicher. Während der physische<br />

Arbeitsspeicher in Form von RAM-<br />

Riegeln eine greifbare Größe ist, scheinen<br />

die Grenzen bei der Verwaltung des virtuellen<br />

Speichers zu verschwimmen. Die<br />

Speicherverwaltung des Betriebssystems<br />

ist selbst für manchen erfahrenen <strong>Linux</strong>-<br />

Anwender ein Rätsel.<br />

Jeder Prozess unter <strong>Linux</strong> benötigt Arbeitsspeicher,<br />

um seine Aufgaben bewältigen<br />

zu können. Dafür alloziert das<br />

Betriebssystem Speicher, das heißt, es<br />

reserviert einen Bereich des Arbeitsspeichers<br />

von A bis B, den das Programm<br />

mit hoher Wahrscheinlichkeit zu einem<br />

späteren Zeitpunkt auch nutzt.<br />

Da jedoch nicht jeder laufende Prozess<br />

all seinen zugewiesenen Speicher permanent<br />

benötigt, lagert der Kernel diesen<br />

Speicher in einer Einheit namens<br />

Speicherseite (Page) auf die Festplatte<br />

aus (Page-out). Damit steht dem System<br />

wieder mehr Platz im physischen RAM<br />

zur Verfügung. Wird der komplette vom<br />

Prozess reservierte Speicher auf die Festplatte<br />

geschrieben, so bezeichnet man<br />

dies als Swapping. Lagert der Kernel<br />

jedoch nur einzelne Speicherseiten des<br />

allozierten RAM auf die Platte aus, nennt<br />

man dies Paging.<br />

Umgekehrt kann ein System den Speicher<br />

auch wieder in den RAM einlesen,<br />

das so genannte Page-in. Dieser Vorgang<br />

ist völlig normal und nicht unbedingt<br />

Anzeichen für Ressourcen-Engpässe. Das<br />

Paging auf die Platte kann aber bei Systemen<br />

mit hoher Auslastung dazu führen,<br />

dass der Kernel mehr mit der Verwaltung<br />

des virtuellen Speichers als mit den Prozessen<br />

selbst beschäftigt ist.<br />

Mit diesem Wissen erklärt sich auch der<br />

Unterschied zwischen Buffer und Cache:<br />

Beide Zwischenstationen spielen eine<br />

Rolle, wenn <strong>Linux</strong> Daten zwischen Systemkomponenten<br />

transferiert. Während<br />

ein Buffer Daten enthält, die noch auf<br />

die Festplatte geschrieben werden, dient<br />

ein Cache zum Einlesen von Daten von<br />

festen Speichermedien.<br />

Ein weiterer wichtiger Begriff ist das Context<br />

Switching. Dabei unterbricht <strong>Linux</strong><br />

die Bearbeitung eines Prozesses, sichert<br />

den Speicherkontext und arbeitet dann<br />

einen anderen Prozess ab. Das Context<br />

Switching ist eine der kostspieligsten<br />

Operationen in einem <strong>Linux</strong>-System.<br />

Steigt innerhalb kurzer Zeit die Anzahl<br />

der Context Switches von wenigen Tausend<br />

auf über 100 000, könnte dies ein<br />

Indikator für eine unnötig hohe Ressourcen-Nutzung<br />

(Overhead) bei der Bearbeitung<br />

von Prozessen sein.<br />

Mit diesem Wissen kann sich der <strong>Linux</strong>-<br />

Admin daranmachen, mit den Tools Engpässe<br />

aufzuspüren. Die Programme sollte<br />

er dabei als Benutzer Root aufrufen, für<br />

den alle Daten sichtbar sind.<br />

E Vmstat<br />

Den meisten <strong>Linux</strong>-Systembetreuern ist<br />

vermutlich Vmstat [1] ein Begriff. Dieses<br />

leistungsfähige Werkzeug zeigt eine tabellarische<br />

Übersicht der Prozesse, den<br />

RAM- und Page-Verbrauch, I/​O sowie<br />

Informationen über die CPU-Aktivitäten.


Dstat & Co. 05/2012<br />

Sysadmin<br />

Abbildung 1: Ohne Optionen aufgerufen zeigt Vmstat Durchschnittswerte.<br />

Wer das Tool ohne Parameter aufruft,<br />

sieht nur eine einzige Zeile mit Werten,<br />

Darin finden sich Durchschnittswerte seit<br />

dem letzten Reboot (Abbildung 1).<br />

Spaltenweise<br />

Die Ausgabe von Vmstat erfolgt dabei<br />

standardmäßig in sechs Spalten. Der<br />

erste Teil »procs« enthält die Werte »r«<br />

für die Anzahl der auf CPU-Zeit wartenden<br />

Prozesse, während »b« für die<br />

Prozesse steht, die sich in einem schlafenden<br />

Zustand befinden, der sich nicht<br />

unterbrechen lässt.<br />

Die Spalte »memory« enthält unter<br />

»swpd« die Summe des genutzten virtuellen<br />

Speichers, »free« steht für die Summe<br />

des bisher ungenutzten RAM, »buff« für<br />

den Speicher, der als Buffer genutzt wird,<br />

und »cache« entsprechend für den als<br />

Cache verwendeten.<br />

Der »swap«-Bereich der Ausgabe nennt<br />

mit »si« den Speicher, den <strong>Linux</strong> pro Sekunde<br />

von der Festplatte in den RAM<br />

schaufelt (Swap-in), »so« betitelt den<br />

umgekehrten Vorgang (Swap-out). Die<br />

Spalte »io« macht deutlich, wie viele<br />

Blocks das System pro Sekunde liest<br />

(»bi«) und schreibt (»bo«). Ein Blick auf<br />

den »system«-Bereich zeigt hingegen die<br />

Anzahl der Interrupts (»in«) und Context-<br />

Switches (»cs«) pro Sekunde.<br />

Die letzte Spalte namens »cpu« ist recht<br />

ausführlich und gibt Werte in Prozent an:<br />

»us« zeigt den Anteil der CPU-Zeit, die<br />

Abbildung 2: Vmstat mit fünf Ausgabezeilen, die sich sekündlich aktualisieren.<br />

Prozesse aus dem Userspace beanspruchen,<br />

»sy« ist der Messwert für die CPU-<br />

Zeit, die der Kernel für das Bearbeiten<br />

von Systemvorgängen benötigt. Die Angabe<br />

»id« bezeichnet die Idle-Time. Der<br />

letzte Wert der aktuellen Spalte, »wa«,<br />

gibt die Prozesse an, die auf Input- oder<br />

Output-Vorgänge warten.<br />

Das Kommando »vmstat 1 5« lässt das<br />

Programm mit einer sekündlichen Aktualisierungsrate<br />

und fünf Ausgabezeilen<br />

laufen (Abbildung 2). In diesem Beispiel<br />

kommt es zweimal dazu, dass Prozesse<br />

auf CPU-Zeit warten und <strong>Linux</strong> gleichzeitig<br />

Daten von der Festplatte einliest (erste<br />

Ausgabezeile). In dem abgebildeten Beispiel<br />

sorgte das Kommando »updatedb«<br />

auf einem älteren Ubuntu 8.04 für die<br />

Ein- und Ausgaben sowie für die wartenden<br />

Prozesse.<br />

Eine nützliche Vmstat-Option ist »‐d« für<br />

Disk Statistics, sie führt zu einer leider<br />

etwas unübersichtlichen Zusammenfassung<br />

der I/​O-Vorgänge im RAM und auf<br />

den Festplatten. Der Befehl »vmstat ‐s«<br />

zeigt Werte zu CPU- und Speichervorgängen<br />

in Listenform, was die Ausgabe<br />

für die automatisierte Auswertung durch<br />

Skripte brauchbar macht. Als interessantes<br />

Extra bietet Vmstat die Option »‐p«,<br />

gefolgt von der Angabe einer Partition.<br />

Damit zeigt das Programm ausschließlich<br />

Zahlen zu den Lese- und Schreibvorgängen<br />

auf der gewählten Partition.<br />

Vmstat erfreut sich zwar großer Beliebtheit<br />

im täglichen Einsatz. Seiner Funktionsvielfalt<br />

stehen aber Mängel bei der<br />

Darstellung gegenüber, es fehlt die klare<br />

Übersichtlichkeit.<br />

E Iostat<br />

Während Vmstat sich vielseitig gibt,<br />

konzentriert sich Iostat [2] auf die Einund<br />

Ausgabe-Operationen eines <strong>Linux</strong>-<br />

Systems. Das Tool zeigt auch ohne Kommandozeilen-Optionen<br />

eine aussagekräftige<br />

Statistik. Die Zeile »avg‐cpu« enthält<br />

Statistiken zu den CPUs und gibt einen<br />

Einblick in die allgemeine Auslastung.<br />

In Abbildung 3 scheint das System nicht<br />

viel zu tun zu haben: Die CPUs befinden<br />

sich zu rund 84 Prozent im Idle und<br />

nicht einmal ein Prozent der Prozesse<br />

wartet auf I/​O. Sind wie hier mehrere<br />

CPUs vorhanden, zeigt Iostat die Durchschnittswerte<br />

über alle.<br />

Anders sieht es mit der Auslastung bei<br />

den Blockdevices aus: Hier stellt die<br />

Spalte »tps« die Transfers pro Sekunde<br />

dar, die mit I/​O-Anfragen an das Gerät<br />

gleichzusetzen sind und im Beispiel eine<br />

höhere Aktivität aufweisen. Die Spalte<br />

»Blk_read/s« bezeichnet die Anzahl der<br />

Blöcke, die <strong>Linux</strong> pro Sekunde vom angegebenen<br />

Gerät liest. Mit einem Block<br />

sind in der Regel 512 Byte gemeint. Unter<br />

»Blk_wrtn/s« stehen die Schreibzugriffe<br />

in der gleichen Maßeinheit, während die<br />

letzten beiden Spalten »Blk_read« sowie<br />

»Blk_wrtn« Gesamtstatistiken seit dem<br />

letzten Systemstart darstellen.<br />

www.linux-magazin.de<br />

73<br />

Abbildung 3: Iostat informiert über CPUs und eingehängte Blockgeräte.<br />

Abbildung 4: Das Netzwerktool Netstat zeigt die lauschenden Verbindungen.


Sysadmin<br />

www.linux-magazin.de Dstat & Co. 05/2012<br />

74<br />

Der Aufruf von Iostat ohne Parameter<br />

gibt einen guten Überblick über das<br />

I/​O-Geschehen. Bei Virtualisierung ist<br />

für Anwender zusätzlich der Wert »steal«<br />

von Interesse: Er zeigt an, wie viel Zeit<br />

die virtuellen Prozessoren mit unfreiwilligem<br />

Warten auf den Hypervisor verbringen.<br />

Wer die dargestellten Zahlen zu<br />

groß und somit zu unleserlich findet, der<br />

kann die Ausgabe per »iostat ‐m« auf<br />

MByte trimmen.<br />

Weiteres Feintuning erreicht der Admin<br />

mit der Angabe des Parameters »‐p« und<br />

der zu überwachenden Partition. Das<br />

Kommando »iostat ‐c« zeigt ausschließlich<br />

CPU-Werte an. Wer nicht an den Zahlen<br />

für die Blockdevices interessiert ist,<br />

kann sich damit unnötige Zeilen sparen.<br />

Für mehr Übersicht bei den Blockgeräten<br />

sorgt »iostat ‐d«, das die CPU-Statistiken<br />

versteckt. Natürlich lassen sich die Parameter<br />

auch kombinieren: »iostat ‐d ‐p<br />

drbd4« zeigt nur an, was gerade auf dem<br />

Device »drbd4« los ist.<br />

Iostat unterstützt auch per NFS eingehängte<br />

Dateisysteme. Mit »iostat ‐n« lässt<br />

der Admin eine Übersicht erstellen, die<br />

alle eingehängten NFS-Verzeichnisse sowie<br />

den aktuellen Traffic in Blöcken und<br />

KByte pro Sekunde angibt. Wer mehr Details<br />

zum I/​O-Geschehen benötigt, dem<br />

sei die Manpage ans Herz gelegt. Dort<br />

finden sich weitere nützliche Schalter wie<br />

etwa »‐x«, der die Statistikanzeige um<br />

zahlreiche Werte erweitert.<br />

E Netstat<br />

Netstat [3], das Tool für die Netzwerkdiagnose,<br />

ist gleichermaßen in der Windows-<br />

und <strong>Linux</strong>-Welt beliebt. Obwohl es<br />

mittlerweile die meisten <strong>Linux</strong>-Systeme<br />

durch das Programm »ss« ersetzen, greifen<br />

Systembetreuer immer noch zu dem<br />

gewohnten Werkzeug, das bereits fast 30<br />

Jahre auf dem Buckel hat. Die Funktionen<br />

von Netstat sind so umfangreich, dass<br />

Abbildung 5: Alle oder einzelne Netzwerkinterfaces<br />

lassen sich mit Ifstat beobachten.<br />

dieser Artikel nur die allerwichtigsten<br />

vorstellen kann. Das Kommando »netstat<br />

‐‐ip« beispielsweise zeigt die Anzahl der<br />

gleichzeitig offenen Verbindungen, der<br />

Admin kann sie mit<br />

netstat --ip | wc ‐l<br />

zählen. Auskunft über lauschende Verbindungen<br />

erteilt Netstat mit der Option<br />

»‐l«, wie Abbildung 4 zeigt (Ausgabe gekürzt).<br />

Weitere nützliche Optionen nennt<br />

die Netstat-Manpage.<br />

E Ifstat<br />

Das Programm Ifstat [4] zeigt kurz und<br />

bündig den Netzwerktraffic für alle gefundenen<br />

Netzwerkinterfaces an. Ruft<br />

der Admin das Programm mit den Optionen<br />

»‐a ‐b« auf, erhält er rasch Übersicht<br />

(Abbildung 5), denn so erfasst es alle<br />

Schnittstellen. Die ein- und ausgehenden<br />

Daten gibt das Programm in KBit/​s<br />

an. Nutzen die Dienste auf dem System<br />

nicht alle verfügbaren Interfaces, lassen<br />

sich die ungenutzten mit der Option »‐z«<br />

ausblenden. Wer die Ausgabe gerne so<br />

kurz wie möglich hält, lässt mit »ifstat ‐S«<br />

immer nur eine Zeile ausgeben, die sich<br />

ständig aktualisiert.<br />

E Dstat: Alle vereint<br />

Wem das zu viele einzelne Tools für die<br />

Systemanalyse sind, der findet in Dstat<br />

[5] eine eierlegende Wollmilchsau, die<br />

fast alle Funktionen in sich vereint. Seine<br />

Farbgebung und feste Spaltenbreiten führen<br />

zudem dazu, dass es die Zahlen stets<br />

übersichtlich geordnet präsentiert. Die<br />

GPL-Software Dstat wurde 2004 in Python<br />

geschrieben und ist modular aufgebaut.<br />

Jede Spalte in der Ausgabe wird<br />

von einem Modul erzeugt, das sich unter<br />

»/usr/share/dstat/« findet.<br />

Dstat ist bei den meisten Distributionen<br />

nachzuinstallieren, es steckt in der Regel<br />

im gleichnamigen Paket. Gleich ein<br />

erster Aufruf ohne Argumente zeigt die<br />

Ähnlichkeit mit Vmstat (Abbildung 6).<br />

So wie jener Klassiker stellt auch Dstat<br />

alle Werte in Tabellenform dar.<br />

Die rote Farbe ist nicht unbedingt ein<br />

Indikator für ein Problem. Dstat ändert<br />

die Farbe, sobald Werte über einen im<br />

Modul festgelegten Schwellenwert hinausgehen.<br />

Dies soll die Lesbarkeit der Daten<br />

erhöhen und den Systemadministrator<br />

auf Änderungen im Systemverhalten<br />

aufmerksam machen. Wem jedoch die<br />

Farben ein Dorn im Auge sind, der kann<br />

sie mit »‐‐nocolor« deaktivieren oder mit<br />

»‐‐bw« an ein Terminal mit heller Hintergrundfarbe<br />

anpassen.<br />

Die Spaltenbezeichnungen stimmen weitgehend<br />

mit denen von Vmstat überein<br />

Tabelle 1: Dstat-Optionen<br />

kurz lang Funktion<br />

-c --cpu CPU-Statistiken aktivieren<br />

‐d --disk Messwerte für Disk-Statistiken<br />

aktivieren<br />

‐g --page Paging visualisieren<br />

‐i --int Interrupt-Werte anzeigen<br />

‐l --load Aktuelle Systemlast anzeigen<br />

‐m --mem Zahlen zur RAM-Verwendung<br />

‐n --net Netzwerkstatistiken<br />

‐s --swap Zeigt Swap-Werte an<br />

‐y --sys Visualisiert Context-Switches<br />

und Interrupts<br />

‐v --vmstat Bildet Vmstat mit Dstat ab<br />

Abbildung 6: Dstat sorgt mit Tabellenform und Farben für Übersichtlichkeit.<br />

Abbildung 7: Dstat in der Anwendung auf Festplattenpartitionen.


Dstat & Co. 05/2012<br />

Sysadmin<br />

Abbildung 8: Auf der Jagd nach dem größten Speicherverbraucher: Hier hat<br />

Dstat den LDAP-Daemon ermittelt.<br />

und bedürfen daher keiner weiteren Erklärung.<br />

Interessant dagegen ist die große<br />

Anpassbarkeit, die Dstats modularer Aufbau<br />

erlaubt. Eine Übersicht über verfügbare<br />

Plugins verschafft das Kommando<br />

»dstat ‐‐list«. Der Aufruf von Dstat ohne<br />

Parameter entspricht der Standardeinstellung<br />

mit:<br />

dstat ‐c ‐d ‐n ‐g ‐y<br />

Schalter, die sich mit einem einzigen »‐«<br />

aufrufen lassen, bedienen fest in Dstat<br />

implementierte Funktionen. Optionen,<br />

die aus externen Modulen stammen,<br />

brauchen zwei Striche »‐‐«. Plugins lassen<br />

sich daher mit »dstat ‐‐Pluginname«<br />

aufrufen. Wer etwa »dstat ‐‐proc‐count«<br />

eingibt, erhält eine sich permanent aktualisiertende<br />

Statistik über die gleichzeitig<br />

laufenden Prozesse.<br />

Da Dstat die vielfältigen Funktionen von<br />

Vmstat, Iostat, Ifstat und Netstat abbildet,<br />

empfiehlt selbst der Programmautor<br />

Dag Wieers auf seiner Webseite, das Tool<br />

themenorientiert aufzurufen. Das bedeutet<br />

beispielsweise nur die Festplatten und<br />

Mountpunkte zu betrachten, was mit<br />

dem Kommando<br />

dstat ‐d ‐‐disk‐util ‐‐freespace<br />

gelingt. Das Ergebnis zeigt Abbildung 7<br />

(Ausgabe gekürzt). Dstat teilt die Ausgabe<br />

in vorhandene Disks und Partitionen.<br />

Wenn im Hintergrund Schreib- oder<br />

Abbildung 10: Dstat beim Beobachten der TCP- und UDP-Sockets.<br />

Löschvorgänge auf den dargestellten Partitionen<br />

erfolgen, machen sich die Änderungen<br />

automatisch in Dstat bemerkbar.<br />

Wer auf seinem System NFS-Verzeichnisse<br />

einbindet, findet diese ebenfalls in<br />

den Statistiken wieder.<br />

Regelmäßige Benutzer von Vmstat<br />

möchten sich vielleicht auf die Analyse<br />

des Speichers konzentrieren. Das Kommando<br />

dstat ‐g ‐l ‐m ‐s ‐‐top‐mem<br />

erzeugt eine Ansicht für diesen Zweck. In<br />

Abbildung 8 ist zu sehen, wie der LDAP-<br />

Server »slapd« im Laufe der Zeit mehr<br />

Ressourcen für sich beansprucht. Die<br />

Option »‐‐top‐mem« entlarvt den Prozess<br />

als Speicherverbraucher Nummer eins.<br />

Parallel zum steigenden RAM-Bedarf<br />

von »slapd« verzeichnet die Spalte »memory‐usage«<br />

einen Anstieg des Cache.<br />

Während des Dstat-Durchlaufs hat der<br />

Admin eine aufwändige LDAP-Suche gestartet,<br />

die den Daemon zum Lesen von<br />

der Festplatte veranlasste.<br />

Daneben kann der Dstat-Anwender auch<br />

den Fokus auf die Beobachtung der CPU<br />

legen, ähnlich wie es ihm mit Iostat möglich<br />

ist. Um den Prozess zu sehen, der die<br />

meiste CPU-Zeit benötigt, gibt er<br />

dstat ‐c ‐y ‐l ‐‐proc‐count ‐‐top‐cpu<br />

ein (Abbildung 9). Wie der Wert für »idl«<br />

unter »total‐cpu‐usage« signalisiert, ist<br />

das untersuchte System nicht<br />

sehr ausgelastet.<br />

Aufmerksame Systemadministratoren<br />

werden das Programm<br />

zudem noch auf das<br />

Netzwerk loslassen. Dazu<br />

dient das Kommando:<br />

Abbildung 9: Dstat verwandelt sich mit den richtigen Optionen in eine Art Iostat<br />

und beobachtet die CPU-Auslastung.<br />

dstat ‐n ‐‐socket ‐‐tcp ‐‐udp<br />

Während die Messwerte für<br />

die Sockets und das UDP-<br />

Protokoll in diesem Beispiel<br />

wenig Veränderung zeigen,<br />

ist unter »net/total« ersichtlich, dass die<br />

Netzwerkkarten gerade Anfragen beantworten<br />

mussten (Abbildung 10). Auch<br />

hier steckte ein LDAP-Search hinter der<br />

gesteigerten Aktivität, die Dstat durch<br />

Farbänderung visuell hervorhebt.<br />

Dstat entpuppt sich als Funktionswunder,<br />

gleichzeitig aber auch als regelrechtes<br />

Optionsmonster. Damit der Überblick<br />

nicht verloren geht, fasst Tabelle 1 die<br />

wichtigsten Optionen aus den Beispielen<br />

diese Artikels zusammen.<br />

Ausblick<br />

Wer Dstat für sich entdeckt hat, kommt<br />

schnell auf die Idee, Plugins für seine<br />

eigenen Anforderungen zu schreiben.<br />

Als Programmiersprache kommt dafür<br />

Python zum Einsatz. Sind die selbst<br />

gemachten Module unter »/usr/share/<br />

dstat/« abgelegt, lassen sie sich als Kommandozeilen-Option<br />

mit zwei Minuszeichen<br />

vor dem Modulnamen aufrufen.<br />

Eine passende Vorlage liefert die Datei<br />

»dstat_helloworld.py« im Modulverzeichnis.<br />

Das Codebeispiel lässt sich mit »dstat<br />

‐‐hello« aufrufen, erfüllt aber nur einen<br />

exemplarischen Zweck.<br />

Wer mehr Wert auf aussagekräftige und<br />

praxisnahe Beispiele legt, sollte einen<br />

Blick in die anderen Dateien im Verzeichnis<br />

»/usr/share/dstat« werfen. Hier gibt<br />

es für nahezu alle Anwendungsfälle bereits<br />

eine Vorlage, die sich für die eigenen<br />

Zwecke nutzen lässt. (mhu) n<br />

Infos<br />

[1] Vmstat: [http:// procps. sourceforge. net]<br />

[2] Iostat: [http:// sebastien. godard.​<br />

pagesperso‐orange. fr/ documentation. html]<br />

[3] Netstat: [http:// www. tazenda. demon. co.​<br />

uk/ phil/ net‐tools/]<br />

[4] Ifstat: [http:// gael. roualland. free. fr/ ifstat]<br />

[5] Dstat:<br />

[http:// dag. wieers. com/ home‐made/ dstat]<br />

www.linux-magazin.de<br />

75


Forum<br />

www.linux-magazin.de Recht 05/2012<br />

78<br />

EuGH kippt allgemeine Prüf- und Filterpflichten für Provider<br />

Nicht massentauglich<br />

Die Urheber und Rechteverwerter wollen nicht jedem einzelnen Raubkopierer nachlaufen, besser wäre es, in<br />

einem Rundumschlag die Provider in die Pflicht zu nehmen. Geht nicht, sagt jetzt der EuGH. Fred Andresen<br />

© sajola, photocase.com<br />

Mitte Februar hat der Europäische Gerichtshof<br />

(EuGH) über eine Vorlagesache<br />

entschieden [1], die ein belgisches Gericht<br />

eingereicht hatte. Die Belgier waren<br />

mit einem Rechtsstreit zwischen einer<br />

Urheberverwertungsgesellschaft und einem<br />

Social-Network-Betreiber befasst.<br />

Der EuGH hatte die Frage zu klären, ob<br />

die Pflicht des Social-Network-Betreibers,<br />

die Konten seiner Benutzer daraufhin zu<br />

überprüfen, ob dort urheberrechtlich geschütztes<br />

Material gelagert ist, mit dem<br />

europäischen Recht konform geht. Die<br />

Verwertungsrechte des beanstandeten<br />

Materials liegen bei der genannten Verwertungsgesellschaft.<br />

Im Ausgangsverfahren stritten diese Gesellschaft,<br />

die Autoren, Komponisten und<br />

Herausgeber musikalischer Werke vertritt,<br />

mit dem Betreiber der Internetplattform<br />

für ein soziales Netz. Wer sich auf<br />

dieser Plattform anmeldet, kann einen<br />

persönlichen Bereich (Profil) einrichten,<br />

den damit verbundenen Speicherplatz<br />

mit beliebigen Inhalten füllen und diese<br />

weltweit verfügbar machen. Auf der<br />

Plattform tauschen sich mehr als zehn<br />

Millionen Benutzer täglich aus.<br />

Neben der gewöhnlichen Chatfunktion,<br />

einem Tagebuch und einer Liste der persönlichen<br />

Vorlieben liegen dort unter<br />

anderem persönliche Fotos, aber auch<br />

Videos und Musik (Abbildung 1). Letzteres<br />

war der Verwertungsgesellschaft, die<br />

auch für die Verwendung der Werke ihrer<br />

Klientel im Web zuständig ist, ein Dorn<br />

im Auge. Diese Konstellation kennt man<br />

nicht nur in Belgien.<br />

Das sollen andere machen<br />

Im Februar 2009 meldete sich die Verwertungsgesellschaft<br />

bei dem Plattformbetreiber<br />

und wollte über eine finanzielle<br />

Abgeltung der Nutzungsrechte an den<br />

von ihr verwalteten Musikstücken verhandeln.<br />

Eine Einigung kam nicht zustande.<br />

Nachdem eine Anfang Juni gefor-<br />

derte Unterlassungserklärung vom Plattformbetreiber<br />

ausblieb, erhob die Verwertungsgesellschaft<br />

drei Wochen später<br />

eine Unterlassungsklage bei Gericht. In<br />

dieser Unterlassungserklärung hätte sich<br />

der Betreiber verpflichten sollen, künftig<br />

keine Stücke aus dem Repertoire der<br />

Gesellschaft über die Kundenprofile zu<br />

veröffentlichen.<br />

Der Plattformbetreiber wandte dagegen<br />

ein, dass die beantragte Unterlassungsanordnung<br />

zu einer allgemeinen Überwachungspflicht<br />

führe, die nach europarechtlichen<br />

Vorschriften verboten sei.<br />

Außerdem bedeute diese Verpflichtung,<br />

dass auf eigene Kosten und ohne zeitliche<br />

Beschränkung ein generelles und präventives<br />

Überwachungs- und Filtersystem für<br />

alle Nutzer einzurichten sei. Dies stelle<br />

eine Einschränkung der unternehmerischen<br />

Freiheit und gleichzeitig ein datenschutzrechtliches<br />

Problem dar, konterten<br />

die Firmenanwälte.<br />

Die betroffenen europäischen Rechtsvorschriften<br />

sind EU-Richtlinien, die unmittelbare<br />

Bindungswirkung entfalten, sei<br />

es durch die Umsetzung der Einzelstaaten<br />

in nationales Recht oder durch die<br />

Entfaltung unmittelbarer Rechtswirkung<br />

auch für den einzelnen Bürger, sofern<br />

die Mitgliedsstaaten die Richtlinien nicht<br />

vollständig oder fristgerecht umsetzen<br />

(siehe Kasten „Gemeinschaftsrecht“).<br />

Die von den Mitgliedsstaaten umgesetzten<br />

Rechtsvorschriften sind aber in jedem<br />

Fall richtlinienkonform auszulegen.<br />

EU-Recht geht vor<br />

Die für die Entscheidung maßgeblichen<br />

EU-Vorschriften sind die Richtlinie 2000/​<br />

31/​EG (E-Commerce-Richtlinie, [2]), die<br />

Richtlinie 2001/​29/​EG zur Harmonisierung<br />

bestimmter Aspekte des Urheber-


echts und der verwandten Schutzrechte<br />

in der Informationsgesellschaft (Urheberrechts-Richtlinie,<br />

[3]) sowie die Richtlinie<br />

2004/​48/​EG über den Schutz der<br />

Rechte am geistigen Eigentum [4].<br />

Kernaussagen<br />

Kernaussagen der E-Commerce-Richtline<br />

sind, dass der Dienstanbieter in der Regel<br />

nicht für die Inhalte Dritter verantwortlich<br />

ist und dass ihn keine allgemeinen<br />

Überwachungs- oder Ausforschungspflichten<br />

treffen. Das bestimmen die Artikel<br />

12 und 13 der Richtlinie. In den Erwägungsgründen<br />

steht dazu, dass es den<br />

Mitgliedsstaaten unbenommen bleibt,<br />

gerichtliche oder behördliche Anordnungen<br />

zu treffen, die Rechtsverletzungen<br />

abstellen oder verhindern. Das schließt<br />

die Löschung oder Sperrung der rechtswidrigen<br />

Inhalte ein.<br />

Dies trifft aber nur zu, solange es sich<br />

bei diesen Anordnungen nicht um allgemeine<br />

Überwachungs- oder Ausforschungspflichten<br />

handelt. Eine nach vernünftigem<br />

Ermessen zu erwartende und<br />

in den innerstaatlichen Vorschriften festgehaltene<br />

Sorgfaltspflicht ist den Dienste-<br />

Anbietern allerdings zuzumuten.<br />

Keine Verantwortung der<br />

Provider<br />

So soll der Dienste-Anbieter insbesondere<br />

dann von einer Verantwortlichkeit für die<br />

von seinen Nutzern eingestellten oder<br />

eingeleiteten Informationen frei bleiben,<br />

wenn er keine tatsächliche<br />

Kenntnis von der<br />

Rechtswidrigkeit hat<br />

und auch keine Tatsachen<br />

kennt, die offensichtlich<br />

auf Rechtswidrigkeit<br />

schließen<br />

lassen.<br />

Sobald er Kenntnis<br />

von der Rechtswidrigkeit<br />

erhält, muss er allerdings<br />

unverzüglich<br />

tätig werden und die<br />

betreffenden Inhalte<br />

löschen oder sperren.<br />

In der Urheberrechts-<br />

Richtlinie ist festgehalten,<br />

dass die Frage<br />

der Haftung eines Dienstanbieters der<br />

vorgenannten E-Commerce-Richtline vorbehalten<br />

bleibt.<br />

Die Mitgliedsstaaten müssen allerdings<br />

konkrete Maßnahmen festsetzen, um<br />

wirksame Sanktionen und Rechtsbehelfe<br />

zugunsten der Urheber (und Verwertungsgesellschaften)<br />

zu ermöglichen,<br />

wenn Dritte geschützte Inhalte im Internet<br />

verbreiten. Abgesehen von derartigen<br />

Maßnahmen, die bei Verletzungen im<br />

Einzelfall greifen, soll es aber bei den in<br />

der E-Commerce-Richtlinie aufgestellten<br />

Grundsätzen bleiben.<br />

Die Richtlinie über den Schutz der Rechte<br />

am geistigen Eigentum hält fest, dass es<br />

die Mitgliedsstaaten den in ihren Rechten<br />

verletzten Urhebern ermöglichen,<br />

Anordnungen auch gegen „Mittelspersonen“<br />

durchzusetzen, deren Dienste<br />

Abbildung 2: Das pauschale Überprüfen der Nutzer ist nicht zumutbar.<br />

Dritte missbrauchen, um rechtswidrig geschützte<br />

Inhalte anzubieten. Auch nach<br />

dieser Richtlinie soll es darüber hinaus<br />

bei den grundsätzlichen Regelungen der<br />

E-Commerce-Richtline bleiben.<br />

Das in Belgien angerufene Gericht hat vor<br />

diesem Hintergrund dem EuGH die Frage<br />

vorgelegt, ob die europarechtlichen Bestimmungen<br />

einer nationalen Anordnung<br />

entgegenstehen, die den Plattformbetreiber<br />

verpflichten ein System einzurichten,<br />

das sämtliche Informationen aller<br />

Plattformnutzer präventiv, also ohne gegebenen<br />

Anlass, auf eigene Kosten und<br />

zeitlich unbegrenzt filtert.<br />

Die Intention der klagenden Verwertungsgesellschaft<br />

ist also, nicht mehr<br />

einzelnen Rechtsverletzungen nachjagen<br />

zu müssen, sondern diese bereits vorab<br />

oder unmittelbar nach dem Einstellen der<br />

rechtswidrigen Inhalte durch Dritte wirksam<br />

zu verhindern. Der Plattformbetreiber<br />

hätte demnach die Pflicht, vorab die<br />

rechtswidrigen Inhalte zu ermitteln.<br />

© MPower., photocase.com<br />

Recht 05/2012<br />

Forum<br />

www.linux-magazin.de<br />

79<br />

© Denis Tevekov, 123RF<br />

Abbildung 1: Wer sich im Social Web als DJ betätigt, bekommt mit den Rechteverwertern Probleme.<br />

Abwägungssache<br />

Der angerufene EuGH hat gemäß den<br />

Erwägungsgründen, die Bestandteil der<br />

Richtlinien sind und diese konkretisieren,<br />

erkannt, dass auch die detaillierteren<br />

Bestimmungen der Urheberrechts-<br />

Richtlinie und der Richtlinie über den<br />

Schutz der Rechte am geistigen Eigentum<br />

nicht geeignet sind, die in der älteren<br />

E-Commerce-Richtline festgeschriebenen<br />

Grundsätze zu berühren. Und dort<br />

heißt es, dass generelle und präventive<br />

Ausforschungspflichten auf Kosten der


Forum<br />

www.linux-magazin.de Recht 05/2012<br />

80<br />

Dienstbetreiber unzulässig sind. Die beantragte<br />

Anordnung verstoße demnach<br />

gegen Gemeinschaftsrecht.<br />

Zwar sei es bereits durch die bisherige<br />

Rechtsprechung des EuGH [5] möglich,<br />

dass Mitgliedsstaaten Maßnahmen setzen,<br />

die es Urhebern und Verwertungsgesellschaften<br />

ermöglichen, bereits begangene<br />

Rechtsverletzungen zu verfolgen<br />

und auch neuen Verletzungen vorzubeugen.<br />

Dennoch gelten dafür auch die Beschränkungen,<br />

die sich aus den genannten<br />

Richtlinien ergeben (Abbildung 2).<br />

Das Ergebnis – nicht nur für<br />

den Einzelfall<br />

Obwohl es sich bei der Frage nur um<br />

die Überprüfung einer einzelnen gerichtlichen<br />

Anordnung handelte, stellt<br />

der EuGH damit eine Regel auf, an der<br />

sich gesetzliche Verpflichtungen der<br />

Mitgliedsstaaten messen lassen müssen.<br />

Befürchtungen, die Rechteverwerter mit<br />

starker Lobby könnten den Gesetzgeber<br />

dazu bewegen, eine allgemeine Prüfund<br />

Filterpflicht zu Lasten der Internetdienste-Anbieter<br />

einzuführen, um Urheberrechtsverletzungen<br />

künftig bereits in<br />

einem früheren Stadium und – für die<br />

Urheber und Verwertungsgesellschaften<br />

– kostenschonend auszuschließen, sind<br />

daher sachlich unberechtigt.<br />

Das heißt jedoch nicht, dass eine derartige<br />

Prüf- und Filterpflicht damit<br />

gänzlich unmöglich wäre. Würde eine<br />

Gemeinschaftsrecht<br />

Regelung nur eines<br />

der genannten Kriterien<br />

umgehen – zum<br />

Beispiel die zeitlich<br />

unbegrenzte Filterung<br />

oder die Kostenlast<br />

des Dienste-Anbieters<br />

– könnte sie durchaus<br />

konform zum europäischen<br />

Recht sein.<br />

Kostenfalle für<br />

Verwerter<br />

Während früher noch der Rat der Europäischen<br />

Union das einzige gesetzgebende Organ der<br />

EU war, arbeiten heute, also nach dem Abschluss<br />

des Vertrags von Maastricht, der Rat<br />

und das Europäische Parlament in aller Regel<br />

zusammen an der Rechtsetzung. Die Rechtsvorschriften<br />

der EU teilt man dabei in zwei<br />

Gruppen ein, das primäre und das sekundäre<br />

Gemeinschaftsrecht.<br />

Unter dem primären Gemeinschaftsrecht versteht<br />

man die Gründungsverträge der europäischen<br />

Gemeinschaften und deren Ergänzungen<br />

sowie den Vertrag über die Europäische Union<br />

mit seinen Änderungen und Ergänzungen. In<br />

diesen Vorschriften, vergleichbar etwa einer<br />

Verfassung, sind die Struktur, die Kompetenzen<br />

und die Entscheidungsabläufe detailliert<br />

geregelt.<br />

Das sekundäre Gemeinschaftsrecht bilden Verordnungen,<br />

Richtlinien, Entscheide, Empfehlungen<br />

und Stellungnahmen, daneben noch ein<br />

paar weitere Handlungsformen, die allerdings<br />

keine selbstständige Rechtswirkung entfalten.<br />

Die bedeutsamsten Akte des sekundären Gemeinschaftsrechts<br />

sind Richtlinien und Verordnungen.<br />

In Richtlinien bestimmt die EU ein Ziel sowie<br />

eine Frist für dessen Umsetzung. Die Mitgliedsstaaten<br />

müssen eine Richtlinie in nationales<br />

Recht umsetzen. Geschieht dies nicht innerhalb<br />

der in der Richtlinie gesetzten Frist, können<br />

sich die Bürger unter Umständen unmittelbar<br />

auf die Richtlinie berufen, um eigene Rechte<br />

geltend zu machen.<br />

Die Verordnungen gelten unmittelbar und direkt<br />

in allen Mitgliedsstaaten. Sie verpflichten<br />

und berechtigen die Bürger, Behörden oder<br />

Staaten unmittelbar, ohne dass die Regelung<br />

noch in innerstaatliches Recht umgesetzt werden<br />

müsste.<br />

Abbildung 3: Fehlt nur ein Teil der von den Rechteverwertern angestrebten<br />

Überwachung, lohnt sie sich finanziell nicht mehr.<br />

Faktisch ist es aber<br />

nur die Gesamtheit<br />

der Kriterien, die eine<br />

Prüf- und Filterpflicht<br />

für die Rechte-Inhaber<br />

interessant macht.<br />

Müssten die Verwerter<br />

auch nur einen Teil<br />

der Kosten tragen, die<br />

für die Filterung anfallen,<br />

geht die Kosten-Nutzen-Rechnung<br />

nicht mehr auf. Müssten sie regelmäßig<br />

erneute Filterungen beantragen, auch<br />

nicht. Das Begrenzen der Filter auf einzelne<br />

Benutzer setzt wiederum voraus,<br />

diese vorab zu ermitteln – ein Aufwand,<br />

der bereits bei der derzeit möglichen<br />

Rechtsdurchsetzung hohe Kosten verursacht<br />

(Abbildung 3).<br />

Alles in allem hat das Urteil des EuGH<br />

klargestellt, dass es auch weiterhin den<br />

Rechte-Inhabern obliegt, die Urheberrechtsverletzungen<br />

im Einzelfall zu verfolgen<br />

und auf eigene Kosten die Rechteverletzer<br />

zu ermitteln und Ansprüche<br />

gegen sie durchzusetzen. (uba) n<br />

Infos<br />

[1] EuGH, Urteil vom 16.02.1012, Az. C-360/​10:<br />

[http:// lexetius. com/ 2012,205]<br />

[2] E-Commerce-Richtline: [http:// eur‐lex.​<br />

europa. eu/ LexUriServ/ LexUriServ. do? uri<br />

=OJ:L:2000:178:0001:0016:DE:PDF]<br />

[3] Urheberrechtsrichtline: [http:// eur‐lex.​<br />

europa. eu/ LexUriServ/ LexUriServ. do? uri<br />

=OJ:L:2001:167:0010:0019:DE:PDF]<br />

[4] Richtlinie zur Durchsetzung der Rechte<br />

am geistigen Eigentum: [http:// www.​<br />

urheberrecht. org/ topic/ enforce/ eu/​<br />

l_19520040602de00160025. pdf]<br />

[5] EuGH-Urteil vom 24.11.2011, Az. C70/10:<br />

[http:// www. telemedicus. info/​<br />

urteile/ Telekommunikationsrecht/​<br />

Providerhaftung/ 1315‐EuGH‐Az‐C7010<br />

‐Scarlet‐Extended‐Sperrverfuegungen<br />

‐gegen‐Provider. html]<br />

Der Autor<br />

© kallejipp, photocase.com<br />

RA Fred Andresen ist Mitglied<br />

der Rechtsanwaltskammer<br />

München und der Arbeitsgemeinschaft<br />

Informationstechnologie<br />

im Deutschen<br />

Anwaltverein (DAVIT).


Auf den Punkt gebracht<br />

Leserbriefe<br />

Leserbriefe 05/2012<br />

Forum<br />

Haben Sie Anregungen, Statements oder Kommentare? Dann schreiben Sie an [redaktion@linux-­magazin.­de].<br />

Die Redaktion behält es sich vor, die Zuschriften und Leserbriefe zu kürzen. Sie veröffentlicht alle Beiträge mit<br />

Namen, sofern der Autor nicht ausdrücklich Anonymität wünscht.<br />

www.linux-magazin.de<br />

81<br />

Nginx gegen Apache<br />

01/​12, S. 54: Der Artikel „Schneller Shoppen“<br />

stellt Nginx im Event-driven-Betrieb<br />

via Fast-CGI einer Installation von Apache<br />

(Prefork) und Mod_php gegenüber. Das<br />

halte ich für unfair, denn auch Apache<br />

2 ließe sich via »apache2‐mpm‐event«<br />

ereignisgesteuert betreiben. Wer in diesem<br />

Szenario PHP nutzen möchte, muss<br />

zwangsläufig auch Fast-CGI verwenden.<br />

Der abgedruckte Benchmarktest vergleicht<br />

Äpfel mit Birnen. Ich glaube bei<br />

einer geeigneten Gegenüberstellung wären<br />

die Unterschied nicht groß gewesen.<br />

Ralf Hildebrandt, per E-Mail<br />

Die Versuchsanordnung für die Benchmarks<br />

war, im Nachhinein betrachtet,<br />

unglücklich gewählt. Nginx bietet dennoch<br />

bessere Werte bei Speicherverbrauch<br />

und Requests per Second, wie ein weiterer<br />

Benchmark unter [http://​­nbonvin.​<br />

­wordpress.​­com/​­2011/​­03/​­14/​­apache‐vs<br />

‐nginx‐vs‐varnish‐vs‐gwan/] zeigt. (Jan<br />

Brinkmann)<br />

Harte Nuss<br />

03/​12, S. 72: Die Frage 12 des Winterrätsels<br />

ist vage formuliert. „Welche Ziffer<br />

brachte der erwähnte arabische Weise in<br />

die Wissenschaft?“ Die in der Antwort genannte<br />

Null datieren meine Schulbildung<br />

und die Wikipedia völlig anders als Ihr:<br />

Die Perser und Babylonier besaßen sie<br />

schon mehrere Jahrhunderte v.Chr. und<br />

in Ägypten hat man Zeugnisse aus dem<br />

2. Jahrhundert v.Chr. gefunden.<br />

Irgendwann im 5. bis 2. Jahrhundert<br />

v.Chr. hat der indische Gelehrte Pingala<br />

das Binärsystem mit Nullen und Einsen<br />

erfunden, wenn auch gegenüber dem<br />

modernen um 1 versetzt, da mit 1 beginnend.<br />

In der Antwort sprecht Ihr dann<br />

aber vom Konzept der Null, was ich entgegen<br />

eurer Frage nicht als Ziffer, sondern<br />

als die Zahl Null verstehe, etwas Abstrakteres,<br />

wofür die Menschheit viel länger<br />

gebraucht hat. Die gab es in Indien wohl<br />

ab dem 5. Jahrhundert, sie wurde 628<br />

im Lehrbuch „Brahmasphutasiddhanta“<br />

wissenschaftlich definiert. Das Verdienst<br />

der Araber ist wohl eher, dieses Wissen<br />

gen Westen vermittelt zu haben.<br />

Daniel Pfeiffer, per E-Mail<br />

Danke für die Präzisierung. Wie Sie<br />

schreiben, war den antiken Hochkulturen<br />

das Konzept der Null als neutrales Element<br />

der Addition oder als Ziffer etwa im<br />

Binärsystem bereits bekannt. Ihren Eingang<br />

als explizite Ziffer in der schriftlich<br />

niedergelegten Wissenschaftsliteratur des<br />

Abendlandes fand sie jedoch erst durch<br />

Al-Chwarizmi, der sein Werk „Über das<br />

Rechnen mit indischen Ziffern“ um 825<br />

auf Arabisch verfasste und dessen lateinische<br />

Übersetzung die Grundlage vieler<br />

schriftlich fixierter Rechenregeln bildete.<br />

(Nils Magnus)<br />

Knoppix 7.0<br />

04/​12, S. 44: Ich bin von Knoppix 7.0<br />

hellauf begeistert, unter anderem weil<br />

es so gut mit meiner alten Hardware zusammenarbeitet.<br />

Leider konnte ich im<br />

Menü kein Tool zum Remastern der DVD<br />

finden. Was kann ich dazu benutzen? Wo<br />

finde ich außerdem das Programm, mit<br />

dem man den Rechner per Webcam und<br />

Kopfbewegung steuert? Und wann steht<br />

die neue Knoppix-Version zum allgemeinen<br />

Download bereit?<br />

R. H., per E-Mail<br />

Danke für das Lob. Zum Remastern: Ich<br />

zeige im Artikel in Listing 1, wie man das<br />

Hintergrundbild austauscht, die proprietären<br />

Komponenten löscht und das Ganze<br />

wieder in ein ISO-Image verpackt. Dazu<br />

sollten Sie sich mit <strong>Linux</strong> und der Kommandozeile<br />

auskennen. Ein grafisches<br />

Tool gibt es dafür nicht. Die Steuerung<br />

der Maus mit der Kamera heißt Viacam<br />

und ist unter »Barrierefreiheit« zu finden.<br />

Wie bei den öffentlichen Download-<br />

Versionen von Knoppix üblich, werde ich<br />

die neue Release auf meiner Webseite<br />

[http://​­knopper.​­net] ankündigen. Sie<br />

können den RSS-Feed im Browser abonnieren,<br />

um zu erfahren, wann es so weit<br />

ist. (Klaus Knopper)<br />

Virtuelles Wine<br />

03/​12, S. 64: Zum Wine-Artikel „Neuer<br />

Jahrgang“: Das Verwalten der vorgestellten<br />

Kontexte über Präfixe lässt sich komfortabler<br />

gestalten. Meine Skriptsammlung<br />

„Virtual Wine“ [https://​­github.​<br />

­com/​­htgoebel/​­virtual‐wine] bereitet<br />

einen Kontext vor. Wird dieser aktiviert,<br />

kann der Anwender die Programme<br />

»wine« und »msiexec« ohne das umständliche<br />

Präfix aufrufen. Listing 1 zeigt eine<br />

typische Shellsitzung. Das Ganze ist inspiriert<br />

von »virtualenv« für Python.<br />

Hartmut Goebel, per E-Mail n<br />

Listing 1: Virtual Wine<br />

01 vwine‐setup ~/Präfix<br />

02 # Aktivieren / Umschalten<br />

03 ~/Präfix/bin/active<br />

04 # Wine benutzen<br />

05 wine regedit<br />

06 # Deaktivieren<br />

07 deactivate


Forum<br />

www.linux-magazin.de Bücher 05/2012<br />

82<br />

Ein Buch und ein Videotraining zu Jquery<br />

Tux liest<br />

Diese Rezensions-Seite widmet sich ganz Jquery. Ein gedrucktes Buch und ein Videotraining auf DVD-ROM treten<br />

an, um Programmierern beizubringen, wie sie mit der Bibliothek dynamische Webseiten bauen. Michael Müller<br />

Interaktive Seiten, kompatibel mit allen<br />

gängigen Browsern, dazu Ajax: So<br />

lauten die typischen Anforderungen an<br />

eine moderne Webpräsenz. Um sie zu<br />

erfüllen, setzen viele Entwickler auf die<br />

freie Javascript-Bibliothek Jquery. Das<br />

<strong>Linux</strong>-<strong>Magazin</strong> bespricht zwei Publikationen<br />

zum Thema, ein Buch und ein<br />

Videotraining auf DVD-ROM.<br />

Zwei Medienformate<br />

Ralph Steyers Buch „Jquery“ und André<br />

Wöstens gleichamiges Videotraining behandeln<br />

zunächst Grundlagen, Selektion,<br />

Document Object Model (DOM), Effekte<br />

und Ajax, danach kommen sie zu den<br />

Jquery-Spielarten UI und Mobile. Im Großen<br />

und Ganzen spannen somit beide<br />

vergleichbare Bögen auf.<br />

Die Unterschiede liegen im Detail: Steyer<br />

eröffnet sein Buch mit einigen Beispielen<br />

und relativ wenigen Erklärungen.<br />

Nach diesen Appetithappen erläutert er<br />

Jquery-Features in den folgenden Kapiteln<br />

ausführlich. Aus Platzgründen nutzt<br />

er dabei meist kurze und etwas abstrakte<br />

Codefragmente. Das Video dagegen spielt<br />

eigene Stärken aus und zeigt auch größere<br />

Webseiten, um dabei den Fokus auf<br />

jeweils interessante Stellen zu lenken.<br />

Damit das Ganze übersichtlich bleibt,<br />

präsentiert aber auch Wösten in der Regel<br />

keine langen Quelltexte.<br />

Info<br />

Ralph Steyer:<br />

„jQuery“<br />

Addison-Wesley, 2011<br />

500 Seiten<br />

35 Euro<br />

ISBN 978-3-8273-3072-7<br />

Die Auswirkungen von Änderungen kann<br />

er im Video sofort im Browser vorführen<br />

– live und in Farbe. Steyer bleiben hier<br />

nur Screenshots, von denen er jedoch<br />

ausführlich Gebrauch macht, sodass der<br />

Leser gut folgen kann.<br />

Ausgehend vom Jquery-Objekt zeigen<br />

beide, wie der Entwickler die Elemente<br />

der Webseite adressiert und manipuliert<br />

und wie er neue Elemente dynamisch<br />

einfügt. In Steyers Buch sind die Beispiele<br />

insgesamt kürzer, dafür jedoch zahlreicher.<br />

So erfährt der Leser zu diversen<br />

Themen einige zusätzliche Details. Teilweise<br />

sind Funktionen nacheinander aufgeschrieben,<br />

sodass eine Art Referenz<br />

entsteht, nach Themen geordnet. Zudem<br />

gibt es ein separates Kapitel zu Stylesheets,<br />

während das Video die Arbeit mit<br />

CSS nebenbei zeigt.<br />

Der Entstehung zusehen<br />

Das Video beschäftigt sich dagegen länger<br />

mit dem Einsatz von Formularen.<br />

Der Zuschauer kann das Entstehen einer<br />

kompletten Applikation, einer Online-<br />

Kontaktbörse, mitverfolgen, die später<br />

auch bei Jquery mobile wieder auftaucht.<br />

Insofern hat das Video einen stärkeren<br />

praktischen Bezug.<br />

Buch und Video gehen das Thema Jquery<br />

sachte an, sodass der Anwender keine<br />

Vorkenntnisse in diesem Bereich benötigt.<br />

Auch Wissen über HTML, CSS und<br />

Javascript ist für das Verständnis beider<br />

Werke nicht unbedingt Voraussetzung,<br />

aber empfehlenswert. Die Zielgruppe der<br />

Publikationen ist eher der fortgeschrittene<br />

Entwickler, auch wenn er im Bereich<br />

Jquery eventuell erst einsteigt.<br />

Steyers Buch ist locker und leicht zu lesen.<br />

Auch dem Video kann der Zuschauer<br />

sehr gut folgen, sobald er sich an einige<br />

sprachliche Wiederholungen gewöhnt<br />

hat. Beide Titel bieten umfassende Informationen<br />

zu Jquery. Auch wenn die<br />

Schwerpunkte der beiden Werke leicht<br />

verschieden sind – mehr Details im Buch,<br />

mehr Praxis im Video – sind Umfang und<br />

Qualität vergleichbar.<br />

Daher darf die Entscheidung des Käufers<br />

davon abhängen, wie sympathisch ihm<br />

die Eigenheiten des jeweiligen Mediums<br />

sind. Das Video hat eine Dauer von acht<br />

Stunden. Die rund 500 Seiten des Buches<br />

könnte ein geübter Leser eventuell<br />

in einer ähnlichen Zeit bewältigen. Viele<br />

werden sich aber gerne dafür doppelt so<br />

lange Zeit nehmen.<br />

So scheint das Buch auf den ersten Blick<br />

umfassender, da länger. Beim Video wirken<br />

aber Bild und Ton zusammen, sodass<br />

dies möglicherweise doch mehr bietet.<br />

Dabei ist allerdings das Lerntempo, abgesehen<br />

von einer Pausenmöglichkeit,<br />

weitgehend vorgegeben.<br />

Im Buch kann der Leser blättern sowie<br />

im Inhaltsverzeichnis oder Stichwortverzeichnis<br />

nachschlagen. Auch beim Video<br />

verfügen die einzelnen Abschnitte über<br />

Tags, die der Zuschauer über ein Stichwortverzeichnis<br />

direkt ansteuern kann.<br />

Lesezeichen lassen sich beim Buch wie<br />

auch bei der Videosoftware einsetzen.<br />

Ein Vorteil bleibt aber dem gedruckten<br />

Buch vorbehalten: Es ist nicht an ein<br />

Abspielgerät gebunden. (mhu) n<br />

Info<br />

André Wösten:<br />

„jQuery“<br />

Galileo Computing Videotraining<br />

8 Stunden<br />

40 Euro<br />

ISBN 978-3-8362-1762-0


Open Source<br />

bewegt.<br />

VIER TAGE:<br />

MATCH MAKING, FÜHRUNGEN,<br />

EXPERTEN!<br />

Open Data. Open Innovation. Open Communication!<br />

Nachhaltige Wertschöpfung durch offene Formen der Zusammenarbeit steht im Fokus<br />

des 18. <strong>Linux</strong>Tag in Berlin vom 23. – 26. Mai 2012.<br />

Hersteller, Unternehmen und Entwickler stellen sich der aktuellen Diskussion und<br />

präsentieren neue Konzepte und Geschäftsmodelle für die Software der Zukunft.<br />

<strong>Linux</strong>Tag 2012 – Open minds create effective solutions!<br />

23. –26. Mai 2012 in Berlin<br />

EUROPE‘S LEADING<br />

OPEN SOURCE EVENT<br />

www.linuxtag.org<br />

Medienpartner:<br />

Partner:<br />

Bronze Partner:<br />

Content Partner:<br />

MAGAZIN


Know-how<br />

www.linux-magazin.de Kern-Technik 05 /2012<br />

84<br />

Kernel- und Treiberprogrammierung mit dem <strong>Linux</strong>-Kernel – Folge 62<br />

Kern-Technik<br />

Für KGDB, den eingebauten Debugger des <strong>Linux</strong>-Kernels, gibt es die beiden Frontends KDB und GDB. Mit KDB<br />

und der richtigen Konfigurationsdatei kann es unter Ubuntu sofort losgehen. Wer Hochsprachen-Debugging<br />

mit GDB wünscht, installiert noch Virtualbox, Socat und einen speziellen Kernel. Jürgen Quade, Eva-Katharina Kunst<br />

© psdesign1, Fotolia<br />

62<br />

<strong>Linux</strong>-Kernel-Debugging ist ein heikles<br />

Thema. Während Windows & Co. schon<br />

seit gefühlten Ewigkeiten einen Kerneldebugger<br />

zur Verfügung stellen, hat es<br />

bei <strong>Linux</strong> 16 Jahre gedauert, bis Torvalds<br />

bereit war einen „Kerneldebugger light“<br />

in die Quellen aufzunehmen. Seit 2008<br />

ist der »kgdb« ein Bestandteil des <strong>Linux</strong>-<br />

Kerns, etwas später kam die Erweiterung<br />

»kdb« dazu.<br />

Mitgeliefert: KDB<br />

Dabei stellt »kdb« die einfachste Möglichkeit<br />

dar, den Kernel zu untersuchen.<br />

Viele Distributionen, beispielsweise auch<br />

Ubuntu, integrieren den KDB, allerdings<br />

ohne ihn gleich scharf zu schalten. Das<br />

ist jedoch schnell erledigt, denn sobald<br />

der Debugger die Schnittstellen kennt,<br />

über die er Kommandos bezieht und an<br />

die er die Ausgaben<br />

schicken soll, ist er<br />

auch schon aktiviert.<br />

Zur Auswahl stehen<br />

dafür die Konsole,<br />

repräsentiert durch<br />

das Keyboard und<br />

das Schlüsselwort<br />

»kbd«, sowie die serielle<br />

Schnittstelle<br />

(»ttyS0«).<br />

Die Schlüsselwörter<br />

schreibt der Superuser<br />

mit Hilfe von<br />

»echo« in die zum<br />

Kerneldebugger gehörende<br />

Konfigurationsdatei<br />

»kgdboc«. Die<br />

Variante für die Konsole<br />

(Keyboard) lässt<br />

sich unter Berücksichtigung<br />

der Option<br />

»kms« mit der folgenden Kommandozeile<br />

konfigurieren:<br />

echo kms,kbd > /sys/module/kgdboc/U<br />

parameters/kgdboc<br />

Achtung: »kbd« steht hier für Keyboard<br />

und nicht für den KDB. Mit dieser Konfiguration<br />

friert das System ein, sobald<br />

eine Kernelkomponente abstürzt oder ein<br />

Kernelmodul die Funktion »panic()« aufruft.<br />

Root kann das System aber auch von<br />

Hand zum Debuggen einfrieren, indem er<br />

das Kommando<br />

echo g >/proc/sysrq‐trigger<br />

eingibt oder die vier Tasten [Strg]+[Alt]+<br />

[S-Abf]+[G] gleichzeitig drückt. [G]<br />

steht dabei für das Kommando, um in<br />

den interaktiven Modus des Debuggers<br />

zu wechseln. Ein »help« im interaktiven<br />

Modus zeigt die weiteren Kommandos<br />

an. Der Anwender kann Speicherzellen<br />

auslesen und schreiben, die Prozessliste<br />

oder die letzten Kernelnachrichten anzeigen<br />

sowie Breakpoints setzen. Eines der<br />

wichtigsten Kommandos ist »go«, denn es<br />

veranlasst den Kernel dazu, seine Arbeit<br />

wieder aufzunehmen, als wäre gar nichts<br />

gewesen. Tabelle 1 listet die wichtigsten<br />

KDB-Kommandos auf.<br />

Nur Assembler-Code<br />

So umfangreich die Möglichkeiten auch<br />

sind, zwei Probleme schränken den Einsatz<br />

des eingebauten Debugger-Frontends<br />

ein: Erstens unterstützt KDB kein<br />

Debugging auf Hochsprachen-Niveau<br />

und zeigt dem Anwender nur Assembler-Code.<br />

Zweitens funktioniert er nur<br />

einwandfrei, wenn er entweder für die<br />

serielle Schnittstelle »ttyS0« konfiguriert<br />

ist oder von einer normalen Konsole aus<br />

aufgerufen wird.<br />

Immerhin ist es dank Kernel Mode Switching<br />

(KMS) mittlerweile möglich, den<br />

Debugger auch aus dem grafischen Modus<br />

mit X.org zu verwenden. In diesem<br />

Fall schaltet der Debugger bei der Aktivierung<br />

auf die erste Konsole, um von<br />

hier aus das System zu untersuchen. Sobald<br />

der Anwender ihn per »go« beendet,<br />

schaltet der Debugger wieder zurück zur<br />

grafische Oberfläche. Allerdings funktioniert<br />

das nicht in jedem Fall, es gibt<br />

beispielsweise Probleme in einer mittels<br />

Virtualbox virtualisierten Umgebung. Außerdem<br />

muss der Superuser KMS explizit<br />

durch Angabe des Schlüsselworts »kms«<br />

aktivieren.<br />

Die klassische Variante des Kerneldebuggings<br />

nutzt aber ohnehin die serielle<br />

Schnittstelle zur Ein- und Ausgabe.<br />

Dumm nur, dass man zwei Rechner dafür


enötigt. Außerdem besitzen moderne<br />

Desktop-PCs, Note- oder Netbooks gar<br />

keine serielle Schnittstelle mehr.<br />

Doch genau hier kann eine Virtualisierungslösung<br />

aushelfen. Schnell lässt sich<br />

mit Virtualbox ein Rechner zusammenklicken<br />

und mit einer seriellen Schnittstelle<br />

versehen. Diese ist als so genannte<br />

Hostpipe zu konfigurieren (Abbildung 1).<br />

In Virtualbox kann ein <strong>Linux</strong>, beispielsweise<br />

Ubuntu 11.10, als so genanntes Debug-Target<br />

laufen. Den Kerneldebugger<br />

des Targets schaltet Root mit folgendem<br />

Kommando scharf:<br />

Kern-Technik 05/2012<br />

Know-how<br />

www.linux-magazin.de<br />

85<br />

echo ttyS0,115200 > /sys/module/kgdboc/U<br />

parameters/kgdboc<br />

Zur Kommunikation mit dem Debugger<br />

des Targets muss auf dem Hostsystem ein<br />

Terminalprogramm installiert sein, hier<br />

bietet sich »minicom« an. Leider kann<br />

Minicom nicht direkt mit der Hostpipe<br />

(im Beispiel »/tmp/com1«) kommunizieren.<br />

Daher ist weitere Software erforderlich,<br />

die zwischen Hostpipe und Minicom<br />

vermittelt. Das übernimmt »socat«, sodass<br />

das gesamte Setup neben Virtualbox<br />

mit einem <strong>Linux</strong> aus Socat und Minicom<br />

besteht (siehe Abbildung 2).<br />

Komplexes Setup<br />

Nach dem Start unter Angabe der Hostpipe<br />

gibt »socat« den Namen der Gerätedatei<br />

aus, über die das Terminalprogramm<br />

auf die Daten zugreifen kann. Im<br />

Fall von Abbildung 3 beispielsweise ist<br />

das »/dev/pts/7«. Die Nummer dieses<br />

Pseudoterminals variiert von Mal zu Mal.<br />

Ist der Name der Gerätedatei gefunden,<br />

startet Root das Terminalprogramm:<br />

minicom ‐D /dev/pts/7<br />

Aktiviert er nun den Debugger – beispielsweise<br />

mit der magischen Tastenkombination<br />

[Strg]+[Alt]+[S-Abf]+[G] –, reicht<br />

Virtualbox sämtliche Ausgaben der seriellen<br />

Schnittstelle an die konfigurierte<br />

Hostpipe weiter und diese schließlich per<br />

Tabelle 1: Wichtige Kommandos des Kerneldebuggers KDB<br />

md Adresse<br />

go [Adresse]<br />

mm Adresse<br />

rd<br />

bt<br />

btp Prozess-ID<br />

cpu Nummer<br />

kgdb<br />

ps<br />

Prozess-ID<br />

reboot<br />

lsmod<br />

dmesg<br />

kill<br />

summary<br />

bp Adresse<br />

bc Nummer<br />

ss<br />

Speicherinhalte anzeigen („display memory“)<br />

Ausführung fortsetzen<br />

Abbildung 1: Debuggen eines virtualisierten <strong>Linux</strong>-Systems auf dem lokalen Rechner: Die serielle Schnittstelle<br />

konfiguriert der Virtualbox-Anwender als Hostpipe.<br />

Speicherinhalte verändern („modify memory“)<br />

CPU-Register anzeigen („display registers“)<br />

Aufrufreihenfolge von Funktionen („stack traceback“)<br />

Die Aufrufreihenfolge von Funktionen für Prozess anzeigen<br />

CPU Nummer auswählen<br />

In den KGDB-Modus wechseln<br />

Liste der aktiven Rechenprozesse anzeigen<br />

Zum Rechenprozess Prozess-ID wechseln<br />

System-Neustart<br />

Die Liste der geladenen Kernelmodule ausgeben<br />

Die letzten Kernelnachrichten ausgeben<br />

Einem Rechenprozess ein Signal zustellen<br />

Zusammenfassung wichtiger Systemparameter anzeigen<br />

Breakpoints setzen oder anzeigen<br />

Breakpoint Nummer löschen<br />

Einzelschritt<br />

»socat« an das Terminalprogramm. Minicom<br />

zeigt den Debugger-Prompt, nimmt<br />

Kommandos entgegen und sendet sie an<br />

KDB. Dessen Hilfsmenü lässt sich übrigens<br />

aufrufen, indem man gleichzeitig<br />

die Tasten [Strg]+[A] und anschließend<br />

[Z] drückt. Um Minicom zu verlassen,<br />

sind [Strg]+[A] und danach [Q] und [Return]<br />

einzugeben.<br />

Hohes Niveau<br />

Wie bereits erwähnt, ist KDB nicht in<br />

der Lage, auf Hochsprachen-Niveau<br />

zu debuggen. Ein auf dem Hostsystem<br />

laufender GDB dagegen ermöglicht es,<br />

Breakpoints auf einzelne Zeilen des C-<br />

Quelltextes zu setzen.<br />

Der GNU-Debugger spricht unter Umgehung<br />

des KDB mit dem eigentlichen Debug-Core<br />

des Kernels, dem KGDB. Diese<br />

Basiskomponente des Kerneldebuggers<br />

bezeichnet man auch als Debugserver.<br />

KGDB kann Speicherzellen lesen und<br />

schreiben, Breakpoints setzen und Codesequenzen<br />

reaktivieren. Darüber hinaus<br />

bedient er die serielle Schnittstelle, um<br />

darüber Kommandos zu empfangen und<br />

Debuginformationen auszugeben.<br />

Für seine Ein- und Ausgaben kann KGDB<br />

nicht auf die normalen <strong>Linux</strong>-Treiber zurückgreifen.<br />

Die meisten Treiber arbeiten<br />

nämlich über Interrupts, die während<br />

des Debuggens nicht benutzbar sind.<br />

Der Debugserver überprüft stattdessen<br />

per Polling regelmäßig und in kurzen Ab-


Know-how<br />

www.linux-magazin.de Kern-Technik 05 /2012<br />

86<br />

Bildschirm,<br />

Tastatur<br />

»minicom«<br />

»/dev/pts/7«<br />

»socat«<br />

»/tmp/com1«<br />

Abbildung 2: Debuggen des Kernels in einer virtualisierten Umgebung.<br />

ständen, ob neue Daten für ihn vorliegen<br />

(siehe Abbildung 4). Der KGDB stellt nur<br />

das Backend dar.<br />

Für komplexere Aufgaben wie etwa das<br />

Zuordnen von Maschinencode zu Quellcodezeilen<br />

ist ein Frontend erforderlich,<br />

das mit GDB zur Verfügung steht. Der<br />

GNU-Debugger wühlt sich durch den<br />

Quellcode und führt die Umsetzung zwischen<br />

Symbolen und realen Speicheradressen<br />

durch. Da der GDB funktionierendes<br />

Speicher- und Dateimanagement<br />

benötigt, läuft er auf einem zweiten<br />

Rechner, dem Debughost. Das Protokoll,<br />

über das Debugserver und Debughost<br />

kommunizieren, nennt sich »kgdboc«<br />

(„kdgb over console“).<br />

Für das Hochsprachen-Debugging sind<br />

allerdings einige Vorarbeiten notwendig.<br />

Der GDB benötigt nämlich nicht nur den<br />

Quellcode des Kernels,<br />

Target<br />

sondern auch das unkomprimierte<br />

Kernelobjekt<br />

selbst, und zwar<br />

<strong>Linux</strong>-Kernel<br />

inklusive der Symbolinformationen.<br />

Zudem<br />

muss der Kernel die<br />

Virtualbox notwendigen Debugkomponenten<br />

integriert<br />

haben. Das ist in<br />

vielen Fällen mit dem<br />

Neukompilieren auf<br />

dem Target gleichzusetzen<br />

(siehe Kasten<br />

„Debug-Kernel für Ubuntu 11.10“). Außerdem<br />

ist darauf zu achten, dass Debughost<br />

und Debugtarget zueinander passen:<br />

Das Debuggen eines 32-Bit-Targets mit<br />

einem 64-Bit-Host führte in den Versuchen<br />

der Autoren zu Problemen.<br />

Symbolinformationen<br />

Nach dem Neu-Übersetzen auf dem<br />

Target hat das Kernel-Buildsystem zwei<br />

Kernelobjekte angelegt. Auf einem x86-<br />

Rechner findet sich im Verzeichnis »arch/<br />

x86/boot/« das komprimierte Objekt<br />

»bz–Image«. Das unkomprimierte, mit<br />

Symbolinformationen versehene und für<br />

GDB benötigte Kernelobjekt liegt aber<br />

unter dem Namen »vmlinux« im Startverzeichnis<br />

des Quellcodes. Dieses Kernelobjekt<br />

kopiert der Anwender zusammen<br />

mit dem Quellcode auf die Hostmaschine.<br />

Am besten überträgt er den kompletten<br />

Dateibaum mit dem folgenden Kommando<br />

vom Target zum Host:<br />

scp ‐r /usr/src/linux‐3.0.0/ U<br />

Debughost:/usr/src/<br />

Ist die Target-Maschine mit dem neuen<br />

Kernel gebootet, kann die Debugsession<br />

beginnen. Dazu startet man den »gdb«<br />

mit dem Namen des Kernelobjekts als<br />

Parameter und verbindet ihn mit Hilfe<br />

des Kommandos »target remote /dev/<br />

pts/7« mit dem Debugserver (siehe Abbildung<br />

5). Selbstverständlich ist der<br />

Schnittstellenname (im Beispiel »/dev/<br />

pts/7«) an den von Socat ausgegebenen<br />

Wert anzupassen.<br />

Kommunikationsprobleme<br />

Der GDB wartet jetzt darauf, dass auf<br />

dem Target der Debugger startet. Sobald<br />

das geschehen ist, übernimmt er die<br />

Kontrolle. Anfänglich kann es zu Kommunikationsproblemen<br />

zwischen »gdb«<br />

und Target kommen. Es empfiehlt sich in<br />

diesem Fall, den Debugger zu beenden<br />

Listing 1: Erzeugen und installieren<br />

des Debug-Kernels<br />

01 # Notwendige Pakete installieren<br />

02 apt‐get install build‐essential libncurses‐dev<br />

linux‐source<br />

03 cd /usr/src/<br />

04 tar xvfj linux‐source‐3.0.0.tar.bz2<br />

Abbildung 3: Socat vermittelt zwischen Virtualbox und dem Debugger-Frontend.<br />

05 # Kernel konfigurieren<br />

06 cd linux‐source‐3.0.0/<br />

Host<br />

Target<br />

07 cp /boot/config‐3.0.0‐15‐generic .<br />

08 make localmodconfig<br />

GDB<br />

User<br />

09 # Debug‐Optionen einstellen<br />

Kernel<br />

10 make menuconfig<br />

11 # Kernel generieren:<br />

12 make ‐j4 bzImage modules<br />

13 make modules‐install<br />

14 # Kernelversion herausfinden<br />

15 ls ‐lrt /lib/modules<br />

16 # Installation<br />

Debug-<br />

Server<br />

Treiber im<br />

Polling-<br />

Betrieb<br />

serielle<br />

Schnittstelle<br />

KGDB<br />

KDB<br />

»kbd«<br />

(Keyboard)<br />

Hardware<br />

»kms«<br />

(Grafik)<br />

Kommandos<br />

dekodieren<br />

und<br />

ausführen<br />

Kernel-Debug-Subsystem<br />

17 cp .config /boot/config.3.0.13<br />

18 cp boot/arch/x86/boot/bzImage /boot/vmlinux‐3.0.13<br />

»kgdboc«<br />

19 update‐initramfs ‐c ‐k 3.0.13<br />

20 update‐grub<br />

Abbildung 4: Das Debug-Subsystem des Kernels: Ein Frontend wie GDB auf dem Debughost (links) kommuniziert<br />

per »kgdboc«-Protokoll mit dem Debugserver KGDB auf dem Target (rechts).


den Kernel zurück. Kommt auf dem Debug-Target<br />

das Kommando »umask« zum<br />

Aufruf, führt das nun zum gewünschten<br />

Einfrieren des Systems und der Debugger<br />

erhält die Kontrolle.<br />

Darüber hinaus bietet der GNU-Debugger<br />

in Kombination mit dem KGDB noch eine<br />

ganze Reihe weiterer Möglichkeiten. Wer<br />

den <strong>Linux</strong>-Kernel beispielsweise mit der<br />

Kommandozeilenoption »kgdbwait« startet,<br />

kann ihn bereits beim Booten untersuchen.<br />

Weitere Hinweise finden sich in der Dokumentation<br />

des <strong>Linux</strong>-Kernels [1] sowie<br />

insbesondere zum Einsatz des GDB beim<br />

Kerneldebuggen auch in der Kern-Technik-Folge<br />

60 [2]. (mhu)<br />

n<br />

Kern-Technik 05/2012<br />

Know-how<br />

www.linux-magazin.de<br />

87<br />

Abbildung 5: Der GDB ermöglicht nach Kopplung mit dem KGDB das Debugging auf Hochsprachen-Niveau.<br />

Infos<br />

[1] Jason Wessel, „Using kgdb, kdb and the<br />

kernel debugger internals“: [https:// www.​<br />

kernel. org/ doc/ htmldocs/ kgdb. html]<br />

[2] Quade, Kunst, „Kern-Technik“, Folge 60,<br />

<strong>Linux</strong>-<strong>Magazin</strong> 01/​12, S. 104<br />

– beispielsweise indem man auf einer<br />

anderen Konsole das Kommando »sudo<br />

killall gdb« absetzt. Danach startet man<br />

»gdb« erneut und verbindet ihn mit dem<br />

KGDB des Targets.<br />

Auf dem Target startet Root mit dem<br />

Kommando »echo g > /proc/sysrq-trigger«<br />

den Debugmodus. Zum Testen kann<br />

er sich beispielsweise mit dem GDB-<br />

Kommando »bt« den Stacktrace anzeigen<br />

lassen und per »break sys_umask« einen<br />

Breakpoint auf den Systemcall »umask()«<br />

setzen. Auf das Kommando »continue«<br />

gibt der GDB die Kontrolle wieder an<br />

Die Autoren<br />

Eva-Katharina Kunst, Journalistin, und Jürgen<br />

Quade, Professor an der Hochschule Niederrhein,<br />

sind seit den Anfängen von <strong>Linux</strong> Fans von Open<br />

Source. In der Zwischenzeit ist die dritte Auflage<br />

ihres Buches „<strong>Linux</strong>-Treiber entwickeln“<br />

erschienen.<br />

Debug-Kernel für Ubuntu 11.10<br />

KGDB und KDB sind Teile des <strong>Linux</strong>-Quellcodes,<br />

das Einspielen separater Patches entfällt. Allerdings<br />

sind die Debugger bei der Kernelkonfiguration<br />

zu berücksichtigen. Auch wenn Distributionen<br />

wie Ubuntu einen Kernel mit Debugger<br />

ausliefern, ist die Unterstützung unvollständig:<br />

Der Debugger hat nur lesenden Zugriff auf Code<br />

und Daten und kann daher keine Breakpoints<br />

setzen, zudem fehlen die Symbolinformationen.<br />

Das macht es erforderlich, einen eigenen Debugkernel<br />

zu bauen.<br />

Zunächst müssen mit »build‐essential«,<br />

»libncurses‐dev« und »linux‐source« die notwendigen<br />

Pakete installiert sein (siehe Listing<br />

1). Nach der Installation wechselt Root in das<br />

Verzeichnis »/usr/src« und packt dort den <strong>Linux</strong>-Quellcode<br />

aus, den Ubuntus Paketmanager<br />

als komprimiertes Archiv abgelegt hat. Danach<br />

wechselt er in das ausgepackte Quellcodeverzeichnis<br />

und kopiert die aktuelle Kernelkonfiguration<br />

in den Ordner.<br />

Da das Kompilieren eines vollständigen Ubuntu-<br />

Kernels mit all seinen Modulen sehr viel Zeit<br />

verschlingt, empfiehlt sich eine Alternative:<br />

Das Make-Target »localmodconfig« konfiguriert<br />

den <strong>Linux</strong>-Kernel mit genau jenen Treibern, die<br />

aktuell im System aktiv sind. Falls »make localmodconfig«<br />

Fragen stellt, reicht das Drücken<br />

der Return-Taste für die Standardeinstellung.<br />

Danach ist aber noch »make menuconfig« an<br />

der Reihe, um einige Optionen zu aktivieren<br />

beziehungsweise zu deaktivieren.<br />

Die relevanten Einstellungen finden sich sämtlich<br />

unterhalb des Menüpunkts »Kernel Hacking«.<br />

Benötigt werden die Optionen »Magic<br />

SysRq key«, »Kernel debugging«, »Compile the<br />

kernel with debug info«. Außerdem muss der<br />

Anwender die Option »KGDB: kernel debugger«<br />

aktivieren und darauf achten, dass im zugehörigen<br />

Untermenü die Punkte »KGDB_KDB: include<br />

kdb frontend for kgdb« und »KGDB_KDB: keyboard<br />

as input device« ausgewählt sind.<br />

Zu deaktivieren sind dagegen die Optionen<br />

»Write protect kernel read‐only data structures«<br />

und »Set loadable kernel module data as<br />

NX and test as RO«. Ist der Kernel konfiguriert,<br />

wird er zusammen mit den Modulen generiert.<br />

Der Parameter »‐j« legt übrigens fest, auf wie<br />

viele Prozessoren »make« beim Übersetzen zurückgreifen<br />

kann. Das Generieren des Kernels<br />

dauert je nach Leistung der Maschine wenige<br />

Minuten, aber manchmal auch eine Stunde.<br />

Noch mehr Geduld ist notwendig, wenn es in<br />

der virtuellen Maschine stattfindet.<br />

Nach dem Kompilieren geht es an die Installation.<br />

Zunächst sind die Module per »make<br />

modules‐install« auf dem Target an die richtige<br />

Stelle zu kopieren. Ein Blick in das Verzeichnis<br />

»/lib/modules« mit Hilfe des Kommandos »ls<br />

‐lrt« verrät in seinem letzten Eintrag, welche<br />

Kernelversion genau entstanden ist, beispielsweise<br />

3.0.13. Mit dieser Information kopiert<br />

der Anwender die Kernelkonfiguration und<br />

den Kernel selbst in das Verzeichnis »/boot«<br />

und erzeugt die zugehörige initiale Ramdisk.<br />

Im Verzeichnis »/boot« schließlich findet das<br />

Skript »update‐grub« den neuen Kernel und<br />

konfiguriert den Bootloader. Mit dem nächsten<br />

Booten ist der neue Systemkern aktiv.


Programmieren<br />

www.linux-magazin.de Bash Bashing 05/2012<br />

90<br />

Shellskripte aus der Stümper-Liga – Folge 20: Richtiges Locking<br />

Bash Bashing<br />

Es gibt Dinge, die sollte im Grundsatz immer nur einer machen, etwa eine Datenbank anlegen oder einen<br />

Prozess starten. Ein Lock stellt die Solonummer sicher. Überraschend viele Implementierungen für Locks in<br />

Shellskripten sind jedoch falsch. Bernhard Bablok<br />

Wenn unterschiedliche Prozesse oder<br />

Threads eine Ressource zeitgleich verändern,<br />

kann das zu katastrophalen Folgen<br />

führen – für die Datenintegrität genauso<br />

wie für den Ablauf der betreffenden Prozesse<br />

(drohende Race Conditions). Daher<br />

verfügen Multitasking-Betriebssysteme<br />

seit langem über Mechanismen, die<br />

wechselseitige Zugriffe miteinander zu<br />

synchronisieren helfen.<br />

Unter <strong>Linux</strong> gibt es dafür unter anderem<br />

so genannte Mutex-Semaphore (Mutex<br />

[1] steht für Mutual Exclusion, wechselseitiger<br />

Ausschluss). Die C-Bibliothek<br />

und die Systembibliotheken von Programmiersprachen<br />

machen den Zugriff<br />

auf Mutexe für Anwendungsprogramme<br />

verfügbar.<br />

Leider bleibt Bash-Skripten der Zugang<br />

zu diesen Mechanismen verwehrt. Workarounds<br />

müssen darum her, um die<br />

Zugriffe zu serialisieren. Das Problem:<br />

Die meisten davon<br />

funktionieren – aber<br />

nicht sicher, wie die<br />

nächsten Abschnitte<br />

zeigen.<br />

Open Suse nutzt zum<br />

Beispiel das Wrapper-<br />

Skript in Listing 1,<br />

das täglich den Logrotate-Dienst<br />

startet.<br />

Klar, dass gleichzeitig<br />

laufende Instanzen<br />

hier Unheil anrichten<br />

können. In Zeile 3<br />

überprüft das Skript<br />

daher, ob schon eine<br />

Instanz läuft. Wenn<br />

nicht, startet das<br />

Skript in Zeile 10 den<br />

Dienst.<br />

Dumm nur, wenn<br />

Log rotate genau in diesem Zeitfenster<br />

losläuft. Normalerweise passiert so etwas<br />

nicht – aber wenn etwas schief gehen<br />

kann, dann passiert es eines Tages auch.<br />

Vergleichbar fehlerhafte Implementierungen<br />

finden sich in erstaunlich vielen<br />

Skripten: die Abfrage auf einen Prozess<br />

beispielsweise oder auf das Vorhandensein<br />

einer Prozess-PID-Datei.<br />

Dass eigentlich Logrotate selbst dafür<br />

sorgen sollte, dass es nicht mehrfach zur<br />

selben Zeit mit identischer Konfigurationsdatei<br />

läuft, hilft nur bedingt weiter. Es<br />

bedarf vieler Wrapper-Skripte nur wegen<br />

der Unzulänglichkeiten der eigentlich damit<br />

gestarteten Programme.<br />

Eigene Locks<br />

Eine andere weitverbreitete Synchronisiertechnik<br />

arbeitet mit Lockdateien.<br />

Auch bei einem entsprechenden Beispiel<br />

in Listing 2 können zwei Instanzen des<br />

Skripts so unglücklich laufen, dass beide<br />

Instanzen die Existenz des Lockfiles zu<br />

einer Zeit abfragen, bevor das Lockfile<br />

erzeugt ist.<br />

Es ist tragisch, dass gerade eine Programmieranleitung<br />

für Anfänger aus quasi offizieller<br />

Quelle [2] eine Technik demonstriert,<br />

die nichts taugt und den Anfänger<br />

verdirbt. Dies erscheint besonders unverständlich,<br />

weil die richtige Lösung nicht<br />

aufwändiger wäre.<br />

Atomare Bedrohung für<br />

Race Conditions<br />

Locks funktionieren nur, wenn sie atomar<br />

sind. Das bedeutet, die Abfrage, ob ein<br />

Lock existiert, und die Anforderung eines<br />

Locks darf nur eine einzige Operation<br />

sein. Andernfalls könnte ein unglücklicher<br />

Kontextwechsel zwischen den beteiligten<br />

Prozessen zu der Situation führen,<br />

dass kurz nach der Lockabfrage eines<br />

Prozesses der andere Prozess das Lock<br />

anfordert und bekommt.<br />

Innerhalb eines Bash-Skripts gibt es als<br />

allgemein verfügbares Kommando nur<br />

»mkdir«, das dies leistet:<br />

mkdir /var/tmp/meinlock<br />

if [ $? ‐eq 0 ]; then<br />

echo "Lock erfolgreich gesetzt"<br />

else<br />

echo "Ein anderer Prozess hat das Lock"<br />

fi<br />

Der zugrunde liegende Systemcall gleichen<br />

Namens ist atomar – er scheitert<br />

darum pflichtgemäß, wenn das Verzeichnis<br />

schon existiert. Ansonsten legt er das<br />

Lockverzeichnis an.<br />

Je nach Anwendungsfall nutzt der Bash-<br />

Programmierer den Code in zwei Varianten.<br />

In den Listings 1 und 2 verlässt


das Skript im Else-Zweig das Programm.<br />

Wenn ein Skript allerdings nur warten<br />

will, bis die Ressource frei wird, muss<br />

eine einfache Schleife her:<br />

while ! mkdir /var/tmp/meinlock; do<br />

sleep 1<br />

done<br />

echo "Lock endlich erfolgreich gesetzt"<br />

Damit lässt sich das Locking-Problem im<br />

Prinzip lösen.<br />

Denial of Service<br />

Allerdings schickt ein beliebiger Nutzer<br />

– jeder hat Schreibrechte auf »/var/tmp«<br />

– das Programm in eine Endlosschleife,<br />

indem er einfach die Lockdatei anlegt.<br />

Eine Lockdatei gehört darum nicht in<br />

ein für alle schreibbares Verzeichnis. Üblicherweise<br />

ist es aber nicht der böse<br />

Angreifer, der hier gezielt ein Programm<br />

lahmlegt, sondern das Programm erledigt<br />

dies unbeabsichtigt selber. Denn wenn<br />

es aus irgendeinem Grund das Lockverzeichnis<br />

nicht mehr wegräumt, dann endet<br />

der nächste Lauf in der befürchteten<br />

Endlosschleife.<br />

Die Bash unterstützt den Skriptprogrammierer<br />

in diesem Punkt mit dem Trap-<br />

Kommando. Es fängt Signale ab (to trap,<br />

fangen) und ruft geeignet definierte Signalhandler<br />

auf, wie in Listing 3 zu sehen<br />

ist. Für das Locking sollte das Skript<br />

zumindest das »EXIT«-Signal verarbeiten<br />

(»INT« und »TERM« lösen letztlich auch<br />

ein »EXIT« aus).<br />

Infos<br />

[1] Willi Nüßer, „Futexe und andere Formen<br />

der Prozesssynchronisation“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 10/05, S. 84; [http://<br />

www.linux-magazin.de/Heft-Abo/Ausgaben/2005/10/Kampf-um-die-Ressourcen]<br />

[2] Fehlerhaftes Locking im Bash Beginners<br />

Guide: [http:// tldp. org/ LDP/ Bash<br />

‐Beginners‐Guide/ html/ sect_12_02. html]<br />

Der Autor<br />

Bernhard Bablok betreut bei der Allianz Managed<br />

& Operations Services SE ein großes Datawarehouse<br />

mit technischen Performancemessdaten<br />

von Mainframes bis zu Servern. Wenn er nicht<br />

Musik hört, mit dem Radl oder zu Fuß unterwegs<br />

ist, beschäftigt er sich mit Themen rund um <strong>Linux</strong><br />

und Objektorientierung.<br />

Im Exit-Handler räumt dann das Skript<br />

vorher gesetzte Locks weg. Eigene Handler<br />

für »INT« und »TERM« erlauben es<br />

dem Programmierer, vorher weitere Aktionen<br />

durchzuführen, zum Beispiel Änderungen<br />

zurückzunehmen. Das Beispielskript<br />

setzt in diesen Fällen nur einen<br />

anderen Exit-Code.<br />

Wider die Paranoia<br />

Gegen das Kill-Signal ist bekanntlich<br />

kein Kraut gewachsen, hierfür kann der<br />

Programmierer auch keinen Trap-Handler<br />

installieren. Ein derart abgewürgtes<br />

Programm hinterlässt also zwangsläufig<br />

ein Lock. Ein Ausweg daraus ist, im<br />

Lockverzeichnis Informationen über den<br />

Besitzer des Locks abzulegen, etwa Programmname<br />

und PID. Findet ein zweiter<br />

Prozess das Lockverzeichnis vor, prüft<br />

01 #!/bin/sh<br />

02 # exit immediately if there is another instance<br />

running<br />

03 if checkproc /usr/sbin/logrotate; then<br />

04 /bin/logger ‐t logrotate "ALERT another<br />

instance of logrotate is running ‐ exiting"<br />

05 exit 1;<br />

06 fi;<br />

07 <br />

08 TMPF=`mktemp /tmp/logrotate.XXXXXXXXXX`<br />

09 /usr/sbin/logrotate /etc/logrotate.conf 2>&1 |<br />

tee $TMPF<br />

Listing 3: Trap-Handler<br />

01 #!/bin/bash<br />

02 trap_exit() {<br />

03 echo "trapping exit signal" >&2<br />

04 }<br />

05 trap_int() {<br />

06 echo "trapping int signal" >&2<br />

07 exit 1<br />

08 }<br />

09 trap_term() {<br />

10 echo "trapping term signal" >&2<br />

11 exit 3<br />

12 }<br />

er in jedem Schleifendurchgang diese Informationen<br />

zusätzlich und übernimmt<br />

das Lock, falls der ursprüngliche Besitzer<br />

nicht mehr existiert.<br />

Look at Lock<br />

Listing 1: Start von Logrotate aus »/etc/cron.daily«<br />

Listing 2: Unsicheres Sperren mit einer Lockdatei<br />

01 #!/bin/bash<br />

02 LOCKFILE=/var/lock/makewhatis.lock<br />

03 <br />

04 # Previous makewhatis should execute<br />

successfully:<br />

05 [ ‐f $LOCKFILE ] && exit 0<br />

Richtiges Locking ist also gar nicht einfach.<br />

Oft implementiert der Programmierer<br />

Code, der nur für einen seltenen<br />

Ausnahmefall relevant ist – der vielleicht<br />

nie eintritt. Letztlich heißt es, immer abzuwägen<br />

zwischen dem Programmieraufwand<br />

jetzt und dem Aufwand für die<br />

Fehlersuche später, wenn mal das Skript<br />

nicht mehr so läuft wie früher oder sogar<br />

Daten korrumpiert sind. Unterm Strich<br />

lässt sich als Motto formulieren: Wenn<br />

schon Locking, dann richtig. Einfach erzeugte<br />

Lockdateien und Prozessabfragen<br />

sind keine Option. (jk)<br />

n<br />

10 EXITVALUE=${PIPESTATUS[0]}<br />

11 if [ $EXITVALUE != 0 ]; then<br />

12 # wait a sec, we might just have restarted<br />

syslog<br />

13 sleep 1<br />

14 # tell what went wrong<br />

15 /bin/logger ‐t logrotate "ALERT exited<br />

abnormally with [$EXITVALUE]"<br />

16 /bin/lo gger ‐t logrotate ‐f $TMPF<br />

17 fi<br />

18 rm ‐f $TMPF<br />

19 exit 0<br />

06 [...]<br />

07<br />

08 touch $LOCKFILE<br />

09 makewhatis ‐u ‐w<br />

10 exit 0<br />

13 <br />

14 trap trap_exit EXIT<br />

15 trap trap_int INT<br />

16 trap trap_term TERM<br />

17 <br />

18 let i=0<br />

19 while [ $i ‐lt 10 ]; do<br />

20 echo "sleeping ..." >&2<br />

21 sleep 1<br />

22 let i+=1<br />

23 done<br />

24 exit 0<br />

Bash Bashing 05/2012<br />

Programmieren<br />

www.linux-magazin.de<br />

91


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 05/2012<br />

92<br />

Amazons Kindle am <strong>Linux</strong>-Rechner<br />

Datensauger<br />

Streicht ein Besitzer von Amazons E-Book-Reader Textstellen auf dem Gerät an, legt sein Kindle diese persönlichen<br />

Markierungen in einer Datei ab. Steckt der Kindle im USB-Port des <strong>Linux</strong>-Rechners, saugt ein Perl-Skript<br />

die Daten ab, speichert sie in einer Datenbank und erlaubt später Volltext-Suchabfragen. Michael Schilli<br />

© Dan Kuta ,photocase.com<br />

E-Books bilden immer mehr Eigenschaften<br />

von Büchern aus Papier nach: Der<br />

Käufer darf elektronische Bücher auf<br />

Amazons Kindle heutzutage nicht nur<br />

zeitweise an Freunde ausleihen, sondern<br />

auch Bookmarks im Text setzen (siehe<br />

Abbildung 1) und Passagen im digitalen<br />

Lesefutter anstreichen (Highlights oder<br />

Clippings). Praktischerweise schickt der<br />

Kindle diese Markierungen auch an einen<br />

zentralen Server, sodass sie dem User<br />

später auch auf anderen Lesegeräten zur<br />

Verfügung stehen.<br />

Eine kompakte Sammlung angestrichener<br />

Stellen aus verschiedensten Büchern hilft<br />

zudem nach Begriffen zu fahnden, von<br />

denen der Leser zwar weiß, dass er sie<br />

irgendwo markiert hat, sich aber nicht<br />

Online PLUS<br />

In einem Screencast demonstriert Michael<br />

Schilli das Beispiel: [http://​www.<br />

linux-magazin.de/​plus/​2012/05]<br />

an den zugehörigen Buchtitel erinnern<br />

kann. In [2] schlägt ein Produktivitätsguru<br />

deswegen vor, die Highlights aus<br />

der personalisierten Kindle-Webseite<br />

auf Amazon.com mittels Cut & Paste zu<br />

extrahieren. Dieses Ansinnen lässt sich<br />

aber auch eleganter lösen: Der Kindle<br />

legt diese vom Nutzer generierten Informationen<br />

in einer Klartextdatei auf<br />

dem Dateisystem des Geräts ab, und die<br />

heute vorgestellten Perl-Skripte greifen<br />

sie einfach von dort ab, sobald der User<br />

seinen Kindle an den USB-Anschluss eines<br />

<strong>Linux</strong>-Rechners einstöpselt.<br />

Aktion beim Einstöpseln<br />

Nach dem Anschluss des Kindle an<br />

die USB-Buchse eines Ubuntu-Systems<br />

kommt zunächst der Dialog von Abbildung<br />

2 hoch, der vorschlägt, den Kindle<br />

mittels des MP3-Spielers Rhythmbox<br />

oder anderer Applikationen anzusteuern.<br />

Eine weitere Auswahlmöglichkeit in der<br />

angezeigten Liste weist Ubuntu dazu an,<br />

nichts dergleichen zu tun, und ein Klick<br />

auf »Always perform this action« hält<br />

Ubuntu auch in Zukunft von derartigem<br />

Unsinn ab.<br />

Ubuntu mountet das Dateisystem des<br />

Kindle anschließend unter »/media/<br />

Kindle«. Abbildung 3 zeigt, dass die<br />

Datei mit den gespeicherten Highlight-<br />

Informationen im Ordner »documents«<br />

unter dem Kindle-Rootverzeichnis liegt<br />

und »My Clippings.txt« (mit Leerzeichen)<br />

heißt. Ein Blick hinein offenbart, dass<br />

es sich um Klartext handelt. Die einzelnen<br />

Einträge notieren zeilenorientiert<br />

und grenzen sich vom folgenden Eintrag<br />

durch eine Kette von »=«-Zeichen ab<br />

(Abbildung 4).<br />

In der Textdatei finden sich nicht nur<br />

markierte Textpassagen, sondern auch<br />

Lesezeichen und Randnotizen, die der<br />

Besitzer über die Kindle-Tastatur selbst<br />

eingegeben hat, beispielsweise um sich<br />

über entdeckte Druckfehler lustig zu machen<br />

oder den Buchinhalt besserwisserisch<br />

zu kommentieren.<br />

Formatpfriemelei<br />

Zur maschinellen Umwandlung des<br />

Kindle-Klartextformats in Datenbankeinträge,<br />

die später auch Suchabfragen<br />

zulassen, dient das Modul »Clippings-<br />

Parser.pm« in Listing 1. Es nimmt einen<br />

Filedeskriptor der Clippings-Datei auf<br />

dem Kindle entgegen, durchforstet dann<br />

das undokumentierte Format und gibt die<br />

Einzelheiten wie Buchtitel, Autor, Seite,<br />

Highlight-Datum und Highlight-Text an<br />

den Aufrufer zurück.<br />

Die Methode »parse_fh()« nimmt einen<br />

Filedeskriptor auf die geöffnete Textdatei<br />

und eine Codereferenz als Callback ent-


gegen, den sie bei jedem gefundenen Eintrag<br />

anspringt. Die erste Zeile der Kindle-<br />

Datei kann vor dem ersten Eintrag am<br />

Zeilenanfang einige unlesbare Zeichen<br />

enthalten, die das Ersetzenkommando in<br />

Zeile 30 verschwinden lässt.<br />

Entspricht der Inhalt der aktuell untersuchten<br />

Textzeile in Skriptzeile 33 nicht<br />

dem aus »=«-Zeichen zusammengesetzten<br />

Eintragstrenner, hängt Zeile 38 den<br />

Inhalt an die Variable »$entry« an. Stößt<br />

das Skript auf eine Trennzeile zwischen<br />

Einträgen, ruft Zeile 34 die Methode<br />

»parse_entry« auf und übergibt ihr die<br />

bislang aufgesammelten Textdaten und<br />

den Callback, der nach erfolgreicher Analyse<br />

anzuspringen ist.<br />

In »parse_entry()« teilt der »split«-Befehl<br />

in Zeile 49 einen Eintrag in Überschrift<br />

(»$head«), Buchseite und Erfassungsdatum<br />

(»$whence«), eine Leerzeile und<br />

den markierten Text (»$text«) auf. Da die<br />

Kindle-Datei das Windows-Format mit<br />

»\r\n« als Zeilentrenner verwendet, nutzt<br />

»split« diese Kombination im regulären<br />

Ausdruck in Zeile 49.<br />

Manche E-Books, etwa Wörterbücher,<br />

geben keine Autoren in Klammern hinter<br />

dem Titel an, also bleibt das Autorenfeld<br />

in Zeile 61 in diesem Fall leer. Das letzte,<br />

Abbildung 1: Streicht der Leser Stellen im Text an, speichert der Kindle-Reader diese Markierungen in einer<br />

Textdatei und gibt sie auch an den zentralen Server weiter.<br />

durch den Trenner »|« abgesonderte Feld<br />

in der zweiten Zeile mit den Locationund<br />

Seitenangaben enthält das Datum,<br />

an dem die Textstelle markiert oder das<br />

Lesezeichen gesetzt wurde. In den Zeilen<br />

72 und 73 stehen alle Felder bereit und<br />

der Callback-Aufruf übergibt ihre Werte<br />

an die vom Hauptprogramm als Referenz<br />

hereingereichte Funktion.<br />

Mit dem Parser-Modul ist es nun ein<br />

Leichtes, die Kindle-Daten umzumodeln<br />

und in ein Format zu überführen, das<br />

schnelle Abfragen gestattet. Damit der<br />

User später mit der Volltextsuche nach<br />

Perl-Snapshot 05/2012<br />

Programmieren<br />

www.linux-magazin.de<br />

93<br />

Listing 1: »ClippingsParser.pm«<br />

01 ###########################################<br />

02 package ClippingsParser;<br />

03 ###########################################<br />

04 # Mike Schilli, 2012 (m@perlmeister.com)<br />

05 ###########################################<br />

06 use strict;<br />

07 use warnings;<br />

08<br />

09 ###########################################<br />

10 sub new {<br />

11 ###########################################<br />

12 my( $class ) = @_;<br />

13<br />

14 bless {}, $class;<br />

15 }<br />

16<br />

17 ###########################################<br />

18 sub parse_fh {<br />

19 ###########################################<br />

20 my( $self, $fh, $callback ) = @_;<br />

21<br />

22 my $line_sep = "==========\r\n";<br />

23 my $entry = "";<br />

24 my $first = 1;<br />

25<br />

26 while( my $line = ) {<br />

27<br />

28 if( $first ) {<br />

29 $first = 0;<br />

30 $line =~ s/^\W+//;<br />

31 }<br />

32<br />

33 if( $line eq $line_sep ) {<br />

34 $self‐>parse_entry( $entry,<br />

35 $callback );<br />

36 $entry = "";<br />

37 } else {<br />

38 $entry .= $line;<br />

39 }<br />

40 }<br />

41 }<br />

42<br />

43 ###########################################<br />

44 sub parse_entry {<br />

45 ###########################################<br />

46 my( $self, $entry, $callback ) = @_;<br />

47<br />

48 my( $head, $whence, $empty, $text ) =<br />

49 split /\r\n/, $entry, 4;<br />

50<br />

51 # format error?<br />

52 die "format error" if !defined $text;<br />

53<br />

54 $text =~ s/\r\n\Z//;<br />

55<br />

56 my( $title, $author ) =<br />

57 ( $head =~ /^(.*) \((.*?)\)$/ );<br />

58<br />

59 # sometimes there's no author<br />

60 if( !defined $author ) {<br />

61 $author = "";<br />

62 $title = $head;<br />

63 }<br />

64<br />

65 my @whence = split /\s*\|\s*/, $whence;<br />

66 my $when = pop @whence;<br />

67 my $what = join "|", @whence;<br />

68<br />

69 my( $type, $loc ) =<br />

70 ( $what =~ /^‐ (\w+) (.*)/ );<br />

71<br />

72 $callback‐>( $type, $loc, $author,<br />

73 $title, $when, $text );<br />

74 }<br />

75<br />

76 1;


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 05/2012<br />

94<br />

Abbildung 2: Dieses nervige Popup lässt sich durch die Auswahl von »Do<br />

Nothing« und »Always perform this action« zum Schweigen bringen.<br />

Begriffen in markierten Textabschnitten<br />

suchen kann, speist das Skript in Listing<br />

3 die gefundenen Highlight-Daten in<br />

eine SQlite-Datenbank mit Volltext-Engine<br />

ein. Listing 2 zeigt, dass besondere<br />

»CREATE«-Kommandos mit dem<br />

Kommandozeilentool »sqlite3« notwendig<br />

sind, damit SQlite, das Datenbanken<br />

in flachen Binärdateien anlegt, die<br />

abgelegten Textdaten so indiziert, dass<br />

Suchabfragen nach mehreren Wörtern<br />

mit Google-Geschwindigkeit ablaufen.<br />

Volltext oder Pattern-<br />

Match<br />

SQL-Datenbanken erlauben im Normalmodus<br />

Suchkriterien wie »LIKE %begriff%«<br />

und kramen damit gemächlich<br />

Einträge hervor, deren Textspalten bestimmte<br />

Zeichenketten enthalten. Selbst<br />

wenn man von der schleppenden Geschwindigkeit<br />

absieht, zeigt sich noch ein<br />

weiterer Nachteil: Wer zum Beispiel nach<br />

Einträgen sucht, die die beiden Wörter<br />

„Perl“ und „Data“ irgendwo im Text verstreut<br />

enthalten, ist dies nur umständlich<br />

möglich. Eine Volltext-Engine hingegen<br />

spezialisiert sich auf derartige Abfragen<br />

und sucht grundsätzlich nur nach gan-<br />

zen Wörtern. Auf der<br />

Suche nach „Data“,<br />

fände sie keine Einträge<br />

mit „Database“,<br />

sucht sie aber nach<br />

„Date Time“, findet sie<br />

alle Texte, die die Wörter<br />

„Date“ und „Time“<br />

beliebig verstreut und<br />

in beliebiger Reihenfolge<br />

enthalten.<br />

Damit SQlite eine Tabelle<br />

mit Volltextindex<br />

anlegt, fordert Listing<br />

2 statt einer normalen Tabelle eine „Virtual<br />

Table“ an, die mit »USING FTS3«<br />

Version 3 des „Full Text Search“-Plugins<br />

einsetzt. FTS3 liegt SQlite seit Version<br />

3.5.0 im Jahr 2007 bei, und mit SQlite<br />

3.7.4 kam im Jahr 2010 die Release FTS4<br />

hinzu, die Verbesserungen der Performance,<br />

aber auch erhöhte Komplexität<br />

mit sich bringt [3].<br />

Die Volltexttabelle lässt sich wie normale<br />

Tabellen auch mit »INSERT«-Aufrufen füllen<br />

und mit »SELECT«-Queries abfragen.<br />

Sie bietet zwei zusätzliche<br />

Funktionen: Erstens<br />

verfügt sie über<br />

ein virtuelle Spalte,<br />

deren Name mit dem<br />

Tabellennamen identisch<br />

ist und die sich<br />

bei Abfragen wie eine<br />

Zusammenfassung aller<br />

Tabellenspalten<br />

ver hält. Im vorliegenden<br />

Fall liefert die<br />

»SELECT«-Bedingung<br />

WHERE highlights<br />

MATCH(?)<br />

alle Einträge, bei denen irgendeine Spalte<br />

auf den angegebenen »MATCH«-Operator<br />

anspricht.<br />

Der zweite Unterschied ist der »MATCH«-<br />

Operator, der eine wortorientierte Volltextsuche<br />

implementiert. So sucht etwa<br />

»MATCH("katze hund")« nach Texten,<br />

die beide Wörter irgendwo und in beliebiger<br />

Reihenfolge enthalten, und ist<br />

außerdem schlau genug Groß- und Kleinschreibung<br />

zu ignorieren. Es lässt sich<br />

sogar ein Stemming einstellen, bei dem<br />

„katze“ auch auf „katzen“ passt.<br />

Datenbankfutter<br />

Listing 3 sorgt für das Auslesen der Clippings-Datei<br />

auf dem Kindle und das Auffüllen<br />

der SQlite-Datenbank auf dem <strong>Linux</strong>-Rechner.<br />

Damit es sowohl das Modul<br />

»ClippingsParser.pm« als auch die Datenbankdatei<br />

»highlights.sqlite« findet, die<br />

sich im selben Verzeichnis wie das Skript<br />

befinden, wechselt der »BEGIN«-Block ab<br />

Zeile 12 zunächst in das Verzeichnis, in<br />

dem das Skript steht.<br />

Abbildung 3: Die Datei »My Clippings.txt« im Ordner »documents« auf dem<br />

Kindle speichert die angestrichenen Stellen im Textformat.<br />

Listing 2: »sqlite‐setup.sh«<br />

01 file=highlights.sqlite<br />

02 rm ‐f $file<br />

03<br />

04 sqlite3 $file


In die Logdatei »/var/log/kindle.log«<br />

schreibt es, was es gerade treibt. Das<br />

erweist sich als besonders hilfreich beim<br />

Debuggen, falls das Skript im Hintergrund<br />

läuft. Und dies ist die Regel, später ruft<br />

es das Udev-System des <strong>Linux</strong>-Kernels<br />

automatisch auf, sobald der User den<br />

Kindle anschließt.<br />

Dies erfordert auch, dass es sofort zurückkehrt<br />

und im Hintergrund weiterläuft,<br />

um dann die Clipping-Daten auszulesen<br />

und der Reihe nach in der Datenbank<br />

abzulegen. Hierzu setzt es in<br />

Zeile 35 einen Fork-Befehl ab und erzeugt<br />

einen Child-Prozess, der die anstehende<br />

Arbeit erledigt, während der Prozessvater<br />

sich verabschiedet. Da der Kernel das<br />

Skript als Root aufruft, setzt Zeile 33 mit<br />

dem Kommando »setuid« aus dem Posix-<br />

Modul die Rechte zurück auf den in Zeile<br />

8 gesetzten User, um keine unnötigen<br />

Sicherheitslöcher aufzureißen.<br />

Da das Kindle-Rootverzeichnis zum Zeitpunkt<br />

des Skriptstarts vielleicht noch gar<br />

Abbildung 5: Die Volltextsuche »clipfind« gibt alle angestrichenen Textstellen aus, die sowohl das Wort<br />

»file« als auch das Wort »directory« enthalten.<br />

nicht existiert, probiert die For-Schleife<br />

ab Zeile 40 zehnmal hintereinander, ob<br />

es die Clippings-Datei lesen kann. Falls<br />

nicht, wartet das Skript jeweils 4 Sekunden<br />

und startet einen neuen Versuch.<br />

Keine alten Hüte<br />

Schließt der User dasselbe Kindle-Gerät<br />

etliche Male hintereinander am Rechner<br />

an, stehen die meisten Einträge bereits<br />

in der Datenbank und blindes Kopieren<br />

würde zu unerwünschten Duplikaten<br />

führen, die die Datenbank nur unnötig<br />

aufschwemmen.<br />

Um diese Dubletten zu verhindern, hat<br />

das Shellskript in Listing 2 vorher eine<br />

zweite (reale) Tabelle »seen« definiert, die<br />

mit einer »UNIQUE«-Anweisung festlegt,<br />

dass die Kombination aus »type« (also<br />

Perl-Snapshot 05/2012<br />

Programmieren<br />

www.linux-magazin.de<br />

95<br />

ADMIN<br />

Netzwerk & Security<br />

Online-Archiv<br />

Rund 2.000 Seiten Artikel,<br />

Studien und Workshops aus<br />

fünf Jahren Technical Review<br />

+<br />

nur<br />

4,-e*<br />

im Monat<br />

Onlinezugriff auf alle<br />

Heftartikel aus dem<br />

ADMIN-<strong>Magazin</strong><br />

der Jahrgänge<br />

2009 bis 2011!<br />

Volltextsuche<br />

Praxisrelevante Themen<br />

für alle IT-Administratoren<br />

* Angebot gültig nur<br />

für Abonnenten eines<br />

Print- oder vollen<br />

digitalen ADMIN Abos<br />

Bestellen Sie unter: www.admin-magazin.de/archiv


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 05/2012<br />

96<br />

Abbildung 6: Mit dem USB-Stecker lässt sich der<br />

Kindle an eine <strong>Linux</strong>-Box anschließen.<br />

Abbildung 7: Beim Einstöpseln des Kindle in den Ubuntu-Rechner erscheinen Meldungen des USB-Subsystems<br />

in der Logdatei »/var/​log/​messages«.<br />

»Highlight«, »Bookmark« oder »Note«),<br />

»loc« (Seitenangabe) und »title« (Buchtitel)<br />

eindeutig sein muss.<br />

Fügt nun Zeile 69 ungewollt einen dort<br />

bereits vorhandenen Record in die Ta-<br />

belle »seen« ein, führt dies automatisch<br />

zu einem Fehler, denn das Datenbanksystem<br />

weigert sich strikt, ein Duplikat<br />

einzuspeisen. Das »eval«-Konstrukt in<br />

Zeile 72 fängt diesen Fehler ab, und die<br />

»if«-Bedingung in Zeile 76 kehrt in diesem<br />

Fehlerfall vorzeitig aus dem Callback<br />

zurück. Wenn der Eintrag hingegen noch<br />

nicht vorhanden ist, dann bereitet Zeile<br />

78 pflichtschuldig einen neuen Eintrag<br />

Listing 3: »kindle‐connected«<br />

01 #!/usr/local/bin/perl ‐w<br />

02 use strict;<br />

03 use local::lib qw(/home/mschilli/perl5);<br />

04 use Log::Log4perl qw(:easy);<br />

05 use POSIX;<br />

06 use DBI;<br />

07<br />

08 my $run_as = "mschilli";<br />

09 my $clip_path =<br />

10 "/media/Kindle/documents/My Clippings.txt";<br />

11<br />

12 BEGIN {<br />

13 use FindBin qw($RealBin);<br />

14 chdir $RealBin;<br />

15 }<br />

16 use ClippingsParser;<br />

17<br />

18 my $logfile = "/var/log/kindle.log";<br />

19<br />

20 Log::Log4perl‐>easy_init({<br />

21 file => ">>$logfile",<br />

22 level => $DEBUG,<br />

23 });<br />

24<br />

25 my ( $name, $passwd, $uid, $gid ) =<br />

26 getpwnam( $run_as);<br />

27<br />

28 chown $uid, $gid, $logfile or<br />

29 LOGDIE "Cannot chown $logfile: $!";<br />

30 chmod 0644, $logfile or<br />

31 LOGDIE "Cannot chmod $logfile: $!";<br />

32<br />

33 POSIX::setuid( $uid );<br />

34<br />

35 my $pid = fork();<br />

36 die "fork failed" if !defined $pid;<br />

37 exit 0 if $pid; # parent<br />

38<br />

39 # wait until kindle root dir is mounted<br />

40 for( 1..10) {<br />

41 if( ‐f $clip_path) {<br />

42 last;<br />

43 } else {<br />

44 DEBUG "Waiting for $clip_path";<br />

45 sleep 5;<br />

46 next;<br />

47 }<br />

48 }<br />

49<br />

50 LOGDIE "$clip_path not found"<br />

51 if !‐f $clip_path;<br />

52<br />

53 my $dbh = DBI‐>connect(<br />

54 "dbi:SQLite:highlights.sqlite", "", "",<br />

55 { RaiseError => 1, PrintError => 0 }<br />

56 );<br />

57<br />

58 open my $fh, "


vor und Zeile 80 führt ihn anschließend<br />

korrekt in die Datenbank ein.<br />

Wer suchet, der findet<br />

Listing 4 nimmt Suchanfragen entgegen,<br />

fieselt die passenden Einträge aus der<br />

Datenbank heraus und präsentiert sie in<br />

Form eines Literaturverzeichnisses. Abbildung<br />

5 zeigt, wie »clipfind« Einträge<br />

sucht, die sowohl das Wort »file« als auch<br />

das Wort »directory« enthalten, und zwei<br />

Einträge zum Vorschein bringt. Der erste<br />

ist ein Absatz aus dem hervorragenden<br />

<strong>Linux</strong>-Buch „The <strong>Linux</strong> Programming Interface“<br />

von Michael Kerrisk, der zweite<br />

eine Passage aus dem „OpenVPN 2 Cookbook“<br />

von Jan Just Keijser.<br />

Automatisch loslegen<br />

Damit das Skript loslegt, wenn der User<br />

den Kindle einsteckt (Abbildung 6),<br />

stellt der Automatisierungsfachmann die<br />

»udev«-Regel (Listing 5) ins Verzeichnis<br />

»/etc/udev/rules.d« und ruft<br />

sudo service udev restart<br />

Infos<br />

[1] Listings zu diesem Artikel:<br />

[ftp:// www. linux‐magazin. de/ pub/ listings/​<br />

magazin/ 2012/ 05/ Perl]<br />

[2] Michael Hyatt, „How to get your kindle<br />

highlights into Evernote“:<br />

[http:// michaelhyatt. com/ how‐to‐get‐your<br />

‐kindle‐highlights‐into‐evernote. html]<br />

[3] „SQlite FTS3 and FTS4 Extensions“:<br />

[http:// www. sqlite. org/ fts3. html]<br />

[4] Michael Schilli, „Bus-Touristik“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 04/11, S. 110:<br />

[http:// www. linux‐magazin. de/ Heft‐Abo/​<br />

Ausgaben/ 2011/ 04/ Bus‐Touristik]<br />

Der Autor<br />

Michael Schilli arbeitet<br />

als Software-Engineer bei<br />

Yahoo in Sunnyvale, Kalifornien.<br />

In seinen seit 1997<br />

erscheinenden Snapshots<br />

forscht er jeden Monat nach<br />

praktischen Anwendungen der Skriptsprache Perl.<br />

Unter [mschilli@perlmeister. com] beantwortet er<br />

gerne Ihre Fragen.<br />

Abbildung 8: Das »/sys«-Verzeichnis offenbart die USB-Parameter des angeschlossenen Kindle-Readers.<br />

auf, um den »udev«-Service entsprechend<br />

auf die geänderte Konfiguration aufmerksam<br />

zu machen. Dabei erweist sich der<br />

Eintrag<br />

ENV{DEVTYPE}=="usb_device"<br />

als nützlich, denn er verhindert, dass der<br />

Handler in der »RUN«-Direktive vielfach<br />

angesprungen wird, weil ein frisch eingesteckter<br />

Kindle eine Reihe von Aktionen<br />

auslöst: Erst wird ein USB-Eintrag angelegt,<br />

dann eine Festplatte zugewiesen,<br />

danach eine Partition und weiterer Heckmeck.<br />

Jedes Mal die Clippings-Datei zu<br />

durchforsten wäre Verschwendung, abgesehen<br />

von der Systembelastung durch<br />

Parallelprozesse, die auf das Verzeichnis<br />

mit dem Kindle-Filesystem warten.<br />

Eine weitere Möglichkeit, das Anschließen<br />

des Kindle abzufangen, wäre der in<br />

Listing 4: »clipfind«<br />

01 #!/usr/local/bin/perl ‐w<br />

02 use strict;<br />

03 use Text::Wrap qw(fill);<br />

04 use DBI;<br />

05<br />

06 BEGIN {<br />

07 use FindBin qw($RealBin);<br />

08 chdir $RealBin;<br />

09 }<br />

10<br />

11 my $query = join " ", @ARGV;<br />

12<br />

13 my $dbh = DBI‐>connect(<br />

14 "dbi:SQLite:highlights.sqlite", "", "",<br />

15 { RaiseError => 1 } );<br />

16<br />

17 my $sth = $dbh‐>prepare(<br />

18 "SELECT * FROM highlights " .<br />

19 "WHERE type = 'Highlight' AND " .<br />

20 "highlights MATCH(?)" );<br />

Listing 5: »99‐kindle.rules«<br />

[4] vorgestellte Dämon, der sich auf den<br />

D-Bus des <strong>Linux</strong>-Systems setzt und den<br />

Mount-Event abfängt.<br />

Die in der »udev«-Regel angegebenen<br />

Werte für Vendor-ID und Product-ID finden<br />

<strong>Linux</strong>-Anwender heraus, indem sie,<br />

wie in der Abbildung 7 gezeigt, neue<br />

Einträge in der Datei »/var/log/messages«<br />

verfolgen, die dem Kindle zugewiesene<br />

Nummer im USB-Baum ausfindig<br />

machen (im Beispiel also 1-4.4.4-2) und<br />

anschließend im Verzeichnis »/sys/​bus/​<br />

usb« die entsprechenden Datei-Inhalte<br />

auslesen, wie es in Abbildung 8 gezeigt<br />

ist. Ab dann sollte aber alles automatisch<br />

funktionieren und die lokale Datenbank<br />

Kindle-Daten sofort beim Einstöpseln<br />

spiegeln. (uba)<br />

n<br />

21<br />

22 $sth‐>execute( $query );<br />

23<br />

24 my $serial = 1;<br />

25<br />

26 while( my $ref =<br />

27 $sth‐>fetchrow_hashref() ) {<br />

28<br />

29 my $output = "[$serial] " .<br />

30 "\"$ref‐>{title}\", $ref‐>{author}, " .<br />

31 "($ref‐>{loc}), \"$ref‐>{text}\"";<br />

32<br />

33 print fill("", "<br />

34 "\n\n";<br />

35<br />

36 $serial++;<br />

37 }<br />

", ($output)),<br />

1 SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="1949", ​<br />

ATTRS{idProduct}=="0004", RUN+="/home/mschilli/git/articles/kindle‐highlights/eg/kindle‐connected"<br />

Perl-Snapshot 05/2012<br />

Programmieren<br />

www.linux-magazin.de<br />

97


Service<br />

www.linux-magazin.de IT-Profimarkt 05/2012<br />

100<br />

PROFI<br />

MARKT<br />

Sie fragen sich, wo Sie maßgeschneiderte<br />

<strong>Linux</strong>-Systeme und kompetente<br />

Ansprechpartner zu Open-Source-Themen<br />

finden? Der IT-Profimarkt weist Ihnen<br />

als zuverlässiges Nachschlagewerk<br />

den Weg. Die hier gelisteten Unternehmen<br />

beschäftigen Experten auf ihrem<br />

Gebiet und bieten hochwertige Produkte<br />

und Leistungen.<br />

Die exakten Angebote jeder Firma entnehmen<br />

Sie deren Homepage. Der ersten<br />

Orientierung dienen die Kategorien<br />

Hardware, Software, Seminaranbieter,<br />

Systemhaus, Netzwerk/TK und Schulung/Beratung.<br />

Der IT-Profimarkt-Eintrag<br />

ist ein Service von <strong>Linux</strong>-<strong>Magazin</strong><br />

und <strong>Linux</strong>User.<br />

Online-Suche<br />

Besonders bequem finden Sie einen<br />

<strong>Linux</strong>-Anbieter in Ihrer Nähe über die<br />

neue Online-Umkreis-Suche unter:<br />

[http://www.it-profimarkt.de]<br />

Informationen<br />

fordern Sie bitte an bei:<br />

<strong>Linux</strong> New Media AG<br />

Anzeigenabteilung<br />

Putzbrunner Str. 71<br />

D-81739 München<br />

Tel.: +49 (0)89/99 34 11-23<br />

Fax: +49 (0)89/99 34 11-99<br />

E-Mail: anzeigen@linux-magazin.de<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl<br />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />

4= Fachliteratur 4= Seminaranbieter 5 = Software 5 = Software 6 = Schulung/Beratung 6 = Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

imunixx GmbH UNIX consultants 01468 Moritzburg, Heinrich-Heine-Str. 4 0351-83975-0 www.imunixx.de 3 3 3 3 3<br />

Heinlein Professional <strong>Linux</strong> Support GmbH 10119 Berlin, Schwedter Straße 8/​9b 030-405051-0 www.heinlein-support.de 3 3 3 3 3<br />

TUXMAN Computer 10369 Berlin, Anton-Saefkow-Platz 8 030-97609773 www.tuxman.de 3 3 3 3 3<br />

Hostserver GmbH 10405 Berlin, Winsstraße 70 030-47375550 www.hostserver.de 3<br />

Compaso GmbH 10439 Berlin, Driesener Strasse 23 030-3269330 www.compaso.de 3 3 3 3 3<br />

elego Software Solutions GmbH 13355 Berlin, Gustav-Meyer-Allee 25 030-2345869-6 www.elegosoft.com 3 3 3 3<br />

Logic Way GmbH 19061 Schwerin, Hagenower Str. 73 0385-39934-48 www.logicway.de 3 3 3 3<br />

Sybuca GmbH 20459 Hamburg, Herrengraben 26 040-27863190 www.sybuca.de 3 3 3 3 3<br />

iTechnology GmbH 20537 Hamburg, Normannenweg 28 0)40 20 22 62 10 www.itechnology.de 3 3 3 3<br />

Dr. Plöger & Kollegen secom consulting<br />

GmbH & Co. KG<br />

24105 Kiel, Waitzstr. 3 0431-66849700 www.secom-consulting.de 3 3 3 3 3<br />

beitco - Behrens IT-Consulting 26197 Ahlhorn, Lessingstr. 27 04435-9537330-0 www.beitco.de 3 3 3 3 3<br />

talicom GmbH 30169 Hannover, Calenberger Esplanade 3 0511-123599-0 www.talicom.de 3 3 3 3 3<br />

teuto.net Netzdienste GmbH 33602 Bielefeld, Niedenstr. 26 0521-96686-0 www.teuto.net 3 3 3 3 3<br />

MarcanT GmbH 33602 Bielefeld, Ravensberger Str. 10 G 0521-95945-0 www.marcant.net 3 3 3 3 3 3<br />

Hostserver GmbH 35037 Marburg, Biegenstr. 20 06421-175175-0 www.hostserver.de 3<br />

LINET Services GmbH 38122 Braunschweig, Am alten Bahnhof 4b 0531-180508-0 www.linet-services.de 3 3 3 3 3 3<br />

OpenIT GmbH 40599 Düsseldorf, In der Steele 33a-41 0211-239577-0 www.OpenIT.de 3 3 3 3 3<br />

<strong>Linux</strong>-Systeme GmbH 45277 Essen, Langenbergerstr. 179 0201-298830 www.linux-systeme.de 3 3 3 3 3<br />

Intevation GmbH 49074 Osnabrück, Neuer Graben 17 0541-33508-30 osnabrueck.intevation.de 3 3 3 3<br />

uib gmbh 55118 Mainz, Bonifaziusplatz 1b 06131-27561-0 www.uib.de 3 3 3 3<br />

LISA GmbH 55411 Bingen, Elisenhöhe 47 06721-49960 www.lisa-gmbh.de 3 3 3 3 3<br />

saveIP GmbH 64283 Darmstadt, Schleiermacherstr. 23 06151-666266 www.saveip.de 3 3 3 3 3<br />

ORDIX AG 65205 Wiesbaden, Kreuzberger Ring 13 0611-77840-00 www.ordix.de 3 3 3 3 3<br />

<strong>Linux</strong>Haus Stuttgart 70565 Stuttgart, Hessenwiesenstrasse 10 0711-2851905 www.linuxhaus.de 3 3 3 3 3<br />

IT-Profimarkt listet ausschließlich Unternehmen, die Leistungen rund um <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />

(S.102)


OpenSource Training Ralf Spenneberg<br />

Schulungen direkt vom Autor<br />

<strong>Linux</strong> Administration / LPIC­1<br />

AppArmor Administration<br />

Hacking Webapplications<br />

Virtualisierung mit XEN 4.x<br />

IPv6 mit <strong>Linux</strong><br />

Sourcefire 3D System<br />

<strong>Linux</strong> Firewall Lösungen<br />

DHCP, DNS und DNSSEC<br />

Advanced Monitoring<br />

Freie Distributionswahl:<br />

Opensuse, Fedora, Debian Squeeze,<br />

CentOS oder Ubuntu LTS<br />

Ergonomische Arbeitsplätze<br />

Umfangreiche Schulungsunterlagen mit<br />

Übungen<br />

Am Bahnhof 3­5<br />

48565 Steinfurt<br />

Tel.: 02552 638755<br />

Fax: 02552 638757<br />

5 Tage 07.05. ­ 11.05.2012<br />

2 Tage 15.05. ­ 16.05.2012<br />

4 Tage 29.05. ­ 01.06.2012<br />

3 Tage 04.06. ­ 06.06.2012<br />

3 Tage 12.06. ­ 14.06.2012<br />

4 Tage 26.06. ­ 29.06.2012<br />

5 Tage 03.09. ­ 07.09.2012<br />

3 Tage 18.09. ­ 20.09.2012<br />

4 Tage 17.09. ­ 20.09.2012<br />

Weitere Informationen unter www.os­t.de<br />

shop.embedded-projects.net<br />

HARDWARE FOR YOUR PROJECTS – ONLINESHOP<br />

Der perfekte Einstieg in die <strong>Linux</strong> Welt<br />

auf Mikrocontrollerbasis<br />

GNUBLIN <strong>Linux</strong>Board LPC3131<br />

- ARM9 Prozessor mit 180 MHz<br />

- 8 MB mobile SDRAM<br />

- Anstecken und loslegen<br />

- integrierter USB-RS232 Wandler<br />

- inkl. Beispielanwendungen<br />

- inkl. fertiges <strong>Linux</strong> und SD-Karte<br />

- inkl. Mini-USB Kabel<br />

Best.-Nr.: 700641<br />

Seminare/Markt 05/2012<br />

Service<br />

www.linux-magazin.de<br />

101<br />

Holzbachstraße 4, D-86152 Augsburg<br />

Tel +49 (0) 821 279599-0<br />

Fax +49 (0) 821 279599-20<br />

shop@embedded-projects.net<br />

Aktionspreis<br />

€ 49,95*<br />

inkl. 19 inkl. % 19 MwSt. % * Nur solange der Vorrat reicht!<br />

<strong>Linux</strong>-<strong>Magazin</strong><br />

ACADEMY<br />

X25<br />

Android User im Abo<br />

Die Monatszeitschrift für Android-Fans, Smartphone- und Tablet-Nutzer<br />

Neu mit Prämie!<br />

15% sparen beim Printoder<br />

Digital-Abo und<br />

exklusive Prämie sichern!<br />

Tasche ist nicht im Handel erhältlich.<br />

Angebot gilt nur solange der Vorrat<br />

reicht.<br />

Online-Training<br />

Prüfungsvorbereitung<br />

für LPIC 1 & 2<br />

Besorgen Sie sich Brief und<br />

Siegel für Ihr <strong>Linux</strong>-<br />

Knowhow mit der<br />

LPI-Zertifizierung.<br />

- Training für die Prüfungen<br />

LPI 101 und 102<br />

- Training für die Prüfungen<br />

LPI 201 und 202<br />

Sparen Sie mit<br />

paketpreiSen!<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/lpic<br />

Jetzt bestellen unter:<br />

www.android–user.de/abo<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de<br />

LM-Academy_1-9h_Anzeige_LPIC-Mike.indd 1<br />

18.04.2011 11:05:38 AU_1-4DIN_ABO-praemie2012.indd Uhr<br />

1<br />

21.02.2012 12:59:51 Uhr


Service<br />

www.linux-magazin.de IT-Profimarkt / Stellen 05/2012<br />

102<br />

IT-Profimarkt / Stellen<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl (Fortsetzung von S. 100)<br />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />

4= Seminaranbieter 5 = Software 6 = Beratung<br />

Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

comundus GmbH 71332 Waiblingen, Schüttelgrabenring 3 07151-5002850 www.comundus.com 3<br />

Manfred Heubach EDV und Kommunikation 73728 Esslingen, Hindenburgstr. 47 0711-4904930 www.heubach-edv.de 3 3 3 3<br />

Waldmann EDV Systeme + Service 74321 Bietigheim-Bissingen, Pleidelsheimer Str. 25 07142-21516 www.waldmann-edv.de 3 3 3 3 3<br />

in-put Das <strong>Linux</strong>-Systemhaus 76133 Karlsruhe, Moltkestr. 49 0721-6803288-0 www.in-put.de 3 3 3 3 3 3<br />

B1 Systems GmbH 85088 Vohburg, Osterfeldstrasse 7 08457-931096 www.b1-systems.de 3 3 3 3 3<br />

ATIX AG 85716 Unterschleißheim, Einsteinstr. 10 089-4523538-0 www.atix.de 3 3 3 3 3 3<br />

OSTC Open Source Training and Consulting<br />

GmbH<br />

90425 Nürnberg, Waldemar-Klink-Str. 10 0911-3474544 www.ostc.de 3 3 3 3 3 3<br />

Computersysteme Gmeiner 95643 Tirschenreuth, Fischerhüttenweg 4 09631-7000-0 www.gmeiner.de 3 3 3 3 3<br />

CATATEC CH-3013 Bern, Dammweg 43 0041-31-3302630 www.catatec.ch 3 3 3<br />

EBP Gasser CH-4208 Nunningen, Winkel 6 0041-61793-0099 www.ebp-gasser.ch 3 3 3 3 3<br />

Syscon Systemberatungs AG CH-8003 Zürich, Zweierstrasse 129 0041-44-4542010 www.syscon.ch 3 3 3 3 3<br />

Würth Phoenix GmbH IT-39100 Bozen, Kravoglstraße 4 +39 0471 56 41 11 www.wuerth-phoenix.com 3 3 3 3<br />

IT-Profimarkt listet ausschließlich Unternehmen, die Leistungen rund um <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />

n<br />

Zur Verstärkung unseres Teams suchen wir ab sofort:<br />

WEBHOSTING · SCHULUNGEN · SUPPORT<br />

Die Mittwald CM Service GmbH & Co KG ist einer der führenden Webhosting-Anbieter für Agenturen und Unternehmen im deutschsprachigen Raum.<br />

Neben sehr guten beruflichen Perspektiven bieten wir als ein Familienunternehmen mit langer Tradition ein hohes Maß an Eigenständigkeit in<br />

einem hoch motivierten Team.<br />

LINUX Systemadministrator (m/w)<br />

Ihre Aufgaben:<br />

Als Mitarbeiter in der Systemadministration bzw. Systementwicklung<br />

realisieren Sie im Team innovative Serverlösungen für unsere Hostingkunden.<br />

Darüber hinaus gehören Wartung und Optimierung unserer<br />

Systeme sowie die Automatisierung wieder kehrender Tätigkeiten zu Ihrem<br />

Aufgabengebiet.<br />

Netzwerkadministrator (m/w)<br />

Ihre Aufgaben:<br />

In dieser Position sind Sie für den Betrieb, die Überwachung und die Optimierung<br />

der hochredundanten Netzwerkinfrastruktur im Rechenzentrum<br />

zuständig. Sie arbeiten im Team neue Lösungen aus und sind kompetenter<br />

Ansprechpartner für andere administrative Abteilungen.<br />

Ihr Profil:<br />

Sie besitzen umfangreiche Kenntnisse im Umgang mit Apache<br />

Webservern sowie MySQL Datenbanken. Darüber hinaus verfügen Sie über<br />

praktische Erfahrungen im Erstellen von Shell-Skripten. Analytisches<br />

Denkvermögen und Kreativität helfen Ihnen bei der Entwicklung neuer<br />

Systemlösungen.<br />

Ihr Profil:<br />

Sie besitzen gute bis sehr gute Kenntnisse in den Bereichen IP-Routing<br />

sowie Switching und Ihnen sind Begriffe wie BGP und MPLS vertraut. Sie<br />

haben optimalerweise Erfahrungen mit F5 und Juniper Hardware gesammelt<br />

und fühlen sich bei der Fehlersuche auch unter Zeitdruck sehr wohl.<br />

Wir freuen uns auf Ihre aussagekräftige E-Mail Bewerbung an jobs@mittwald.de<br />

Kontakt: Mittwald CM Service GmbH & Co KG · Frau Sonja Brinkmann · Königsberger Straße 6 · 32339 Espelkamp<br />

Weitere Informationen erhalten Sie unter www.mittwald.de/jobs


Wir sind das weltweit führende Unternehmen in der Entwicklung und Herstellung messtechnischer<br />

Geräte für die Zustandsanalyse und Fehlerortung an Kabel und Rohrleitungen. Seit über 60 Jahren<br />

sind wir Partner aller bedeutenden Energie-, Telekom- und Wasserversorger. Unsere Produkte leisten<br />

einen wichtigen Beitrag zum zuverlässigen und somit wirtschaftlichen Betrieb der Einrichtungen<br />

unserer Kunden. SebaKMT ist in über 130 Ländern mit exzellent ausgebildeten Mitarbeitern und<br />

modernster technischer Ausstattung vertreten.<br />

Als wachsendes Familienunternehmen suchen wir ständig qualifizierte, engagierte und innovative<br />

Mitarbeiterinnen und Mitarbeiter, die mit uns konsequent den Weg vorangehen, um unsere Marktstellung<br />

zu sichern und auszubauen.<br />

Elektrizitätsnetze<br />

Power networks<br />

Kommunikationsnetze<br />

Communications networks<br />

Rohrleitungsnetze<br />

Water networks<br />

Kanal-TV-Inspektion<br />

CCTV inspection<br />

Leitungs- und Objektortung<br />

Line and object location<br />

Entwicklungsingenieur Software (m/w) –<br />

Embedded <strong>Linux</strong> Softwareentwicklung<br />

u<br />

u<br />

u<br />

u<br />

u<br />

Ihre Aufgaben<br />

Umsetzung von Softwareprojekten unter Berücksichtigung des SW-Designprozesses<br />

Komplette Begleitung der Projekte von der Definition über die Entwicklung<br />

bis hin zur Freigabe<br />

Qt Applikationsentwicklung unter Embedded <strong>Linux</strong><br />

Nutzung moderner SW-Entwicklungswerkzeuge, z.B. JIRA, Jenkins, CVS/SVN<br />

Mitwirkung an der Erarbeitung von Lasten- und Pflichtenheften<br />

innerhalb eines jungen Projektteams<br />

Ihr Einsatzort<br />

u<br />

01471 Radeburg / Dresden<br />

Ihre Arbeitszeit<br />

u<br />

u<br />

Vollzeit<br />

41 Stunden / Woche<br />

Der Arbeitsvertrag<br />

u<br />

unbefristet<br />

u<br />

u<br />

u<br />

u<br />

u<br />

u<br />

u<br />

u<br />

u<br />

u<br />

u<br />

Ihr Profil<br />

Studium der Fachrichtung Informatik, Technische Informatik oder<br />

Elektrotechnik (FH, TU)<br />

Idealerweise Berufserfahrung in der Embedded <strong>Linux</strong> Softwareentwicklung<br />

Kenntnisse in C/C++ und Qt<br />

Verständnis für die SW-Entwicklung auf Microcontrollern sowie der<br />

Funktionsweise von analogen und digitalen Schaltungen<br />

Gute Englischkenntnisse in Wort und Schrift<br />

Gute PC-Kenntnisse, sichere Beherrschung von Microsoft Office<br />

Reisebereitschaft im In- und Ausland<br />

Wir bieten ...<br />

... eine abwechslungsreiche Tätigkeit in einem weltweit agierenden Unternehmen<br />

... konstruktive Atmosphäre und kollegiale Teamarbeit<br />

... leistungsgerechte Entlohnung<br />

... Arbeiten in einer zukunftssicheren Branche<br />

Besetzungstermin<br />

u ab sofort<br />

Bewerbungen bitte per Post<br />

oder Email an:<br />

SebaKMT<br />

z. Hd. Herrn Berth<br />

Röderaue 41<br />

01471 Radeburg<br />

Email:<br />

berth.t@sebakmt.com<br />

u<br />

u<br />

u<br />

u<br />

u<br />

Lebenslauf<br />

Zeugnisse<br />

aktuelles Lichtbild<br />

Gehaltsvorstellung<br />

nächstmöglicher<br />

Eintrittstermin<br />

Haben wir Ihr Interesse geweckt?<br />

Dann freuen wir uns auf Ihre aussagekräftige Bewerbung!<br />

Weitere Stellenangebote finden Sie<br />

unter www.sebakmt.com/jobs<br />

Hagenuk KMT Kabelmesstechnik GmbH • Röderaue 41 • 01471 Radeburg


Service<br />

www.linux-magazin.de Inserenten 05/2012<br />

104<br />

Inserentenverzeichnis<br />

1&1 Internet AG http://​www.einsundeins.de 17<br />

ADMIN http://​www.admin-magazin.de 95<br />

Android User GY http://​www.android-user.de 31, 101<br />

embedded projects GmbH http://​www.embedded-projects.net 101<br />

Fernschule Weber GmbH http://​www.fernschule-weber.de 101<br />

Grazer <strong>Linux</strong>-Tage http://linuxtage.at 67<br />

Hagenuk http://​www.sebakmt.com 103<br />

Heinlein Professional <strong>Linux</strong> Support GmbH http://​www.heinlein-support.de 43<br />

Hetzner Online AG http://​www.hetzner.de 108<br />

Hostserver GmbH http://​www.hostserver.de 45<br />

Ico Innovative Computer GmbH http://​www.ico.de 25<br />

InterNetX GmbH http://​www.internetx.com 27<br />

<strong>Linux</strong>-<strong>Magazin</strong> http://​www.linux-magazin.de 35, 69<br />

<strong>Linux</strong>-<strong>Magazin</strong> Academy http://​academy.linux-magazin.de 101<br />

<strong>Linux</strong>-Onlineshop/​Fidu http://​www.linux-onlineshop.de 107<br />

<strong>Linux</strong>Tag - Messe Berlin GmbH http://​www.linuxtag.org 83<br />

<strong>Linux</strong>User http://​www.linuxuser.de 57<br />

Mittwald CM Service GmbH & Co. KG http://​www.mittwald.de 2, 102<br />

netways GmbH http://​www.netways.de 41, 65<br />

O’Reilly Verlag GmbH & Co KG http://​www.oreilly.de 19<br />

Open Source Press GmbH http://​www.opensourcepress.de 47<br />

PlusServer AG http://​www.plusserver.de 62, 76, 88, 98<br />

Spenneberg Training & Consulting http://​www.spenneberg.com 101<br />

Kamp Netzwerkdienste GmbH http://​www.kamp.net 21<br />

<strong>Linux</strong> User Spezial http://​www.linux-user.de/​spezial 23<br />

<strong>Linux</strong>-Hotel http://​www.linuxhotel.de 15<br />

Strato AG http://​www.strato.de 1, 11<br />

Thomas Krenn AG http://​www.thomas-krenn.com 39<br />

Würth Phönix http://​wuerth-phoenix.com 9<br />

Veranstaltungen<br />

08.11.2011-09.04.2012<br />

VI Concurso Universitario de Software Libre –<br />

Desarrollo<br />

National, Spain<br />

http://www.concursosoftwarelibre.org/1112/<br />

02.-17.04.2012<br />

VI Concurso Universitario de Software Libre –<br />

Evaluación<br />

National, Spain<br />

http://www.concursosoftwarelibre.org/1112/<br />

12.-15.04.2012<br />

<strong>Linux</strong> Audio Conference 2012<br />

Stanford, CA, USA<br />

http://lac.linuxaudio.org/2012<br />

13.-15.04.2012<br />

Indiana <strong>Linux</strong>Fest<br />

Indianapolis, IN<br />

http://www.indianalinux.org/cms/<br />

17.-18.04.2012<br />

The Mobile Show<br />

Dubai, UAE<br />

http://www.terrapinn.com/2012/the-mobile-show/<br />

24.-26.04.2012<br />

Infosecurity Europe 2012<br />

London, UK<br />

http://www.infosec.co.uk<br />

25.-26.04.2012<br />

DevCon 5<br />

Santa Clara, CA, USA<br />

http://html5.tmcnet.com/conference/california/<br />

25.-27.04.2012<br />

NSDI ’12<br />

San Jose, CA<br />

http://www.usenix.org/events/nsdi12/<br />

27.-29.04.2012<br />

Penguicon<br />

Dearborn, MI<br />

http://www.penguicon.org<br />

28.04.2012<br />

Grazer <strong>Linux</strong>-Tage 2012<br />

Graz, Österreich<br />

http://www.linuxtage.at<br />

28.-29.04.2012<br />

<strong>Linux</strong>Fest Northwest<br />

Bellingham, WA<br />

http://linuxfestnorthwest.org<br />

03.-05.05.2012<br />

<strong>Linux</strong>wochen Wien<br />

Wien, Österreich<br />

http://linuxwochen.at<br />

07.-11.05.2012<br />

Ubuntu Developer Summit<br />

Oakland, CA, USA<br />

http://uds.ubuntu.com<br />

12.05.2012<br />

10. <strong>Linux</strong>-Informationstag der LUG Hanau<br />

Hanau, Deutschland<br />

http://www.hulug.de<br />

18.-20.05.2012<br />

Akademy-es<br />

Zaragoza, Spain<br />

http://kde-espana.es/akademy-es2012/anuncio.php<br />

24.-26.05.2012<br />

<strong>Linux</strong>wochen Linz<br />

Linz, Österreich<br />

http://www.liwoli.at<br />

28.05.-01.06.2012<br />

Linaro Connect Q2.12<br />

Gold Coast, Hong Kong<br />

http://connect.linaro.org/events/event/linaro-connectq2-12/#welcome<br />

08.-10.06.2012<br />

Southeast <strong>Linux</strong>Fest<br />

Charlotte, NC, USA<br />

http://www.southeastlinuxfest.org<br />

12.-13.06.2012<br />

Cloud Computing World Forum London<br />

Earls Court, London<br />

Veranstalter: Keynote World Media Ltd<br />

http://www.cdnconference.com/index.php<br />

26.-29.06.2012<br />

Open Source Bridge<br />

Portland, OR<br />

http://opensourcebridge.org/<br />

30.06.-06.07.2012<br />

Akademy 2012<br />

Tallinn, Estonia<br />

http://akademy.kde.org<br />

08.-14.07.2012<br />

DebConf12<br />

Managua, Nicaragua<br />

http://debconf.org<br />

10.-15.07.2012<br />

Wikimania 2012<br />

Washington, DC, USA<br />

http://wikimania2012.wikimedia.org<br />

16.-20.07.2012<br />

OSCON<br />

Portland, OR, USA<br />

http://www.oscon.com/oscon2012<br />

26.07.-01.08.2012<br />

Guadec 2012<br />

A Coruña, Spain<br />

http://www.guadec.org<br />

08.-10.08.2012<br />

USENIX Security ’12<br />

Bellevue, WA<br />

http://www.usenix.org/events/sec12/<br />

08.-09.09.2012<br />

Barcelona Ruby Conference<br />

Barcelona, Spain<br />

http://baruco.org<br />

19.09.2012<br />

2012 High Performance Computing for Wall Street<br />

New York City, NY<br />

http://www.flaggmgmt.com/hpc/<br />

08.-10.10.2012<br />

OSDI ’12<br />

Hollywood, CA<br />

http://www.usenix.org/events/osdi12/<br />

07.-09.11.2012<br />

<strong>Linux</strong>con Europe<br />

Barcelona, Spain<br />

https://events.linuxfoundation.org/events/linuxconeurope


Impressum<br />

<strong>Linux</strong>-<strong>Magazin</strong> eine Publikation der <strong>Linux</strong> New Media AG<br />

Redaktionsanschrift Putzbrunner Str. 71<br />

81739 München<br />

Tel.: 089/993411-0<br />

Fax: 089/993411-99 oder -96<br />

Internet<br />

www.linux-magazin.de<br />

E-Mail<br />

redaktion@linux-magazin.de<br />

Geschäftsleitung<br />

Chefredakteure<br />

stv. Chefredakteure<br />

Brian Osborn (Vorstand), bosborn@linuxnewmedia.de<br />

Hermann Plank (Vorstand), hplank@linuxnewmedia.de<br />

Jan Kleinert (V.i.S.d.P.), jkleinert@linux-magazin.de (jk)<br />

Ulrich Bantle (Online), ubantle@linux-magazin.de (uba)<br />

Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Print- und Onlineredaktion<br />

Aktuell, Forum Ulrich Bantle, ubantle@linux-magazin.de (uba)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Software, Programmierung Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Sysadmin, Know-how Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Ständige Mitarbeiter Fred Andresen (fan), Zack Brown, Mela Eckenfels, Peter<br />

Kreußel, Tim Schürmann, Heike Jurzik (hej), Charly Kühnast,<br />

Martin Loschwitz, Michael Schilli, Mark Vogelsberger, Uwe<br />

Vollbracht, Britta Wülfing (bwü), Arnold Zimprich (azi)<br />

Schlussredaktion<br />

Grafik<br />

Bildnachweis<br />

DELUG-DVD<br />

Chefredaktionen<br />

International<br />

Produktion<br />

Onlineshop<br />

Abo-Infoseite<br />

Abonnenten-Service<br />

ISSN 1432 – 640 X<br />

Jürgen Manthey<br />

Klaus Manuel Rehfeld, Mike Gajer,<br />

xhoch4, München (Titel-Illustration)<br />

123RF.com, Fotolia.de, Photocase.com, Pixelio.de und andere<br />

Thomas Leichtenstern, tleichtenstern@linuxnewmedia.de (tle)<br />

<strong>Linux</strong> <strong>Magazin</strong>e International<br />

Joe Casad (jcasad@linux-magazine.com)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Poland<br />

Artur Skura (askura@linux-magazine.pl)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Spain<br />

Paul C. Brown (pbrown@linux-magazine.es)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Brasil<br />

Rafael Peregrino (rperegrino@linuxmagazine.com.br)<br />

Christian Ullrich, cullrich@linuxnewmedia.de<br />

shop.linuxnewmedia.de<br />

www.linux-magazin.de/Produkte<br />

Lea-Maria-Schmitt<br />

abo@linux-magazin.de<br />

Tel.: 07131/27 07 274<br />

Fax: 07131/27 07 78 601<br />

CH-Tel: +41 43 816 16 27<br />

Preise Print Deutschland Österreich Schweiz Ausland EU<br />

No-Media-Ausgabe 4 5,95 4 6,70 Sfr 11,90 (siehe Titel)<br />

DELUG-DVD-Ausgabe 4 8,50 4 9,35 Sfr 17,— (siehe Titel)<br />

Jahres-DVD (Einzelpreis) 4 14,95 4 14,95 Sfr 18,90 4 14,95<br />

Jahres-DVD (zum Abo 1 ) 4 6,70 4 6,70 Sfr 8,50 4 6,70<br />

Mini-Abo (3 Ausgaben) 4 3,— 4 3,— Sfr 4,50 4 3,—<br />

Jahresabo No Media 4 63,20 4 71,50 Sfr 99,96 4 75,40<br />

Jahresabo DELUG-DVD 4 87,90 4 96,90 Sfr 142,80 4 99,90<br />

Preise Digital Deutschland Österreich Schweiz Ausland EU<br />

Heft-PDF Einzelausgabe 4 5,95 4 5,95 Sfr 7,70 4 5,95<br />

DigiSub (12 Ausgaben) 4 63,20 4 63,20 Sfr 78,50 4 63,20<br />

DigiSub (zum Printabo) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

HTML-Archiv (zum Abo 1 ) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

Preise Kombiabos Deutschland Österreich Schweiz Ausland EU<br />

Mega-Kombi-Abo 2 4 143,40 4 163,90 Sfr 199,90 4 173,90<br />

Profi-Abo 3 4 136,60 4 151,70 Sfr 168,90 4 165,70<br />

1<br />

nur erhältlich in Verbindung mit einem Jahresabo Print oder Digital<br />

2<br />

mit <strong>Linux</strong>User-Abo (DVD) und beiden Jahres-DVDs, inkl. DELUG-Mitgliedschaft (monatl.<br />

DELUG-DVD)<br />

3<br />

mit ADMIN-Abo und beiden Jahres-DVDs<br />

Schüler- und Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises<br />

oder einer aktuellen Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei<br />

Verlän gerung neu zu erbringen. Andere Abo-Formen, Ermäßigungen im Ausland etc.<br />

auf Anfrage.<br />

Adressänderungen bitte umgehend mitteilen, da Nachsendeaufträge bei der Post nicht<br />

für Zeitschriften gelten.<br />

Pressemitteilungen<br />

Marketing und Vertrieb<br />

Mediaberatung D, A, CH<br />

presse-info@linux-magazin.de<br />

Petra Jaser, anzeigen@linuxnewmedia.de<br />

Tel.: +49 (0)89 / 99 34 11 – 24<br />

Fax: +49 (0)89 / 99 34 11 – 99<br />

Mediaberatung USA Ann Jesse, ajesse@linuxnewmedia.com<br />

und weitere Länder Tel.: +1 785 841 8834<br />

Eric Henry, ehenry@linuxnewmedia.com<br />

Tel.:+1 785 917 0990<br />

Pressevertrieb<br />

Druck<br />

MZV Moderner Zeitschriften Vertrieb GmbH & Co. KG<br />

Ohmstraße 1, 85716 Unterschleißheim<br />

Tel.: 089/31906-0, Fax: 089/31906-113<br />

Vogel Druck und Medienservice GmbH, 97204 Höchberg<br />

Der Begriff Unix wird in dieser Schreibweise als generelle Bezeichnung für die Unixähnlichen<br />

Betriebssysteme verschiedener Hersteller benutzt. <strong>Linux</strong> ist eingetragenes<br />

Marken zeichen von Linus Torvalds und wird in unserem Markennamen mit seiner<br />

Erlaubnis verwendet.<br />

Eine Haftung für die Richtigkeit von Veröffentlichungen kann trotz sorgfältiger Prüfung<br />

durch die Redaktion vom Verlag nicht übernommen werden. Mit der Einsendung von<br />

Manus kripten gibt der Verfasser seine Zustimmung zum Abdruck. Für unverlangt<br />

eingesandte Manuskripte kann keine Haftung übernommen werden.<br />

Das Exklusiv- und Verfügungsrecht für angenommene Manuskripte liegt beim Verlag. Es<br />

darf kein Teil des Inhalts ohne ausdrückliche schriftliche Genehmigung des Verlags in<br />

irgendeiner Form vervielfältigt oder verbreitet werden.<br />

Copyright © 1994 – 2012 <strong>Linux</strong> New Media AG<br />

Impressum 05/2012<br />

Service<br />

www.linux-magazin.de<br />

105<br />

Krypto-Info<br />

GnuPG-Schlüssel der <strong>Linux</strong>-<strong>Magazin</strong>-Redaktion:<br />

pub 1024D/44F0F2B3 2000-05-08 Redaktion <strong>Linux</strong>-<strong>Magazin</strong><br />

<br />

Key fingerprint = C60B 1C94 316B 7F38 E8CC E1C1 8EA6 1F22 44F0 F2B3<br />

Public-Key der DFN-PCA:<br />

pub 2048R/7282B245 2007-12-12,<br />

DFN-PGP-PCA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)<br />

<br />

Key fingerprint = 39 D9 D7 7F 98 A8 F1 1B 26 6B D8 F2 EE 8F BB 5A<br />

PGP-Zertifikat der DFN-User-CA:<br />

pub 2048R/6362BE8B (2007-12-12),<br />

DFN-PGP-User-CA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)<br />

<br />

Key fingerprint = 30 96 47 77 58 48 22 C5 89 2A 85 19 9A D1 D4 06<br />

Root-Zertifikat der CAcert:<br />

Subject: O=Root CA, OU=http://www.cacert.org, CN=CA Cert Signing Authority/<br />

Email=support@cacert.org<br />

SHA1 Fingerprint=13:5C:EC:36:F4:9C:B8:E9:3B:1A:B2:70:CD:80:88:46:76:CE:8F:33<br />

MD5 Fingerprint=A6:1B:37:5E:39:0D:9C:36:54:EE:BD:20:31:46:1F:6B<br />

GPG-Schlüssel der CAcert:<br />

pub 1024D/​65D0FD58 2003-07-11 [expires: 2033-07-03]<br />

Key fingerprint = A31D 4F81 EF4E BD07 B456 FA04 D2BB 0D01 65D0 FD58<br />

uid CA Cert Signing Authority (Root CA) <br />

Autoren dieser Ausgabe<br />

Konstantin Agouros Filmreif austeilen 28<br />

Konstantin Agouros Turnschuh Ade! 48<br />

Fred Andresen Recht 78<br />

Bernhard Bablok Bash Bashing 90<br />

Florian Effenberger Der Dreck soll weg 52<br />

Renate Hermanns Gut in Form 64<br />

Eva-Katharina Kunst Kern-Technik 84<br />

Charly Kühnast Traffic Spotting 71<br />

Charly Kühnast Turnschuh Ade! 48<br />

Martin Loschwitz Dabeibleiben ist alles 40<br />

Martin Loschwitz Kleine Wölkchen 44<br />

Martin Loschwitz Turnschuh Ade! 48<br />

Michael Müller Tux liest 82<br />

Jürgen Quade Kern-Technik 84<br />

Fritz Reichmann Nach dem Schuss 58<br />

Michael Schilli Datensauger 92<br />

Tim Schürmann Paketzentren 22<br />

Dr. Udo Seidel Turnschuh Ade! 48<br />

Thilo Uttendorfer Log-Wellenreiter 32<br />

Valentin Höbel <strong>Linux</strong>-Multimeter 72<br />

Zack Brown Zacks Kernel-News 18<br />

Thilo Uttendorfer Turnschuh Ade! 48<br />

Uwe Vollbracht Tooltipps 68<br />

Valentin Höbel Log-Wellenreiter 32


Service<br />

www.linux-magazin.de <strong>Vorschau</strong> 06/2012 1/2011 05/2012 12/2010<br />

106<br />

<strong>Vorschau</strong><br />

06/2012 Dachzeile<br />

Zeiterfassungen<br />

© MARIUSZ PRUSACZYK, 123RF<br />

MAGAZIN<br />

Überschrift<br />

Wer wann wie viel gearbeitet hat, gerät bei Projektarbeitern oft<br />

zur fehlerträchtigen Schätzung. Zeiterfassungstools verschaffen<br />

eine genauere Übersicht, helfen bei der Abrechnung und bekämpfen<br />

Prokrastination. Die nächste Bitparade testet GUI- und<br />

CLI-Programme sowie eine Android-App auf Praxistauglichkeit.<br />

Sugar-Chat<br />

Instant Messaging als Dauerkanal in Richtung Kunde steht für<br />

Support- und Vertriebsabteilungen hoch im Kurs. Leider sind<br />

die getauschten Informationen von flüchtiger Natur. Sugar CRM<br />

besitzt jedoch ein gut dokumentiertes API, über das mit Dropbox<br />

und Pidgin die relevanten Daten nutzbar bleiben.<br />

Vielsprachigkeit bei Admins<br />

Die meisten <strong>Linux</strong>-Systemadmins sind zugleich Skript-Entwickler<br />

– wer sonst sollte die unzähligen kleinen Tools schreiben<br />

und verbessern, die den anforderungsreichen Arbeitsalltag zu<br />

bewältigen erst möglich machen!? Das kommende <strong>Magazin</strong><br />

will den durch viel Bash und etwas Perl bestimmten Blick zum<br />

Vorteil aller weiten. Der Konfigurationsmanager Puppet zeigt,<br />

wie ein in Ruby verfasstes Tool sehr effizient strukturierte Dateien<br />

interpretiert. Auch für Netzwerkprotokolle haben vermeintliche<br />

Exoten oft das bessere Händchen. Selbst das typsichere<br />

und ausdrucksstarke Haskell kann einiges stemmen.<br />

Pfeilschnell: Google Dart<br />

Mit der Skriptsprache Dart nimmt Google das altehrwürdige<br />

Javascript ins Visier. Dart soll einige Probleme des Vorgängers<br />

beheben, alten Ballast über Bord werfen, höhere Sicherheit bieten<br />

und obendrein die Skripte viel schneller ausführen. Dennoch<br />

stoßen Javascript-Programmierer auf viel Vertrautes.<br />

Die Ausgabe 06/2012<br />

erscheint am 3. Mai 2012<br />

Ausgabe 05/2012<br />

erscheint am 19.04.2012<br />

© Flaivoloka, sxc.hu<br />

Netzwerke<br />

In der kommenden Ausgabe zeigen wir,<br />

mit wel chen Mitteln Sie unter <strong>Linux</strong> am<br />

einfachsten Datenbestände über das Netz<br />

schaufeln können. Beim Transport kleiner<br />

und großer Dateien über das Internet<br />

schützt starke Krypto graphie die Dokumente<br />

vor dem Zugriff Unbefugter. Außerdem<br />

geben wir Tipps zur Konfiguration<br />

des zentralen Knotenpunkts im heimischen<br />

Netzwerk – dem WLAN-Router.<br />

3D mit Bino<br />

Spätestens seit dem Hollywood-Blockbuster Avatar hat der 3D-Hype<br />

auch die Wohnzimmer erobert. Unter <strong>Linux</strong> schauen Sie 3D-Filme<br />

am einfachsten mit dem quelloffenen Videoplayer Bino, einen<br />

passenden Monitor natürlich vorausgesetzt. Wir zeigen, wie Sie<br />

Software und System so konfigurieren, dass der nächste Filmabend<br />

auch in der dritten Dimension klappt.<br />

Video-DVDs erstellen<br />

Wer einmal die Tools zum Konvertieren von Videos in die Hand genommen<br />

hat, weiß eine einfach zu bedienende GUI zu schätzen.<br />

Devede reduziert den Parameterwald auf die sinnvollen Optionen und<br />

hilft Ihnen dabei, mit wenigen Mausklicks eine fertige Video-DVD zu<br />

erstellen.<br />

Satchbook 13 von Rockiger<br />

Ein charmante Idee: Das Satchbook von Rockiger<br />

verspricht ein perfekt eingerichtetes Notebook mit<br />

Ubuntu. Im ersten Anlauf hat sich der Laptop allerdings<br />

einige Kritik gefallen lassen müssen in<br />

puncto Qualität der Hardware.<br />

Jetzt hat der Hersteller mit einer<br />

neuen Version und neuen Komponenten<br />

nachgelegt. Wir stellen<br />

diese erneut im Praxistest auf dem<br />

Prüfstand.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!