Linux Shell-Tricks

Cron, Nano & CCZE optimieren

Die Eingabeaufforderung (Shell) unter Linux ist mehr als ein Überbleibsel aus der Unix-Vorzeit, sondern ein reich ausgestatteter Werkzeugkasten, der auch für trickreiche Aufgaben das passende Tool enthält.

Netzwerk, WLAN und 3G: Dateiübertragung bei schlechter Verbindung

Während man im kabelgebundenen Netzwerk vielerorts im Gigabit-Rausch schwelgen darf, ist die Verbindungsqualität im Drahtlosnetzwerk oft mau, wenn der Access Point weit entfernt steht. In öffentlichen WLANs und beim Tethering via Smartphone kann man Netzwerkpakete oft einzeln per Handschlag begrüßen. Die Übertragung von größeren Dateien ist dann eine Qual, da ein Abbruch meist eine erneute Übertragung der gesamten Datei zur Folge hat.

Die meisten Übertragungsprotokolle planen längere Verbindungsabbrüche schlicht nicht ein. Zwar warten Client und Server bei allen Protokollen höflich eine Weile während einer hängenden Verbindung. Sobald aber ein definierter Time-out erreicht ist, wird die Verbindung geschlossen und die unvollständig übertragene Datei verworfen, damit der Server Ressourcen für neue Verbindungen hat. Aus der Perspektive des Servers ist es durchaus wünschenswert, nicht lange auf Clients zu warten. Eine Ausnahme ist FTP, das einen abgebrochenen Upload/Download wieder aufnehmen kann, sofern Client und Server die Befehle „REST“ und „SIZE“ unterstützen. Aber der Einsatz von FTP auf dem eigenen Server oder Linux-PC zieht einen Rattenschwanz anderer Probleme nach sich wie etwa die Problematik unverschlüsselt übermittelter Log-ins und Daten. Zwischen zwei Linux-Systemen können Sie Dateien mit rsync austauschen, das sowohl ein Protokoll als auch ein Programm zur Datenübertragung ist. Der Vorteil ist, dass rsync als Gegenstelle nur einen Server mit Open SSH benötigt, der unter Linux flink eingerichtet ist. Es arbeitet zuverlässig, selbst wenn die Verbindung während der Übertragung immer wieder mal zusammenbricht. Damit ist rsync zur Übertragung großer Dateien ideal und anderen Protokollen überlegen. Rufen Sie rsync dazu mit dem zusätzlichen Parameter „--partial“ auf:

rsync --partial --progress --rsh=ssh [Dateiname] [Server]:[Dateiname]

Dieser Befehl kopiert die Datei mit dem Namen [„Dateiname]“ auf den angegebenen Server mit der Adresse „[Server]“, auf dem Open SSH laufen muss. Bricht die Verbindung zwischendurch ab, führt rsync nach einem erneuten Verbindungsaufbau automatisch die Übertragung fort.

Das Tool ccze: Logdateien übersichtlicher ausgeben

Desktop-Anwender müssen selten in den Logdateien eines Systems den genauen Wortlaut einer Fehlermeldung nachsehen. Ganz anders auf dem eigenen Linux-Server im Internet oder auf dem Raspberry Pi als Mini-Server im Netzwerk: Hier gehört die Überprüfung von Logs zu den Standardaufgaben.

Übersichtlich dank farbiger Syntax: Das Tool ccze fügt in die Ausgabe Ansi-Steuerzeichen ein. Das hilft zur farbigen Absetzung von Textelementen etwa in Logdateien.
Übersichtlich dank farbiger Syntax: Das Tool ccze fügt in die Ausgabe Ansi-Steuerzeichen ein. Das hilft zur farbigen Absetzung von Textelementen etwa in Logdateien.

Logdateien sind Textwüsten, und die Ausgabe in der Kommandozeile ist der Übersicht nicht gerade zuträglich. Ein kleines Tool hilft, typische Logs mit Zeitstempel pro Zeile, wie sie etwa der Webserver Apache produziert, mittels farbiger Syntaxhervorhebung übersichtlicher darzustellen. Das Tool mit dem Namen ccze ist in den Standard-Software-Quellen von Ubuntu, Debian und Raspbian enthalten und formt die Ausgabe per Pipe-Befehl um. Damit ist es der perfekte Begleiter für Befehle wie „cat“ oder „tail“ zur Anzeige von Logdateien. Mit

sudo apt-get install ccze

ist es umstandslos installiert, und bei der Eingabe von man ccze gibt es auch eine Dokumentation. Die Umformung von ccze reagiert auf Schlüsselbegriffe und Formatierungen, um beispielsweise Zeitangaben und Fehlermeldungen per Ansi-Steuerzeichen einzufärben. So können Sie sich mit

dmesg | ccze -A

die Kernel-Meldungen farbig formatiert ansehen.

Ein weiteres Beispiel:

sudo tail /var/log/apache2/error.log | ccze -A

Dieser Befehl verknüpft ccze mittels Pipe-Zeichen „|“ mit dem Befehl „tail“ zur Anzeige von Apache-Logdateien.