[PLR] Spezialanwendungen

conky in Aktion

Außer den üblichen Stücken Software habe ich noch etwas speziellere Dinge installiert. Zum einen conky, um stets gewisse Systemparameter im Auge halten zu können, und unison sowie synergy, um der besonderen Mehrrechnersituation am Schreibtisch gerecht zu werden.

conky

conky ist ein Programm, das dem Anwender Output von zahlreichen Sensoren und Prozessen visuell aufbereitet anbietet. Es ist hochgradig an die jeweiligen Bedürfnisse anpassbar und wird über eine Textdatei eingestellt. conky sucht zuerst nach ~/.conkyrc. Positionierung, Auswahl der anzuzeigenden Daten und Darstellung mit Fonts und Farben lassen sich mit einer mehr oder weniger eingängigen Syntax konfigurieren. Eine komplette Übersicht über die möglichen Parameter und Variablen gibt es hier, eine Reihe von Beispielen inklusive der zugehörigen Konfigurationsdateien hier. Mein eigenes Setup basiert auf einem der dort angegebenen Beispiele. Erwähnenswert finde ich, dass man Teile optional einbinden kann: nur, wenn eine Partition eingebunden ist, zeige ihren freien Platz an, und nur, wenn mpd auch läuft, frage den aktuellen laufenden Titel ab. Dies ist einerseits nützlich, andererseits auch angebracht, da sonst unter Umständen Fehler erzeugt werden. conky ist unter diesen Namen in den Repositories von Ubuntu verfügbar und läuft bei Bedarf als Daemon.

synergy

Für leistungshungrige Anwendungen und Spiele unter Windows habe ich weiterhin meinen alten Desktoprechner unterm Schreibtisch stehen. Da er nur selten läuft und Schreibtischplatz obligatorisch knapp ist, wollte ich möglichst wenig Peripherie doppeln. Über einen Freund hatte ich schon vor Jahren von synergy gehört, das in Software Eingabegeräte in einer Sterntopologie multiplext. Man erklärt einen Rechner zum Server; an diesen ist die Hardware angeschlossen, in meinem Fall Tastatur, Maus und Fernbedienung. Sound- und Videogeräte kann synergy noch nicht verteilen. Der Server muss das komplette Setup kennen. So legt man fest, welcher Client auf welcher Seite des Servers liegt. Clients identifizieren sich über einen Namen, der folgerichtig eindeutig für einen Stern sein muss. Ist ein Client verbunden, schiebt man die Maus über die entsprechende Bildschirmkante und landet auf dem Schirm des Clients. Zurück gelangt man natürlich genauso. Übrigens wird die Zwischenablage der verbundenen Rechner gekoppelt. Es ist also möglich, auf Rechner A etwas zu kopieren und auf Rechner B einzufügen. Ich fand das schon öfter sehr praktisch. In meinem Fall benutzen natürlich beide Rechner den gleichen Monitor, den ich also stets umschalten muss, wenn ich zwischen den Rechnern wechsle. Erwähnenswert ist noch, dass synergy für Linux, Mac OS und Windows zur Verfügung steht und gemischte Setups explizit unterstützt. Die in den Repositories von Ubuntu verfügbare Version wird anscheinend nicht länger vom Originalautor weiterentwickelt; ich habe mit ihr bisher keinerlei Probleme gehabt. Für Leute, bei denen sich Bugs manifestieren oder die neugieriger als ich sind, gibt es einen Ableger, der aktiv verbessert wird.

Auf dem Server habe ich folgende Konfigurationsdatei erstellt:

# ~/.synergyconf
section: screens
  Bob:
  Charly:
end

section: links
  Bob:
        up      =       Charly
  Charly:
        down    =       Bob
end

section: options
  switchDelay = 500
end

Charly ist also oberhalb von Bob zu finden. Die einsame Option in Zeile 14 sorgt dafür, dass mir etwas Zeit am Bildschirmrand bleibt, bevor der Rechner gewechselt wird. Es gibt eine ganze Fülle an weiteren Optionen, die ich allesamt nicht vermisse. Nun meldet sich der Serverrechner selbst auch als Client an, sodass auf ich folgende zwei Befehle nach dem Login ausführe:

synergys --daemon -c ~/.synergyconf
synergyc --daemon -n Charly localhost

Zu beachten ist, dass der Server einen Moment zum Starten braucht, der Client also nicht sofort gestartet werden sollte, da sein Anmeldeversuch sonst ins Leere läuft. Ich habe das Problem umgangen, in dem ich zwischen den beiden Aufrufen weitere Programme starte.

Da der Desktoprechner Ubuntu und Windows booten kann, habe ich unter beiden Systemen synergy installieren müssen. Unter Windows war das sehr unkompliziert; in der übersichtlichen Konfigurationsoberfläche kann man direkt einstellen, dass das Programm als Dienst laufen und beim Boot gestartet werden soll, also insbesondere in der Loginmaske. Unter Ubuntu war das wesentlich komplizierter, zumindest wenn man wie ich unsauber arbeitet und kein Skript in init.d anlegt. Erschwerend kommt hinzu, dass der Loginschirm von root ausgeführt wird, die Session selbst natürlich vom User. Ich habe eine Lösung gefunden, die ich nicht als schön empfinde, aber die funktioniert. Hierfür folgende Zeilen in die genannten Dateien einfügen:

# /etc/gdm/Init/Default
killall synergyc
sleep 1
synergyc --daemon -n Bob 192.0.0.1
# /etc/gdm/PostLogin/Default
killall synergyc

Nun muss natürlich nach dem Login der Client neu gestartet werden, etwa über den entsprechenden Konfigurationsdialog von Ubuntu. Zu beachten ist noch, dass die Instanz von synergyc, die im Loginschirm läuft, root gehört. Ich hatte hier Probleme mit dem Tastaturlayout, da root bei mir amerikanisches Layout hatte, sonst alle Rechner und Nutzer natürlich deutsches. Auch kann man im Loginschirm von gdm das Layout setzen. Nachdem ich überall deutsches Tastaturlayout eingestellt hatte, lief alles rund.

unison

unison dient zur Synchonisation von Daten zwischen zwei Verzeichnissen auf einem oder verschiedenen Rechnern. Es arbeitet dabei symmetrisch, Änderungen beider Seiten werden also gleichberechtigt übertragen, wobei Konflikte bearbeitet werden. Ein ausführliches Handbuch gibt es beim Schöpfer, das man durchaus einmal querlesen sollte. Dadurch, dass kein Rechner als ausgezeichneter Server dient, kann man unison sehr flexibel einsetzen; ich habe mich trotzdem für eine Sterntopologie entschieden, um weniger Potential für Konflikte und veraltete Kopien zu haben. Das Tool legt eine Datenbank der zu synchronisierenden Daten an, um die einzelnen Abgleiche schnell ausführen zu können. Das erstmalige Erstellen dieser Datenbank kann für große Datenmengen schon mal einige Stunden dauern, dafür liegen die Abgleichzeiten später deutlich unter einer Minute, Übertragungszeiten nicht mitgerechnet. Ich übertrage mit SSH, was vergleichsweise langsam, dafür aber sicher ist. Im lokalen Netzwerk kann man direkt Sockets ansprechen, was die Übertragungsgeschwindkeit deutlich erhöhen sollte. Dafür kann dann stets nur ein Clientprozess bedient werden. Eine Konfigurationsdatei sieht etwa so aus:

# ~/.unison/daten
mountpoint = .
batch = true

root = /media/data/Daten
root = ssh://raphael@192.0.0.1//media/data/Daten

Besonders wichtig ist die Option mountpoint; durch sie wird geprüft, ob die angegebenen Verzeichnisse überhaupt existieren. Dies verhindert, dass eine nicht eingebundene Partition als Löschung interpretiert und die verfügbare Kopie komplett gelöscht wird.  Die Option batch unterbindet Zwischenfragen bei Änderungen und synchronisiert, ohne nachzufragen. Auch hier gibt es viel mehr Optionen, die komplizierte Szenarien abbildbar machen. Ausgeführt wird eine Synchronisierung dann durch Eingabe von

unison daten

Update: Habe das Layout von conky etwas gefälliger und ordentlicher gestaltet.

6 Comments.

  1. Wie ich gerade feststellen musste, ist die von mir gefundene Lösung für Synergy im Loginschirm sogar näherungsweise die vorgesehene: http://synergy2.sourceforge.net/autostart.html
    Da hätte ich mir durch etwas mehr Google viel Zeit sparen können.

    Übrigens funktioniert synergy natürlich im grub noch nicht; um Windows zu booten, muss ich also eine Tastatur an den Desktop anstecken. Kennt jemand eine Lösung für dieses Dilemma?

  2. Hm, ich nutze zwar auch Synergy, aber nur nach gebootetem Rechner (Tastatur und Maus hab ich einmal im Laptop und dann nochmal extra, ich spar mir nur andauerndes Wechseln mit Synergy, schreibtischplatz hab ich hier trotz crt genug :D ).
    Wenn nur eine deiner Kisten Windows hat, mach doch einfach den zum Server und den anderen zum Client. Falls du natürlich auf beiden Rechnern Grub ansteuern willst… stell dir ein Keyboard neben den Tisch? Solange du ihm kein TCP/IP beibringst (was, durch den Mangel an Ethernetkartentreibern für Grub, eher not feasible ist) wirst du da wohl nicht weit kommen :P

    Wie gut klappt bei dir synergy eigentlich mit Spielen? ioQuake3 scheint bei mir nämlich nicht so begeistert davon zu sein (aber ich hab Quake immer auf allen gleichzeitig laufen, weil einer meiner Mitbewohner an meinem Laptop spielt – vielleicht hängt es auch daran)…

    Was mich an Synergy eher stört ist die fehlende Authentifizierung – wenn ich überleg, wie oft ich mit Laptop und noch aktivem Synergy im Uni WLAN hänge…

    unison und ssh: Ich hab früher mit einem 500MHz Rechner gemerkt, dass die CPU langsamer verschlüsselt als die Platte die Daten liefert, aber mit modernen Rechnern sollte ssh eigentlich mit voller Netzwerkgeschwindigkeit übertragen können (hatte hier mit Gigabit letztens per scp etwa 45MByte/s = 36% Leitungsauslastung, also fast Limit meiner Notebook HDD).

  3. Da ich so gut wie nie Windows boote und wenn, dann nur auf dem Rechner, der ja gerade so gut wie immer aus ist (das war ja der Plan!), ist es keine Alternative, auf dem den Server laufen zu lassen. Die Maßnahme, für Windows einmal im Quartal die zweite Tastatur aus dem Regal zu holen, ist vollkommen ok.

    Ich habe nicht viel mit synergy gespielt, aber zumindest bei Anno 1701 gab es keine Probleme.

    Authentifizierung ist natürlich ein Problem, wenn man in nicht vertrauenswürdigen Netzwerken operiert. Eine gewisse Zugangsvoraussetzung hat der Client aber: Er muss einen richtigen Namen kennen. Und selbst wenn er erfolgreich connecten würde, wäre das eher für ihn ein Problem als für dich mit dem Server.

    Nein, die Verschlüsslung ist auf nem Atom N270 _nicht_ schnell genug, um mit ssh die ganze Bandbreite auszuschöpfen. Ich komme so auf 13MByte/s. Möglicherweise benutzt der Ethernetchip im kleinen Rechner auch noch die CPU mit.

  4. Senke des Chaos' » [PLR] Projekt: Lautloser Recher - pingback on March 4th, 2010 at 17:58
  5. Senke des Chaos' » Online Arbeiten - pingback on August 9th, 2010 at 12:06
  6. Online Arbeiten | [lm]azy - pingback on October 20th, 2010 at 14:24

Trackbacks and Pingbacks: