Linux Minis

Mailprogramm mutt

Der Befehl mutt -f Mailbox-Dateiname öffnet eine Mailbox. Mit b wird die aktuelle Email weitergeleitet. Mit T kann man mehrere Emails markieren (z.B. mit dem Regex „.*“). Mit ; leitet man einen Befehl für mehrere markierte Emails ein. Die Folgende Befehlsfolge versendet alle Emails einer geöffneten Mailbox: T + .* + ; + b

gelöschte Dateien retten

Unter dem ext2-Dateisystem kann man mit debugfs gelöschte Dateien wiederherstellen.

# umount /home
# debugfs /dev/sdd3
debugfs: lsdel
4711 0 93678 6/ 6 Sat Jul 6 17:23:29 2002
239 1000 20 1/ 1 Sat Jul 6 15:27:15 2002
184 1000 4377 1/ 1 Mon Jul 1 23:22:57 2002
debugfs: dump <239> /tmp/saved
debugfs: quit
# mount /home

Die Tabelle von lsdel zeigt in Spalte 1 die Inode-Nummer, in Spalte 2 die User-ID (vom löschenden User), in Spalte 4 die Dateigrösse und in Spalte 6 das Datum des Löschens.

Netzwerkdurchsatz messen

Für einfache Messungen ohne Installationsaufwand eignet sich hervorragend Netio. Von den beiden an der Messung beteiligten Rechner übernimmt einer die Rolle des Servers (er wartet auf Anfragen) und der jeweils andere die des Clienten (er fragt den Server). Wenn das Netio-Paket geladen und entpackt ist, wechselt man für einen Serverstart einfach in das bin-Verzeichnis und startet: win32-i386.exe -s -t

Netio Server

Der Parameter -s besagt, das der Server gestartet werden soll. -t veranlasst eine Messung per Tcp (-u wurde UDP messen und beide Optionen weggelassen würde per NetBIOS testen). Der im Screenshot gelb markierte Teil entsteht erst bei der Messung. Der Server meldet den Verbindungsaufbeu des Clienten und die Größe der aktuell getesteten Pakete.

Netio Client

Der Client wird mit dem Befehl win32-i386.exe -t Server-IP gestartet. Auch er bekommt mit dem zusätzlichen Parameter -t die Anweisung per TCP zu messen (siehe oben). Das Ergebnis wird Zeile für Zeile für die gesendeten und empfangenen Pakete angezeigt.

Wer den Komfort einer grafischen Oberfläche nutzen möchte, kann Jperf einsetzen. Es verwendet das Tool iperf. Iperf kann auch ohne die Installation von Jperf analog Netio eingesetzt werden. Den Server startet man mit iperf -s und den Clienten mit iperf -c Server-IP. Mit der Option -t 60 kann man die Zeit (wie lange der Test läuft) von Standard 10s auf 60 Sekunden erhöhen.

Jperf Sreenshot

Die Installation der grafischen Oberfläche Jperf ist denkbar einfach. Es wird eine Java 1.4 (oder höher) Umgebung vorausgesetzt. Das Archiv entpackt man an einen Ort seiner Wahl. In diesen legt man eine neue Datei mit dem Namen jperf.bat an und editiert den Inhalt wie folgt:

[code lang=“dos“]REM — Konfiguration ———————————–

SET JAVA_BIN=C:\Programme\Java\jre1.5.0_08\bin\java.exe

SET JPERF_DIR=C:\Programme\jperf-1.0

SET IPERF_DIR=C:\Programme\iperf-1.7.0

REM — Skript ——————————————

SET PATH=%PATH%;%IPERF_DIR%

SET JPERF_JAR=%JPERF_DIR%\jfreechart-0.9.6.jar
SET JPERF_JAR=%JPERF_JAR%;%JPERF_DIR%\jcommon-0.7.2.jar
SET JPERF_JAR=%JPERF_JAR%;%JPERF_DIR%\jperf.jar

%JAVA_BIN% -classpath „%JPERF_JAR%“ Jperf[/code]

Im Bereich Konfiguration müssen die Pfade an die eigenen Ordner angepasst werden.

Das Skript startet die Jperf-Oberfläche und ermöglicht die komfortable eingabe aller Iperf-Parameter. Einen Server startet man im einfachsten Fall durch die Auswahl Type gleich „Server“ und einen Klick auf die Run-Schaltfläche. Für den Klienten (Standard-Typ der Oberfläche) gibt man im Eingabefeld Server dessen Ip an und klickt ebenfalls auf Run.

Zusätzlich zur Iperf-Ausgabe (Tab Output) wird das Ergebnis grafisch dargestellt.

Jperf Result Screenshot

In der Praxis wird man das Iperf-Archiv auf den „anderen Rechner“ kopieren und einen Server starten. Die Qualität der Jperf-Auswertung rechtfertigt den Installationsaufwand. Die gefundenen Ergebnisse sind sowohl bei netio als auch bei iperf immer nur ein aktueller Bild der Netzwerkperformance. Sie eignet sich auf keinen Fall zur Berwertung der verwendeten Rechner. Lediglich einzelne Komponenten lassen sich bei gleichen Rahmenbedingungen bewerten. So kann man durchaus eine Aussage über die Qualität der aktualisierten Firmaware (beispielsweise des Funktrouters) treffen, wenn alle anderen Bedingungen gleich geblieben sind.

Weitere Informationen finden sich auf den folgenden Links. So beschreibt zum Beipiel der Artikel DT Performance Messung, wie man die Festplatten-Performance in seine Tests mit einbeziehen kann. Das die Ergebnisse wesentlich besser geignet sind, um einen Fileserver zu bewerten versteht sich von selbst.

http://www.nwlab.net/art/netio/netio.html
http://www.exchange2000faq.de

Wie funktioniert das Internet?

Der 13-minütige Animationsmovie „Warriors of the Net“ zeigt in spacigen Bildern, wie Internet und elektronischer Datentransport funktionieren. Als Hauptdarsteller wirken, im Star Wars ähnlichen Science Fiction-Design, bekannte Netz-Gestalten des täglichen Internetlebens: Router, Firewalls und Datenpakete.

Download: ftp://ftp.sunet.se/pub/tv+movies/warriors/

Wer es noch ein wenig ausführlicher mag, schaut sich die WDR Sachgeschichte mit der Maus an. Unter dem Titel „Der Datenweg durchs Internet“ wird erklärt, wie die Internetseite auf den Bildschirm kommt. Nicht so spacig wie im ersten Fall, aber auch schon anzusehen.

Download: http://www.wdrmaus.de/service/download/

Trusted Computing

Screenshot TC

Ein sehr gut gemachter Film, der zum nachdenken anregt: http://www.lafkon.net/tc/
Ein Auszug aus der deutschen Übersetzung:

Vertrauen ist wenn man an die Aufrichtigkeit einer Sache glaubt. Es ist das kompromisslose Gefühl von Wahrheit und Ehrlichkeit …
… und kann nicht erzwungen werden. Vertrauen zwischen zwei Menschen ist eine persönliche Bindung die auf Gesprächen, gemeinsamen Werten und Erfahrungen basiert.
Vertrauen beruht immer auf Gegenseitigkeit.

Quelle: http://www.ste.ag/2005/10/05/trusted-computing/

Projektverwaltung

Open Workbench ist eine in Java geschriebene Projektmanagement-Software. Die Freeware unterstützt Anwender bei der Planung und Durchführung ihrer Projekte. Projekte lassen sich für das Projektmanagement in Aktivitäten, Phasen, Aufgaben und Meilensteine unterteilen und diesen die jeweils erforderlichen Ressourcen an Personal, Material oder Kostenaufwand zuordnen. Das Projektmanagement kann einzelnen Mitarbeitern im Projektplan verschiedene Rollen zuordnen, um das Management von Arbeitsgruppen in komplexen Projekten zu vereinfachen. Außerdem sind Projektverantwortliche in der Lage, für das Projektmanagementverschiedene Projektzeitpläne zu entwerfen und diese Momentaufnahmen mit der Planung beziehungsweise der tatsächlichen Entwicklung abzugleichen.

http://www.openworkbench.org
http://www.openworkbench.de

Die OpenSource Anwendung GanttProject ist eine in Java geschriebene Projektplanung, mit der man Gantt-Diagramme erstellt kann. Für jedes Projekt kann eine hierarchische Aufgabenstruktur festgelegt werden. Für jede Aufgabe lassen sich Start- und Endzeitpunkt, Prioritäten und Abhängigkeiten zu anderen Aufgaben festlegen, sowie den Aufgaben Personen zuordnen.

http://ganttproject.sourceforge.net/
Flash-Demo GanttProject

Putty, PuttyGen und WinSCP

Um die Putty-Sessions von einem PC auf den anderen zu übertragen, kann man mit regedit den folgenden Pfad ex- und importieren.

HKEY_CURRENT_USER\Software\SimonTatham

WinSCP speichert seine Sessions unter:

HKEY_CURRENT_USER\Software\Martin Prikryl

Achtung! Die Sessionnamen der neueren Versionen dürfen keine Slashes enthalten und ersetzen ein Leerzeichen durch die Kombination: %20

Java Properties

Eine Benutzerkonfiguration wird zum Beginn einer Anwendung geladen. Während ihres Laufs werden die verschiedensten Paramter geändert und zum Ende gespeichert.

Für den Zugriff auf die Konfiguration werden Pfad, Name, Parameter-Schlüssel und die Konfiguration (params) selbst global festgelegt.

[code lang=“java“]public static final String CONFIG_PATH =
System.getProperty(„user.home“) +
System.getProperty(„file.separator“) +
„.app“;

public static final String CONFIG_FILE =
„convert.properties“;

public static final String PARAM_XYZ = „param.xyz“;

private Properties params = new Properties();[/code]

Beim Start der Anwendung wird geprüft, ob das Verzeichnis für die Konfiguration vorhanden ist. Wenn dies nicht der Fall ist, wird das Verzeichnis angelegt und eine möglicherweise vorhandene Konfiguration eingelesen.

[code lang=“java“]try {

File confDir = new File(CONFIG_PATH);
if(! confDir.exists()) confDir.mkdir();

String config = CONFIG_PATH +
System.getProperty(„file.separator“) +
CONFIG_FILE;

File c = new File(config);

if( c.exists() ){
FileInputStream in = new FileInputStream(config);
params.load(in);
in.close();
}

} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}[/code]

Nach dem Laden hat man über den Parameter-Schlüssel Zugriff auf die Werte der Konfiguration. Ist ein Schlüssel nicht definiert, wird null geliefert.

[code lang=“java“]params.getProperty(PARAM_XYZ)[/code]

Geändert wird ein Parameter ebenfalls über seinen Schlüssel.

[code lang=“java“]params.setProperty(PARAM_XYZ, „abcd“);[/code]

Am Ende müssen alle aktuellen Werte gespeichert werden.

[code lang=“java“]try {
String config = CONFIG_PATH +
System.getProperty(„file.separator“) +
CONFIG_FILE;;

FileOutputStream out = new FileOutputStream(config);
properties.store(out, „Lokale Konfiguration“);
out.close();

} catch (Exception e) {
e.printStackTrace();

}[/code]

Beim Speichern ist zu beachten, das alle gewollten Möglichkeiten – das Programm zu Beenden – beachtet werden. So kommen in einem typischen GUI die Titelleiste, ein Menüeintrag und ein Toolbar-Button in Frage.