Vorheriges Thema: SkriptNächstes Thema: Informationen für Remote-Anmeldung


Operator "Telnet-Skript ausführen" - Inline-Skript APIs

Das Produkt verwendet für das Feld "Inline-Skript" des Operators "Telnet-Skript ausführen" ein Skript, das in BeanShell oder JavaScript geschrieben ist. Das Skript verwendet das Objekt "conn", das die folgenden APIs darstellt:

void send (String str, boolean log) throws Exception

Diese Methode sendet Daten an den Remote-Host.

String str

Definiert die Daten, die an den Remote-Host gesendet werden sollen.

boolean log

Stellt die Daten, die an den Remote-Host gesendet werden, in den CA Process Automation-Protokollen dar bzw. blendet sie aus.

Folgen Sie für Debugging-Zwecke der Interaktion zwischen dem Operator und dem Remote-Host. Legen Sie in der Datei <Installationsverzeichnis>/server/conf/log4j.xml den folgenden Code fest:

<category name="com.company.c2o.servicegroup.netutils">	
   <priority value="DEBUG" />
</category>

Legen Sie außerdem fest, dass die CA Process Automation-Protokolldatei (c2o.log) DEBUG-Anweisungen in "log4j.xml" akzeptiert.

Wenn Sie die Debug-Ebene festgelegt haben, beginnt der Operator "Befehlsausführung", auf der DEBUG-Ebene in die CA Process Automation-Protokolldatei (c2o.log) zu schreiben. Die CA Process Automation-Protokolle enthalten sämtliche Daten, die über "send" oder "sendLine" an den Remote-Host gesendet wurden.

Werte:

Wahr: Protokolliert den Wert "String str", wenn auf Debug-Ebene protokolliert wird.

Falsch: Protokolliert den Wert "String str" nicht.

Hinweis: "c2o.log" ist die CA Process Automation-Protokolldatei, nicht das Prozessprotokoll. Die Operatoren schreiben keine Meldungen in das Prozessprotokoll.

Diese Methode hat keine Rückgabewerte. Das Produkt generiert eine Ausnahme, wenn die API keine Daten im Remote-Host schreiben kann.

public void sendLine (String str, boolean log) throws Exception

Diese Methode hängt ein Zeichen für neue Zeile an die Daten an und sendet sie an den Remote-Host. Um zu erzwingen, dass der Remote-Host mit der Ausführung des Befehls beginnt, der im Parameter gesendet wird, verwenden Sie diese Methode.

Diese Methode hat die gleichen Parameter und Werte wie "void send (String str, boolean log) throws Exception".

void send (String str) throws Exception

Diese Methode entspricht "Send" (String str, "Wahr").

void sendLine (String str) throws Exception

Diese Methode entspricht "SendLine" (String str, "Wahr").

public boolean waitFor(String pattern, int timeout) throws Exception

Diese Methode liest die Ausgabe vom Remote-Host und hält an, wenn eines der folgenden Ergebnisse auftritt:

Das Produkt speichert die Ausgabe aus dem Remote-Host der einzelnen Aufrufe der Methode "waitFor" in einem Puffer, auf den über die Methode "getLastOutput()" zugegriffen werden kann. Jeder Aufruf von "waitFor" überschreibt den Pufferinhalt des vorherigen Aufrufs.

Der nächste Aufruf von "waitFor" liest die Ausgabe ab dem Punkt, an dem der vorhergehende waitFor-Aufruf zu lesen aufgehört hat. Dies ist relevant, wenn Sie die Methode mit "getLastOutput.()" verwenden. Wenn ein waitFor-Aufruf beispielsweise nicht mit der ganzen Befehlsausgabe übereinstimmt, kann der nächste Aufruf die verbleibende Ausgabe des früheren Befehls enthalten.

Wichtig! Um zu vermeiden, dass die Ausgabe des früheren Befehls mit der aktuellen Befehlsausgabe vermischt wird, rufen Sie nach jedem sendLine-Aufruf "waitFor" auf.

Die Operatoren "Telnet-Skript ausführen" und "SSH-Skript ausführen" verwenden verschiedene Mechanismen, um Daten von einem Remote-Host zu lesen:

Zu den Parametern gehören:

String pattern

Definiert einen regulären Ausdruck, mit dem die Daten, die das Produkt vom Remote-Host liest, abgeglichen werden sollen. Normalerweise steht dieses Muster für alle Daten bis zur nächsten Aufforderung (zum Beispiel ".*[$]"). Um die Befehlsausgabedaten einschließlich neuer Zeilen bis zur nächsten Aufforderung abgleichen (und abrufen) zu können, beginnen Sie das Muster mit ".*.".

Hinweis: Die Methode gleicht alle gelesenen Daten (während dieses Aufrufs von "waitFor") mit dem Muster ab. Die Methode entspricht nicht dem Muster als untergeordnete Zeichenfolge der gelesenen Daten. Ein Punkt (.) kann außerdem mit einer Zeilenendmarke übereinstimmen (er kann verwendet werden, um mit Antwortdaten, die sich über mehrere Zeilen erstrecken, übereinzustimmen).

Int timeout

Definiert das Intervall (in Sekunden), während dessen Daten vom Remote-Host gelesen und mit dem Muster abgeglichen werden sollen.

Rückgaben sind Boolesch:

Wahr

Die Daten, die bis zur Zeitüberschreitung gelesen wurden, stimmen mit dem Muster überein.

False

Die Daten, die bis zur Zeitüberschreitung gelesen wurden, stimmen nicht mit dem Muster überein.

Hinweis: Die Methode gibt einen Wert zurück, sobald eine Übereinstimmung mit dem Muster gefunden wird oder die Zeitüberschreitung erreicht ist.

In den folgenden Fällen generiert das Produkt eine Ausnahme:

Diese Methode gibt den Inhalt des Puffers zurück, an dem die Daten beim letzten Aufruf der Methode "waitFor" gespeichert und vom Remote-Host gelesen wurden. Diese Daten stimmen nicht immer mit dem waitFor-Muster überein. Der Puffer speichert die Werte, die durch den letzten waitFor-Aufruf gelesen wurden, unabhängig davon, ob "waitFor" "true" oder "false" zurückgegeben hat.

Diese Methode hat keine Parameter.

Diese Methode generiert keine Ausnahmen.