Befehl "screen"-kleiner Helfer in der Not
Sie als Admin haben sicher schon einmal die Situation erlebt, daß Sie eine lang laufende Aufgabe auf einem entfernten Rechner ausführen müssen und plötzlich Ihre Verbindung abbricht, die SSH-Sitzung beendet wird und Ihre Arbeit verloren geht? Speziell bei Updates ist das ärgerlich! Nun, das ist uns allen schon einmal passiert, nicht wahr? Glücklicherweise gibt es ein Dienstprogramm namens "screen", mit dem wir die Sitzungen wieder aufnehmen können (wenn wir sie damit gestartet haben!).
Screen ist ein Terminal-Multiplexer. Mit anderen Worten, es bedeutet, daß Sie eine Screen-Sitzung starten und dann eine beliebige Anzahl von Fenstern (virtuelle Terminals) innerhalb dieser Sitzung öffnen können. Prozesse, die in Screen laufen, laufen auch dann weiter, wenn ihr Fenster nicht sichtbar ist, selbst wenn die Verbindung unterbrochen wird.
In vielen Linux-Distributionen ist "screen" bereits vorinstalliert, z.B. bei SUSE bzw. openSUSE. Sie können prüfen, ob es auf Ihrem System installiert ist, indem Sie eingeben:
screen -v
Sollte "screen" widererwarten nicht installiert sein, können Sie das Programm einfach mit dem Paketmanager Ihrer Distribution nachträglich installieren.
Um jetzt mit "screen" zu arbeiten, verbinden Sie sich mit dem SSH-Client Ihrer Wahl auf Ihre entfernte Linux-Maschine und geben dort am Konsolenprompt einfach screen ein.
screen
Dadurch wird eine Screen-Session geöffnet. Die Kommandos - welche Sie jetzt eingeben - werden ausgeführt, auch wenn Sie Ihre SSH-Verbindung trennen. So, als ob Sie diese (z.B. per VNC oder direkt am Server vor Ort) direkt auf der Konsole eingegeben hätten.
Die wichtigsten Befehle bzw. Switches (welche wir auch tagtäglich verwenden) sind:
screen -S [Session_Name] | starten einer neuen Screen-Session mit einem Sessionnamen | |
screen -t [title] | bezeichnet den Namen des neuen Screen-Fensters | |
screen -x | erneute Verbindung zu einem Screen bei Abbruch der SSH-Session | |
screen -d | Verbindung zu einem Screen trennen (läuft aber weiterhin) | |
screen -r | Verbindung zu einer laufenden Screen-Session wieder herstellen | |
screen -ls | listet alle aktiven Screen-Sessions auf dem Host auf | |
exit | beendet den Screen-Host auf dem Server komplett |
Das waren die wichtigsten Befehle zu "screen". Wir verwenden dieses Tool selbst und glaubt uns, es hat uns schon oft den A**** gerettet, im speziellen bei Updates von entfernten Servern (wie z.B. unseren eigenen Webserver in Erfurt).
Jetzt können Sie mit dem Dienstprogramm Screen beginnen und aus einer einzigen Sitzung mehrere Screen-Fenster erstellen, Screen-Sitzungen lösen und wieder aufnehmen.
Es gibt noch viel mehr über GNU Screen auf der Screen-Benutzerhandbuch-Seite zu erfahren.