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
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
In einem „screen“ Fenster führen wir z. B den Befehl „top“ aus:
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
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]:~>
Wie wir sehen, kann der „screen“ ein sehr hilfreiches Werkzeug sein. Wir können es bei Upgrades, Migrationen und andere Aktivitäten verwenden.
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.