SCREEN

13.
Oktober
2021
Veröffentlicht von: Ferhat Atabey

Jeder DBA kennt das, Sie sind über SSH mit Ihrem Server verbunden und sind gerade dabei, eine Aufgabe zu erledigen, die viel Zeit in Anspruch nimmt, und plötzlich bricht Ihre Verbindung aus irgendeinem Grund ab, und Sie verlieren Ihre unvollendete Arbeit. Das kann sehr ärgerlich sein, aber glücklicherweise gibt es ein kleines Dienstprogramm namens „screen“, mit dem Sie sich zu einer vorherigen Sitzung erneut verbinden können.

In diesem Beitrag werde wir zeigen, wie man das „screen“ Dienstprogramm verwendet, um ein „virtuelles Terminal“ zu erstellen. Damit können Sie sogar verschiedene Maschinen und Sitzungen an- und abkoppeln. Es ist viel mächtiger als nohup.

Die Standardoperation besteht darin, ein neues Fenster mit einer darin enthaltenen Shell zu erstellen, einen Befehl auszuführen und das Fenster dann in den Hintergrund zu verschieben (als „detaching“ bezeichnet). Wenn Sie sehen möchten, wie sich Ihr Prozess entwickelt, können Sie das Fenster wieder in den Vordergrund ziehen („reattach“) und erneut verwenden. Das ist ideal für lange Prozesse, die Sie nicht durch versehentliches Schließen des Terminalfensters beenden möchten.

So installieren Sie -screen- auf einem RHEL Betriebssystem:

[root@tl19rune09 ~]# yum install screen -y
Geladene Plugins: ulninfo
Abhängigkeiten werden aufgelöst
--> Transaktionsprüfung wird ausgeführt
---> Paket screen.x86_64 0:4.1.0-0.27.20120314git3c2946.el7_9 markiert, um installiert zu werden
--> Abhängigkeitsauflösung beendet

Abhängigkeiten aufgelöst

==============================================================================================
Package                    Arch       Version                Paketquelle    Größe                                      
==============================================================================================
Installieren:
screen                     x86_64    4.1.0-0.27.20120314git3c2946.el7_9    ol7_latest    552 k

Transaktionsübersicht
==============================================================================================
Installieren  1 Paket


Gesamte Downloadgröße: 552 k
Installationsgröße: 914 k
Downloading packages:
screen-4.1.0-0.27.20120314git3c2946.el7_9.x86_64.rpm
| 552 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installieren     : screen-4.1.0-0.27.20120314git3c2946.el7_9.x86_64
1/1
  Überprüfung läuft: screen-4.1.0-0.27.20120314git3c2946.el7_9.x86_64
1/1


Installiert:
  screen.x86_64 0:4.1.0-0.27.20120314git3c2946.el7_9


Komplett!
[root@tl19rune09 ~]#


Welche Version ist installiert?

[root@tl19rune09 ~]# screen -v
Screen version 4.01.00devel (GNU) 2-May-06


Um „screen“ zu starten geben Sie ein:

[root@tl19rune09 ~]# screen

 

null

Dadurch wird eine Bildschirmsitzung oder ein Fenster (obwohl Sie es nicht als solches sehen) in Ihrem aktuellen SSH-Terminal erstellt.

Nachfolgend beschreibe wir die wichtigsten Bildschirmbefehle, die Sie zur Steuerung des Bildschirms benötigen. Diese Befehle beginnen mit STRG a, um sie von normalen Shell-Befehlen zu unterscheiden.

<STRG a + c> - Erstellt eine neue Bildschirmsitzung, sodass Sie mehr als eine Bildschirmsitzung gleichzeitig verwenden können.
<STRG a + n> - Wechselt zur nächsten Bildschirmsitzung (wenn Sie mehr als eine verwenden).
<STRG a + p> - Wechselt zur vorherigen Bildschirmsitzung (wenn Sie mehr als eine verwenden).
<STRG a + d> - Trennt eine Bildschirmsitzung (ohne die Prozesse darin zu beenden - sie werden fortgesetzt).


Um eine Bildschirmsitzung zu schließen, in der alle Aufgaben abgeschlossen sind, geben Sie ein:

[root@tl19rune09 ~]# exit


Einige Beispiele für die tägliche Anwendung von „screen“:

In einem „screen“ Fenster führen wir z. B den Befehl „top“ aus:

null


Jetzt trennen wir die „screen“-Sitzung mit <STRG a + d> zu der wir später wieder zurückkehren:

[detached from 9472.pts-0.tl19rune09]
[root@tl19rune09 ~]#


Wir öffnen eine neue Putty-Verbindung, connecten uns mit dem root user und lassen uns die „screen“-Verbindungen anzeigen:

[root@tl19rune09 ~]# screen -ls
There is a screen on:
        9472.pts-0.tl19rune09   (Detached)
1 Socket in /var/run/screen/S-root.

Man sieht, dass sich die 9472..-Verbindung im abgekoppelten Zustand befindet.


Zum Verbinden mit dieser, in der zusätzlich noch der „top“ Befehl ausgeführt wurde, geben Sie ein

[root@tl19rune09 ~]# screen -r 9472


null


Zum Beenden dieser Verbindung geben Sie ein:

[root@tl19rune09 ~]# exit
[screen is terminating]
[root@tl19rune09 ~]# screen -ls
No Sockets found in /var/run/screen/S-root.
[root@tl19rune09 ~]#

...eine Bestätigung, dass wir keine Bildschirmsitzungen mehr haben.

Mit „screen -S“ erstellen Sie eine  Sitzung mit einer benutzerdefinierten Benamung:

[root@tl19rune09 ~]# screen -S MQS-sqlplus

[root@tl19rune09 ~]# su - oracle
Letzte Anmeldung: Montag, den 04. Oktober 2021, 16:15:09 CEST auf pts/0
[oracle@tl19rune09 ~]$ tfail
oracle@tl19rune09 [tfail]:~> s

SQL*Plus: Release 18.0.0.0.0 - Production on Sun Oct 10 16:18:00 2021
Version 18.8.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Connected to:
Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 - Production
Version 18.8.0.0.0

SQL> select systimestamp from dual;

SYSTIMESTAMP
---------------------------------------------------------------------------
10-OCT-21 04.18.46.306644 PM +02:00

SQL>


Von der Session abkoppeln mit <STRG a+d>

Eine neue putty-Session öffnen und die offenen screen Verbindungen anzeigen mit folgendem Befehl:

[root@tl19rune09 ~]# screen -ls
There is a screen on:
        14239.MQS-sqlplus       (Detached)
1 Socket in /var/run/screen/S-root.


Verbindung herstellen zu 14239.MQS-sqlplus:

[root@tl19rune09 ~]# screen -r 14239
[root@tl19rune09 ~]# su - oracle
Letzte Anmeldung: Montag, den 04. Oktober 2021, 16:15:09 CEST auf pts/0
[oracle@tl19rune09 ~]$ tfail
oracle@tl19rune09 [tfail]:~> s

SQL*Plus: Release 18.0.0.0.0 - Production on Sun Oct 10 16:18:00 2021
Version 18.8.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.


Connected to:
Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 - Production
Version 18.8.0.0.0

SQL> select systimestamp from dual;

SYSTIMESTAMP
---------------------------------------------------------------------------
10-OCT-21 04.18.46.306644 PM +02:00

SQL> exit
Disconnected from Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 - Production
Version 18.8.0.0.0
oracle@tl19rune09 [tfail]:~>

 

Fazit

Wie wir sehen, kann der „screen“ ein sehr hilfreiches Werkzeug sein. Wir können es bei Upgrades, Migrationen und andere Aktivitäten verwenden.

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.