Wenn man genug Kisten administriert. hat man irgendwann keine Lust mehr, ständig neue SSH-Sessions auf den Rechnern aufzumachen, die man grade benutzt.
Abhilfe schafft das für mich mittlerweile unverzichtbare Tool
screen. Ein Screen ersetzt eine normale Loginshell, indem es selbst eine Shell öffnet und alle Ein- und Ausgaben an mich durchreicht, wenn ich mich zum Screen verbinde (attached).
Wenn man dann seine Arbeit unterbrechen möchte, ohne alle offnenen Shells schließen zu müssen, kann man sich einfach vom Screen abmelden (detach) und das Tool sammelt im Hintergrund weiterhin die Ausgaben möglicher laufender Programme.
Hat man wieder Netz, loggt man sich normal per SSH ein und verbindet sich wieder zum Screen.
Das ganze geht auch mit mehreren Shells gleichzeitig über eine SSH-Verbindung. Anzeigen kann man aber immer nur eine.
In der Standardeinstellung sieht man leider nicht, auf welcher Shell man gerade arbeitet.
Mehdorn hat da aber in seiner
.screenrc eine ganz nützliche Zeile:
hardstatus alwayslastline "%{=r .} %-Lw%{= .}%L> %n%h %t %{-}%+Lw%-7=%{= .}%c%{=r .}"
Damit kriegt man eine Leiste am unteren Bildschirmrand, welche die geöffneten Screens anzeigt. So geht die Übersicht nicht (gleich) verloren.
Zu schätzen lernt man eine Screenshell erst dann so richtig, wenn man grade am Produktivsystem schraubt und die blöde WLAN-Verbindung plötzlich schluckauf bekommt. Ohne Screen würde die Shell zugehen und damit die darin laufende Prozesse. Es lassen sich da noch viele weitere Situationen konstruieren, wo ein Screen einem das Leben rettet. Also sehr zu empfehlen!
Ich nutze gerne die Multiuserfunktion von Screen um Linuxanfängern einfache Handgriffe zu zeigen, ohne alles per IM erklären zu müssen. Dazu ruft man screen mit
screen -x
auf und verbindet sich zu einer bereits geöffneten Screensession. Quasi Remotedesktop ohne Desktop und Maus.
Am Anfang ist die Bedienung etwas gewöhnungsbedürftig, aber Übung macht den Meister. Also ran an den Screen!