Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

rsh - Shell-Kommando am fernen Rechner ausführen

&pagelevel(4)&pagelevel

(remote shell)


Mit rsh können Sie ein Kommando an einem fernen Unix-System ausführen.

Das Kommando rsh wenden Sie z.B. an, wenn

  • Sie sich über den Inhalt eines Dateiverzeichnisses am fernen Unix-System informieren wollen

  • Sie eine Datei am fernen Unix-System ausdrucken wollen

Das Kommando kann nur angewendet werden, wenn der Benutzer auf dem fernen Unix-System zugriffsberechtigt ist. Dazu muss der Name des lokalen Rechners oder ein Pluszeichen + sowie die Benutzerkennung in der Datei .rhosts eingetragen sind, die sich im HOME-Dateiverzeichnis der Kennung am fernen Unix-System befindet. Die Benutzerkennung muss eine Standardabrechnungsnummer für den rlogin-Zugang haben. Diese kann mit den Kommandos ADD-USER, MODIFY-USER-ATTRIBUTES oder ADD-POSIX-USER zugewiesen werden.

Das Kommando rsh kann symmetrisch von BS2000-POSIX und fernen Unix-Systemen verwendet werden.

Die in Unix-Systemen gebräuchlichen Dateien /etc/hosts und /etc/hosts.equiv werden in POSIX nicht verwendet. Die Zuordnung der Rechnernamen zu IP-Adressen erfolgt über BCAM bzw. DNS.

Das Kommando kann nur dann ausgeführt werden, wenn am am fernen Rechner der Dämon rshd aktiv ist. Der Dämon rshd wird von inetd gestartet.

Der Kommandointerpreter, der zur Ausführung des Kommandos auf dem fernen Rechner aufgerufen wird, wird durch den Eintrag des Benutzers in der Datei /etc/passwd bestimmt.

Wird rsh von einer Datei ausgeführt, die nicht rsh heißt, dann verwendet rsh diesen Namen als Namen des fernen Rechners. Wenn Sie also unter dem Namen des fernen Rechners einen symbolischen Verweis auf rsh einrichten, können Sie rsh einfach durch Angabe dieses Rechnernamens aufrufen.

Stop-Signale unterbrechen nur den rsh-Prozess auf dem lokalen Rechner.

Die Umgebungsvariablen des lokalen Rechners werden nicht an den Kommandointerpreter auf des fernen Rechners weitergegeben.


Syntax


rsh host[ -n][ -l login][ -x][ kommando][ option]

host

BCAM- oder DNS-Name des fernen Rechners, an dem ein Shell-Kommando ausgeführt wird. Der Name des fernen Rechners muss im lokalen BCAM oder im DNS-Server bekannt sein.

Anstelle des Namen des fernen Rechners kann auch seine IP-Adresse in IPv4- oder IPv6-Punkt-Notation angegeben werden. Die IP-Adresse muss BCAM bekannt sein.

IPv4: n.n.n.n

n = 0..255 (dezimal)

IPv6: x:x:x:x:x:x:x:x

x = 0..FFFF (hexadezimal)

Für die IPv6-Punkt-Notation sind die in RFC 2373 beschriebenen alternativen Darstellungsweisen zulässig.

-n

wird angegeben, wenn das Kommando rsh seine Standard-Eingabe nicht auf das Kommando am fernen Rechner lenken soll. Die Standard-Eingabe von rsh wird nach /dev/null umgeleitet.

Das ist z.B. dann sinnvoll, wenn die Ausgabe des Kommandos rsh über eine Pipe an ein Programm weitergegeben wird, das selbst von der Standard-Eingabe liest (siehe Beispiel 1).

-n wird aber auch benötigt, wenn ein rsh-Kommando in den Hintergrund gestartet wird.

Der Aufruf von

rsh host dd if=/dev/nrmt0 bs=20b | tar xvpBf -

führt z.B. dazu, dass sich tar vor rsh beendet. rsh versucht dann, in die unterbrochene Pipe zu schreiben und konkurriert mit dem Kommandointerpreter um die Standard-Eingabe, anstatt sich zu beenden. Mit der Option -n können Sie dies vermeiden.


Dieses Problem tritt nur dann auf, wenn rsh am Anfang einer Pipe steht und nicht von der Standard-Eingabe liest. Wenn rsh tatsächlich von der Standard-Eingabe lesen soll, dürfen Sie die Option -n nicht verwenden.

Rufen Sie z. B. das Kommando

tar cf - . | rsh host dd of=/dev/rmt0 obs=20b

mit der Option -n auf, dann liest rsh fälschlicherweise von /dev/null statt von der Pipe.


-l login

Die Benutzerkennung, mit der sich der Benutzer am fernen Rechner anmeldet. Sie muss angegeben werden, wenn Sie am fernen Rechner unter einer anders lautenden Benutzerkennung arbeiten wollen als am lokalen Rechner.

-x

Das rsh-Kommando liefert den Ende-Status des fernen Kommandos zurück, falls der rsh-Server am fernen Rechner dies unterstützt (BS2000-POSIX, Unix-System).

kommando

Das Kommando, das am fernen Rechner ausgeführt werden soll.

kommando nicht angegeben:
rsh benutzt rlogin, um Sie am fernen Rechner anzumelden.

option

Die Argumente, die mit dem Kommando am fernen Rechner verwendet werden.

Arbeitsweise

Das Kommando rsh überträgt

  • seine Standard-Eingabe dem Kommando am fernen Rechner

  • die Standard-Ausgabe des Kommandos am fernen Rechner auf die Standard-Ausgabe des Kommandos rsh

  • die Standard-Fehlerausgabe des Kommandos am fernen Rechner auf die Standard-Fehlerausgabe des Kommandos rsh

Die Signale interrupt, quit und terminate werden an das Kommando am fernen Rechner weitergegeben.

Das aktuelle Dateiverzeichnis des gestarteten Kommandos wird auf das HOME-Dateiverzeichnis des Benutzers am fernen Rechner gesetzt.

Nicht entwertete Meta-Zeichen (z.B. <, >, &) werden am lokalen Rechner ausgewertet. Entwertete Meta-Zeichen werden am fernen Rechner interpretiert.

Das Kommando rsh ist beendet, wenn sich das Kommando am fernen Rechner beendet.

Bildschirmorientierte Programme, wie z.B. ced können nicht mit dem Kommando rsh aktiviert werden. Dafür ist das Kommando rlogin zu verwenden.

Beispiel 1

Der POSIX-Benutzer hansi möchte sich den Inhalt des Dateiverzeichnisses /home/hansi/test auf dem fernen Rechner rainbow anschauen. Die Ausgabe am Bildschirm soll überlaufgesteuert sein. Die Benutzerkennung hansi ist auch am fernen Rechner rainbow vorhanden.

$ rsh rainbow -n ls -l /home/hansi/test | more
total 167232
drwxrwxr-x   2 hansi 99          1024 Mar 18 09:24 ablage
drwxr-xr-x   2 hansi 99          1024 Apr 14 14:15 de
drwxr-xr-x   2 hansi 99          1024 Apr 22 08:19 en
 ...
--More--

Beispiel 2

Der POSIX-Benutzer hansi möchte den Inhalt der fernen Datei /home/hansi/hallo_1 am fernen Rechner rainbow an die lokale Datei test_1 anhängen. Die Benutzerkennung hansi ist auch am fernen Rechner rainbow vorhanden.

$ rsh rainbow cat /home/hansi/hallo_1 >> test_1

Beispiel 3

Der POSIX-Benutzer hansi möchte die ferne Datei /home/hansi/reise_1 an die ferne Datei /home/hans/holland anhängen. Beide Dateien befinden sich im Rechner rainbow. Die Benutzerkennung hansi ist auch auf dem Rechner rainbow vorhanden.

$ rsh rainbow cat /home/hansi/reise_1 ">>" /home/hansi/holland

Beispiel 4

Der POSIX-Benutzer hansi möchte die ferne Datei /home/emil/test im Rechner rainbow am Rechner rainbow ausdrucken. Der POSIX-Benutzer hansi ist am Rechner rainbow in die Datei /home/emil/.rhosts eingetragen.

$ rsh rainbow -l emil lpr /home/emil/test

Beispiel 5

Ein POSIX-Benutzer möchte die lokale Datei /home/hansi/dat am fernen Rechner rainbow ausdrucken.

$ rsh rainbow lpr < /home/hansi/dat

Datei

/$HOME/.rhosts

Liste der Rechnernamen mit Benutzerkennungen, die sich unter Ihrer Kennung anmelden dürfen.

Siehe auch

rcp