Suchen und Ersetzen auf der Kommandozeile

Die Skriptsprache Perl kann direkt von der Kommandozeile aus verwendet werden, um Text in Dateien zu ersetzen. In Kombination mit find kann man da sehr einfach in Dateien ersetzen:
find -type f -exec perl -i -p -e 's/pattern/target/g;' {} \;
find -type f findet alle Dateien (aber nicht Verzeichnisnamen oder Links) unter dem aktuellen Verzeichnis. Soll nur in bestimmten Dateien ersetzt werden, wird zusätzlich der Parameter -name "shellpattern" oder -regex "expression" verwendet, zum Beispiel find -type f -name "*.html".

Webseiten spiegeln: wget

Das Tool wget bietet eine unglaubliche Funktionsfülle. Ich brauche es dazu, dynamisch erzeugte Webseiten zu archvieren.
Diese können nachher mit einem Browser als Dateien geöffnet werden, ohne Webserver. Dazu rufe ich wget folgendermassen auf:
wget -r -k -nv -E -e robots=off -l 0 http://server.ch/
Die interessanten Parameter sind:

Batch Bilddateien konvertieren und skalieren

Um Bilder in andere Formate umzuwandeln, gibt es das ImageMagick Programm "convert".
Um eine Datei umzuwandeln, schreibt man z.B.
convert test.gif test.png
Das Programm kennt eine unglaubliche Fülle an Graphikformaten, "man ImageMagick" listet alle unterstützen Formate auf. Convert kann ausserdem die Bilder auch noch manipulieren, siehe "man convert".
Was convert allerdings nicht kann, ist mehrere Bilder umwandeln. Ich habe dazu ein einfaches Shellskript batchconvert geschrieben. Die Datei als batchconvert abspeichern, in /usr/local/bin/ kopieren und mit chmod a+x ausführbar machen. Die Syntax ist:

batchconvert t <targettype> <dateiliste>, z.B. batchconvert t png *.gif
Um die Grösse von Bildern zu ändern gibt es den Parameter -resize, z.B.
convert -resize 800x600 test.png test.png
Wiederum geht das nur mit einem File. Mein Skript batchresize verkleinert oder vergrössert eine Liste von Bildern.

Überprüfen nach ungültigen Links: linklint

Dieses praktische Programm überprüft alle Links einer Site und meldet ob die Seiten noch existieren, ein redirect sendeten oder nicht gefunden wurden. Auf Wunsch erzeugt das Programm html Dateien mit den entsprechenden Informationen. Ich rufe es folgendermassen auf:
linklint -http -host localhost -doc . -net /@

  • -http: Es sollen Webseiten vom Webserver geholt werden (Linklint kann auch Dateien aus dem Filesystem überprüfen)
  • -host localhost: Adresse des Servers
  • -doc .: Verzeichnis für den Output, der . bezeichnet das aktuelle Arbeitsverzeichnis
  • /@ : Startdatei ist /, das heisst die Startseite der Webseite, das @ bedeutet, dass alle Dateien unter diesem Verzeichnis überprüft werden

Mehr zum Programm - das zumindest bei Debian / Ubuntu am einfachsten per apt-get installiert wird - ist unter www.linklint.org zu erfahren.

Improving Network Reliability by avoiding Misconfiguration

DRCN 2007, La Rochelle, France, 7-10 October, 2007.

Abstract: One source of network operation interruption is the human factor. In this paper, we discuss how network management systems can help to avoid mistakes in configuration. While ensuring correct syntax of configuration data is nothing novel, testing its semantics has become a challenge to network management.
We illustrate possible solutions with the Verified Network Configuration (Verinec) project. A central XML database is used to model the network and device configuration. All configuration is tested before the setup of the real devices is modified.

PhD Thesis accepted

I can now officially call myself a doctor! My PhD thesis has been accepted by the University of Fribourg. You can read the abstract of my thesis on this page. If you want to read the whole thesis, find it at ethesis.unifr.ch or if it disapeared from there, just drop me an Email.

Assessment of code quality through classification of unit tests in VeriNeC

(Together with Dominik Jungo)
AINA 2007, Niagara, Canada, May 21-23, 2007.
Abstract: Unit testing is a tool for assessing code quality. Unit tests check the correctness of code fragments like methods, loops and conditional statements. Usually, every code fragment is involved in different tests. We propose a classification of tests, depending on the tested features, which delivers a higher detailed feedback than unclassified tests. Unclassified tests only deliver a feedback whether they failed or succeeded. The detailed feedback from the classified tests help to do a better code quality assessment and can be incorporated in tools helping to improve code quality. We demonstrate the power of this approach doing unit tests on network configuration.

A role model to cope with the complexity of network configuration

INOC 2007, Spa, Belgium, April 22-25, 2007.
Abstract: In this paper, we propose a role model to cope with the complexity of network configuration. Roles associate policy requirements as well as configuration templates with nodes in the network. One goal is to remove redundancy in configuration data to avoid inconsistent changes and diverging setup of similar devices. The other goal is to ensure that network policies are respected by the configuration.
This role model is embedded into the project Verified Network Configuration (Verinec). Together with
the Verinec XML network model, roles provide a powerful instrument to configure large networks.

simplEcard E-Card Tool

I would like to announce simplEcard, a little script for electronic postcards I wrote. I wrote it because i wanted a simple system but one that is able to send HTML emails with the image embedded. Of course the email is multipart, so users without HTML mail also can read the message.

Please have a look at the simplEcard website

Spam oder ein Witz

Google translate alleine kann da nicht schuld sein. Viel Spass beim lesen (Hervorhebungen durch mich).

Jafferson Assc (PDF)

Syndicate content