Dieser Bereich ist nützlichen Programmen gewidmet, die ich häufig benutze. Eröffnet wurde er für „screen”, soll aber auf weitere Werkzeuge erweitert werden.
Oftmals hat man das Problem, daß mehrere doppelte Dateien auf seiner Festplatte herumliegen und man diese möglichst einfach loswerden will. Dabei ist das Programm fdupes(1) eine große Hilfe. Wenn es dann jedoch Abarbeiten der Funde geht, wird es schnell aufwendig.
Diese Lücke versucht „dedupe” zu schließen, indem es den Lösch- oder wahlweise auch Linkvorgang automatisiert.
Dedupe ist in Perl geschrieben. Die wichtigsten Parameter sind:
Mit dedupe --help kann man sich die eingebaute Hilfe angucken, die alle Parameter dokumentiert. Dedupe wurde unter der ”Creative Commons Attribution-Share Alike 3.0 Germany„-Lizenz veröffentlicht.
Hin und wieder ist die Auslastung eines Rechners interessant. Zumindest unter Linux bieten dabei die beiden kleinen Shellscripte „idle” und „isidle” eine kleine Übersicht. Sie ermitteln, wie ausgelastet das System insgesamt bzw. gerade ist.
Aufgaben der Tools
Isidle benutzt uptime(1), um die sogenannte „load average” des Systems zu ermitteln. Diese korreliert grob mit der Gesamtauslastung. Liegt sie bei maximal 0.5, wird das System als unausgelastet angesehen. Bei interaktivem Aufruf zeigt das Script einen entsprechenden Text an, ansonsten ist es ruhig. In beiden Fällen kann man aber den Exitstatus auswerten. Beispiel:
if idle; then unwichtiger_aufwendiger_rechenjob else # Job nicht ausfuehren, um beispielsweise den Nutzer beim # Videoschauen nicht zu stoeren echo unwichtiger_aufwendiger_rechenjob wurde ausgelassen fi
Tip: In Kombination mit anacron(FIXME) kann man Cronjobs mit „isidle” verschieben, wenn der Rechner zum Zeitpunkt der geplanten Ausführung gerade ausgelastet ist.
Mit dedupe --help kann man sich die eingebaute Hilfe angucken, die alle Parameter dokumentiert. Dedupe wurde unter der ”Creative Commons Attribution-Share Alike 3.0 Germany„-Lizenz veröffentlicht.
Screen ist ein Programm, mit dem man mehrere Terminals in einem Terminal benutzen kann. Man kann auch einfach „Terminalmultiplexer” sagen. Ich benutze es quasi ständig und habe darin unter anderem mein Mailprogramm laufen. Drei besonders praktische Funktionen sind:
Einige Leute, die mich bei der Benutzung von „screen” beobachtet haben, fanden meine Konfiguration interessant. Daher hatte ich sie in die Müllhalde gelegt. Damit die Konfigurationsdateien nicht immer gelöscht werden, habe ich sie samt Anmerkungen hier plaziert.
Hinweis: Damit die Dateien eine Wirkung haben, müssen sie im Hauptverzeichnis des jeweiligen Benutzers abgelegt werden.
Ich starte „screen” meist mit dem Kommando main, das ein Shell-Alias auf screen -xRS main -c ~/.screenrc-main ist. Damit wird eine Sitzung namens „main” entweder angekoppelt (wenn vorhanden) oder neu erzeugt. Dabei wird die Konfigurationsdatei „.screenrc-main” benutzt. Diese benutzt übrigens meine ".screenrc".
Diese Datei wird von allen Instanzen benutzt.
Um die Option shelltitle
sinnvoll benutzen zu können,
muß man seinen Prompt und eventuell auch die Funktion
gemäß Handbuch anpassen.
defscrollback 200
gibt an, wieviele Zeilen man (im
Copy-Modus) zurückblättern kann, wenn man keine anderen
Einstellungen vorgenommen hat.
bindkey ^A eval "echo --> " mapdefault
command
sorgt dafür, daß beim Druck der
Kommando-Tastenkombination Ctrl-A ein kleiner Pfeil
(„-->”) im aktuellen Screen angezeigt wird.
Ändert man die Kommando-Kombination, sollte man auch das
bindkey
anpassen. Außerdem ist es nur sinnvoll mit
einer hardstatus-Zeile.
backtick 5 300 0 screen-gettemp.sh
sorgt dafür,
daß screen alle 300 Sekunden (5 Minuten) das Programm
„screen-gettemp.sh” ausführt und sich die letzte Zeile
speichert. Diese kann später in Ausgaben als %5`
eingebunden werden.
Bei mir besorgt sich das Script die aktuelle Temperatur. Wenn kein solches Script hat oder diese Funktion nicht nutzen will, sollte man die Zeile auskommentieren.
hardstatus alwayslastline "%{= .}%5`%{=r .} %-Lw%{= .}%L>
%n%h %t %{-}%+Lw%-7=%{= .}%c%{=r .}"
sorgt für eine
Statuszeile, die immer angezeigt wird. Vorn wird die Temperatur
eingeblendet, danach folgt eine gegebenenfalls gekürzte Darstellung
der offenen Terminalfenster. Ganz am Ende wird noch eine Uhr angezeigt.
Zur besseren Übersicht wird die aktuell eingestellte Farbe zudem hin
und wieder invertiert.
Benutzt man die „backtick”-Einstellung nicht, sollte man stattdessen die auskommentierte Variante darunter benutzen.
Diese Datei wird nur von der Instanz mit dem Namen „main” benutzt. In ihr habe ich zusätzliche Einstellungen vorgenommen, die nur für diese eine Instanz gelten sollen.
Wegen des source .screenrc
liest auch die Sitzung
„main” die Einstellungen für normale Sitzungen ein.
idle 1800 lockscreen
sorgt dafür, daß sich die
Sitzung nach 1800 Sekunden (einer halben Stunde) sperrt. Die Sperrung kann
man nur durch Eingabe des Paßworts wieder aufheben.
screen -t mail 1 mutt
öffnet beim Start ein
neues Fenster mit dem Namen „mail”, in
dem das Programm mutt geladen wird. Das Fenster bekommt die Nummer 1. Mit
dieser kann es gezielt angesprungen werden.
Die anderen Zeilen dieser Art tun prinzipiell das gleiche, nur mit anderen Nummern und Programmen. Wird kein Programm übergeben, wird eine neue Shell darin gestartet.
Speicherpig wurde geschrieben, um herauszufinden, welche Prozesse gerade besonders viel Speicher verbrauchen. Das allein bekommt man auch leicht per ps(1) heraus, jedoch wollte ich das gern noch anhand des Prozeßnamens aufsummieren. Genau das leistet Speicherpig. Zudem kann es die Prozeßliste auch gleich noch sortieren und optional die Anzahl der zusammengefaßten Prozesse anzeigen.
Speicherpig entstand aus einem nicht richtig funktionierendem awk-Script mit dem Entwicklungsnamen „speicherschwein”. Speicherpig selbst ist in Perl geschrieben. Die Struktur des Programmes hat sich während des Umbaus nicht wesentlich gewandelt. Interessante Aufrufvarianten sind:
Mit speicherpig --help kann man sich die eingebaute Hilfe angucken. Speicherpig wurde unter der ”Creative Commons Attribution-Share Alike 3.0 Germany„-Lizenz veröffentlicht.
Christoph Weber, Mail an Webmaster