Eines der Hauptprobleme bei der Arbeit in der Kommandozeile besteht darin, dass üblicherweise alle offenen Programme geschlossen, werden wenn die Verbindung plötzlich abbricht. Dieses Problem löst das Linux-Tool Screen.
Abgesehen von Screen gibt es zahlreiche andere Linux-Tools die die Arbeit des Server-Admins erheblich vereinfachen. Wer beispielsweise oft den Status seines Servers auf der Konsole abfragt und dabei immer nur auf top oder ps setzt, würde sich bestimmt über htop freuen. Darüber hinaus gibt es noch iftop, zum monitoren seiner eingehenden und ausgehenden Verbindungen. Ein weiteres top-Derivat ist mytop, welches einem wiederum die Verbindungen und Querrys seiner MySQL-Datenbank zeigt. Doch kommen wir zunächst zu Screen.
Screen – Was ist das?
Hat es was mit einem Monitor zu tun!? Nein!
Screen ist ein eine Art Fenstermanager für die Konsole. Dadurch wird das Steuern mehrer Konsolen mit einem einzigen Login-Vorgang ermöglicht.
Ein Beispiel: Man ist per SSH auf einem Server eingeloggt, und man braucht nun noch eine weitere Verbindung, weil man z.B. auf der ersten einen Prozess gestartet wo man den Fortschritt beobachten möchte. Normalerweise müsste man nun noch eine weitere Konsole aufmachen und sich erneut zum Server verbinden. Das muss aber nicht sein. Mit screen macht man sozusagen ein 2. Fenster auf. Der Clou: die Vituellen Fenster von screen werden nicht nicht geschlossen, wenn man die Konsole schließt. Dies führt uns zum zweiten Beispiel:
Man ist auf Arbeit und hat einen Prozess gestartet den man beobachten will z.B. die Asterisk Konsole (Asterisk Telefonserver). Jetzt möchte man aber nach hause gehen oder das Büro wechseln. Also loggt man sich aus der Konole aus oder schließt diese, geht dahin wo man hingehen will und meldet sich dort wieder an die immernoch aktive screen-”Session” an. Dies ist auch dann nütlich wenn man längere SSH-Transfers oder Kopiervorgänge startet und unbedingt sicherstellen will, dass diese auch zuende laufen.
Die Syntax von screen
Soviel für den Anfang, gucken wir uns die screen-Syntax an:
screen wird mit dem einfachen aufruf von “screen” gestartet. Je nach Version, bekommt man einen Hinweis oder auch nicht, das man jetzt innerhalb einer Screen-Session ist. Bekommt man einen Hinweiss muss man meist noch [ENTER] drücken. Jetzt haben wir screen also gestartet, hat sich nicht viel verändert oder? Auf den ersten Blick nicht.
Führen wir jetzt einmal kurz “ls -la” aus, um die jetzt kommenden Veränderungen besser unterscheiden zu können. Nun dürcken wir [STRG]+[a]+[c]. Auf seltsame weise scheint die Konsole gelöscht zu sein. Das sieht nur so aus in Wirklichkeit haben wir ein weiteres Fenster geöffnet. Drücken wir jetzt [STRG]+[a]+[n] kommen wir zum ersten “Fenster” zurück. Hierbei steht [n] für Next und wenn es Next gibt, gibt es auch Privious also [p]. Mit [STRG]+[a]+[n/p] kan man sich durch die einzelenen Konsolen schalten. (Mit [STRG]+[a]+[0-9] kann man die einzelenen Fenster auch direkt anspringen) Starten wir jetzt auf der 2. konsole einmal top. Danach drücken wir [STRG]+[a]+[d]. Dies steht für detach, was soviel heist wie abmelden. Abmelden bedeutet in diesem Zusammenhang ich will zurück zu Ursprungskonsole, stell das aktuelle Fenster bitte in den Hinterund”. Die Konsole sieht nun wieder so aus, wie vor dem Start von screen. Das gestartet top läuft jetzt aber noch in der Screen-Session, welche wir nur verlassen, aber nicht beendet haben. Zum Fenster zurückkehren können wir, indem wir “screen -r Screen.PID” eingeben. Da wir nur eine Session offen haben, können wir auch einfach “screen -r” oder “screen -x” nehmen. Die einzelenen screen-Sessions kann man sich mit “screen -ls” auflisten. Und sich so dann auch geziehlt zu einer bestimmten session verbinden. Dieses Listing zeigt auch die PID´s an die wir benötigen um ein konkretes Fenster anzuspringen.
Wenn wir uns nun also wieder zurück verbunden haben, sehen wir unser vorhin gestartetes top wieder. Wechseln wir mit [STRG]+[a]+[n] mal wieder zurück in das erste “Fenster” der Session. Ein “Fenster” schliessen kann man einfach mit [STRG]+[d] oder der Eingabe von “exit”. Man muss sich aber nicht explizit abzumelden. Das schließen des Terminalfensters führt nicht zur beendigung von screen. screen wird einfach weiterlaufen, und wenn man sich mit “screen -r” wieder zurück verbindet, sieht man alles, genauso wie vor dem schliessen des Programms. Mit [STRG]+[a]+[SHIFT]+[s] kann man sein screen-Terminal aufteilen. In der normalen Version nur horizontal. So sieht man mehrere “Tabs” aufeinmal. Zwischen diesen “Tabs” oder auch Regionen genannt, bewegt man sich dann mit [STRG]+[a]+[TAB]. Will man nun alle “Tabs” schliessen, bis auf den aktuellen, erledigt man dies mit [STRG]+[a]+[SHIFT]+[q]. dies zerstört dann alle anderen “Tabs”. Hängt mal ein einzalner “Tab” kann man diesen mit [STRG]+[a]+[SHIFT]+[x] zerstören. Wenn man allerdings das [SHIFT] vergisst, kommt zu einer anderen Funktion. Mit [STRG]+[a]+[x] sperrt man die Eingabe. Es wird dann ausgegeben mit welchen Benutzer screen gestartet wurde und auch nur mit dessen Passwort kann man screen wieder entsprerren.
In diesem Zusammenhang ist noch eine Funktion hervorzuheben. screen ist der remote Desktop von Linux. Wenn zwei Leute mit einer screen Session verbunden sind, sehen sie die Eingaben des jeweils anderen.
Soviel nun erstmal zu screen, im nächsten Artikel geht es dann um “top”
[...] Hier also der Link dazu: klick mich [...]