Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

libslax Default Extension Libraries: bit, curl, db, os und xutil

libslax Bit Extension Library

Die libslax Bit-Erweiterungsbibliothek enthält Funktionen, die Bitzeichenfolgen erstellen und bearbeiten. Die Funktionen unterstützen 64-Bit-Integer-Argumente. Um Funktionen aus der Biterweiterungsbibliothek in SLAX-Skripte zu integrieren, fügen Sie die Namespace-Anweisung für diese Bibliothek in das Skript ein.

Rufen Sie die Biterweiterungsfunktionen mithilfe des bit Präfixes und des Funktionsnamens auf. Zum Beispiel:

Tabelle 1 listet die Funktionen auf, die in der Biterweiterungsbibliothek verfügbar sind, die in SLAX 1.1-Skripten in Junos OS Version 12.2 und höher unterstützt wird.

Tabelle 1: Funktionen in der libslax Bit Extension Library

Funktion und Argumente

Beschreibung

Beispiel

bit:and(b1, b2)

Geben Sie das logische AND von zwei Bit-Zeichenfolgen zurück.

bit:and("101100", "100101")Rückgabewert: "100100"

bit:clear(b1,bitnum)

Legen Sie das angegebene Bit in der Bitzeichenfolge auf Null fest und geben Sie die neue Bitzeichenfolge zurück. Bits werden mit Null nummeriert. Wenn das Integer-Argument größer als die Bitzeichenfolgenlänge ist, wird die Bitzeichenfolge erweitert.

bit:clear("11111", 0)Rückgabewert: "11110"

bit:clear("11111", 6)Rückgabewert: "0011111"

bit:compare(value1, value2)

Vergleichen Sie zwei Werte und geben Sie eine ganze Zahl kleiner als, gleich oder größer als Null zurück, wenn das erste Argument kleiner, gleich oder größer als das zweite Argument ist.

bit:compare("10000", 16)Rückgabewert: 0

bit:compare("11111", "10000")Rückgabewert: 1

bit:from-hex(string, len?)

Geben Sie den Wert des hexademischen Arguments als Bitzeichenfolge zurück. Das optionale zweite Argument setzt die Bitzeichenfolge mit führenden Nullen (0s) ein, bis die angegebene Länge angegeben ist.

bit:from-hex("0x45", 8)Rückgabewert: "01000101"

bit:from-int(integer, len?)

Geben Sie den Wert des Integer-Arguments als Bitzeichenfolge zurück. Das optionale zweite Argument blockt die Bitzeichenfolge mit führenden Nullen, bis sie die angegebene Länge ist.

bit:from-int(65,8)Rückgabewert: "01000001"

bit:mask(count, len?)

Geben Sie eine Bitzeichenfolge mit der angegebenen Anzahl von Bits niedriger Reihenfolge auf eins zurück. Das optionale zweite Argument blockt die Bitzeichenfolge mit führenden Nullen, bis sie die angegebene Länge ist.

bit:mask(4, 8)Rückgabewert: "00001111"

bit:nand(b1, b2)

Geben Sie den logischen NAND von zwei Bit-Zeichenfolgen zurück.

bit:nand("101100", "100101")Rückgabewert: "010010"

bit:nor(b1, b2)

Geben Sie den logischen NOR von zwei Bit-Zeichenfolgen zurück.

bit:nor("101100", "100101")Rückgabewert: "011011"

bit:not(b1)

Geben Sie die Inversion (NOT) einer Bitzeichenfolge zurück.

bit:not("101100")Rückgabewert: "010011"

bit:or(b1, b2)

Geben Sie den logischen ODER von zwei Bit-Zeichenfolgen zurück.

bit:or("101100", "100101")Rückgabewert: "101101"

bit:set(b1, bitnum)

Legen Sie das angegebene Bit in der Bitzeichenfolge fest und geben Sie die neue Bitzeichenfolge zurück. Bits werden mit Null nummeriert. Wenn das Integer-Argument größer als die Bitzeichenfolgenlänge ist, wird die Bitzeichenfolge erweitert.

bit:set("1001", 2) Rückgabewert: "1101"

bit:set("1001", 6) Rückgabewert: "1001001"

bit:to-int(b1)

Geben Sie den Wert des Bitzeichenfolgenarguments als Integer zurück.

bit:to-int("101100")Rückgabewert: 44

bit:to-hex(b1)

Geben Sie den Wert des Bitzeichenfolgenarguments als Zeichenfolgendarstellung des Hexadezimalwerts zurück.

bit:to-hex("101100")Rückgabewert: "0x2c"

bit:xor(b1, b2)

Geben Sie das logische XOR von zwei Bitzeichenfolgen zurück.

bit:xor("101100", "100101")Rückgabewert: "001001"

bit:xnor(b1, b2)

Geben Sie das logische XNOR von zwei Bit-Zeichenfolgen zurück.

bit:xnor("101100",  "100101")Rückgabewert: "110110"

libslax curl Extension Library

Grundlegendes zur libslax curl Extension Library

cURL ist ein Befehlszeilentool, das die libcurl-Bibliothek verwendet und Datenübertragungen mit einer Reihe von Protokollen unterstützt, einschließlich FTP, FTPS, HTTP, HTTPS, SCP und SMTP. Weitere Informationen zu cURL finden Sie auf der cURL-Website unter http://curl.haxx.se/.

Die libslax-Distribution umfasst die Curl-Erweiterungsbibliothek, die Funktionen enthält, die cURL-Operationen ausführen. Um Funktionen aus der libslax curl Extension Library in SLAX-Skripte zu integrieren, fügen Sie die Namespace-Anweisung für diese Bibliothek in das Skript ein.

Sie können dann die Curl-Erweiterungsfunktionen mithilfe des curl Präfixes und des Funktionsnamens aufrufen. cURL-Vorgänge werden mithilfe einer Reihe von Elementen geleitet, die an die Erweiterungsfunktionen übergeben werden.

Tabelle 2 listet die unterstützten Vorgänge in der Curl Extension Library auf und enthält eine Beschreibung jeder Funktion. Tabelle 3 und Tabelle 4 listen die unterstützten Elemente auf und enthalten die Syntax und eine Beschreibung der einzelnen Elemente. Genauer gesagt listet Tabelle 3 elemente auf, die für den Betrieb von Webservices verwendet werden, und Tabelle 4 listet die Elemente auf, die für den E-Mail-Betrieb verwendet werden. Beispiele und weitere Informationen zur Verwendung der curl Extension Library finden Sie unter The curl Extension Library.

Tabelle 2: Funktionen in der libslax curl Extension Library

Funktion

Beschreibung

curl:close

Schließen Sie eine offene Verbindung. Weitere Vorgänge können nicht über die Verbindung durchgeführt werden. Siehe curl:close.

curl:open

Öffnen Sie eine Verbindung zu einem Remote-Server, sodass mehrere Vorgänge über eine einzige Verbindung möglich sind. Siehe Curl:open.

curl:perform

Führen Sie einfache Übertragungen mit einem persistenten Verbindungshandgriff durch curl:open. Siehe curl:perform.

curl:set

Zeichnen Sie eine Reihe von Parametern auf, die für die Lebensdauer einer Verbindung bestehen bleiben. Siehe curl:set.

curl:single

Führen Sie Übertragungsvorgänge aus, ohne eine dauerhafte Verbindung zu verwenden. Siehe Curl:single.

Tabelle 3: Web-Services-Elemente in der libslax curl Extension Library

Element

Beschreibung

Syntax

<connect-timeout>

Anzahl der Sekunden, bevor ein Verbindungsversuch als fehlgeschlagen gilt.

<connect-timeout> 10;

<content-type>

MIME-Typ für die Übertragungsnutzlast.

<content-type> "mime/type";

<errors>

Steuern Sie die Behandlung von HTML- und XML-Parsingfehlern.

Siehe Umgang mit Fehlern

<fail-on-error>

Geben Sie an, dass die Übertragung fehlschlagen sollte, wenn fehlerbehaftete, auch unbedeutend, erkannt werden.

<fail-on-error>;

<format>

Geben Sie das erwartete Format der zurückgegebenen Ergebnisse an, sodass die Curl-Erweiterung den Inhalt automatisch im nativen Format zur Verfügung stellen kann. Formate umfassen "html", "name", "text", "url-codiert" und "xml".

<format> "xml";

<header>

Stellen Sie zusätzliche Header-Felder für die Anforderung bereit.

<header name="name"> "value";

<insecure>

Zeigen Sie die Bereitschaft an, unsichere Kommunikationsvorgänge zu tolerieren. Erlauben Sie insbesondere SSL-Zertifikate, ohne den allgemeinen Namen zu überprüfen.

<insecure>;

<method>

Methode für die Datenübertragung. Dadurch wird der HTTP-Anforderungstyp gesteuert und andere Übertragungsmechanismen ausgelöst.

Zu den zulässigen Methodennamen gehören "get", "post", "delete", "head", "email", "put" und "upload". "get" ist der Standard.

<method> "get";

<param>

Geben Sie zusätzliche Parameterwerte für die Anforderung an. Diese Parameter werden in der Regel in die URL codiert.

<param name="x"> "y";

<password>

Das Kennwort des Benutzers, das für die Übertragung verwendet werden soll.

<password> "password";

<secure>

Fordern Sie die Verwendung der sicheren Version eines Protokolls an, einschließlich HTTPS und FTPS.

<secure>;

<timeout>

Anzahl der Sekunden, bevor eine offene Verbindung als fehlgeschlagen gilt.

<timeout> 10;

<upload>

Geben Sie an, dass es sich um eine Datei-Upload-Anfrage handelt.

<upload>;

<url>

Basis-URL für die Anforderung.

<url> "target-url";

<username>

Benutzername, der für die Übertragung verwendet werden soll.

<username> "username";

<verbose>

Fordern Sie detaillierte Debug-Informationen über den Betrieb und die Kommunikation der Übertragung an.

<verbose>;

Tabelle 4: E-Mail-Elemente in der libslax curl Extension Library

Element

Beschreibung

Syntax

<cc>

"Cc"-Adresse für E-Mail-Anfragen (SMTP). Verwenden Sie für mehrere Adressen mehrere <cc>-Elemente.

<cc> "cc-user@email.example.com";

<contents>

Zu übertragene Inhalte.

<contents> "multi-\nline\ncontents\n";

<from>

"From"-Adresse für SMTP-Anfragen (E-Mail).

<from> "source-user@email.example.com";

<local>

Lokaler Hostname, der für SMTP-Anfragen (E-Mail) verwendet wird.

<local> "local host name";

<server>

Ausgehender SMTP-Servername. MX-Datensätze werden derzeit nicht verarbeitet.

<server> "email-server.example.com";

<subject>

Feld "Betreff" für E-Mail-Anfragen (SMTP).

<subject> "email subject string";

<to>

"An"-Adresse für E-Mail-Anfragen (SMTP). Verwenden Sie für mehrere Adressen mehrere <to>-Elemente.

<to> "to-user@email.example.com";

Die libcurl-Elemente ahmen genau die Optionen nach, die von der nativen C libcurl API in der Funktion von curl_easy_setopt() libcurl verwendet werden. Sobald die Optionen festgelegt sind, führt ein Anruf curl_easy_perform() die angeforderte Übertragung aus. Weitere Informationen zur curl_easy_setopt() Funktion finden Sie unter http://curl.haxx.se/libcurl/c/curl_easy_setopt.html .

In der libslax curl Extension Library werden die libcurl-API-Optionen als einzelne Elemente dargestellt. Beispielsweise wird das <url> Element der Option CURLOPT_URL zugeordnet, das <method> Element wird der Option CURLOPT_CUSTOMREQUEST zugeordnet usw.

Diese Elemente können auf drei Arten verwendet werden:

  • Die curl:single() Erweiterungsfunktion unterstützt die Verwendung einer Reihe von Optionen in einem einzigen Übertragungsvorgang ohne dauerhaften Verbindungshandgriff.

  • Die curl:perform() Erweiterungsfunktion unterstützt die Verwendung einer Reihe von Optionen mit einem persistenten Verbindungshandgriff. Der Griff wird von der Erweiterungsfunktion curl:open() zurückgegeben und kann mit der Erweiterungsfunktion curl:close() geschlossen werden.

  • Die Erweiterungsfunktion curl:set() zeichnet eine Reihe von Optionen für einen Verbindungsgriff auf und hält diese Optionen während der gesamten Lebensdauer der Verbindung aktiv. Wenn das Skript beispielsweise eine Reihe von Dateien übertragen muss, kann es die <username> Optionen aufzeichnen und <password> vermeiden, dass sie bei jedem curl:perform() Aufruf wiederholt werden.

Curl:schließen

Die curl:close() Erweiterungsfunktion schließt eine offene Verbindung. Nach dem Schließen der Verbindung können keine weiteren Vorgänge mehr ausgeführt werden.

Die Syntax lautet:

Das Argument ist der Verbindungshand zum Schließen.

Curl:offen

Die curl:open() Erweiterungsfunktion öffnet eine Verbindung zu einem Remote-Server, sodass mehrere Vorgänge über eine einzige Verbindung möglich sind.

Die Syntax lautet:

Das zurückgegebene Objekt ist ein Verbindungshandhand, das an curl:perform() oder curl:close()übergeben werden kann.

Curl:ausführen

Die curl:perform() Erweiterungsfunktion führt einfache Übertragungen mithilfe eines permanenten Verbindungshandgriffs durch, der von curl:open().

Die Syntax lautet:

Bei den Argumenten handelt es sich um den Verbindungshandhab und eine Reihe von Optionselementen. Die unterstützten Curl Extension Library-Elemente sind in Tabelle 3 und Tabelle 4 definiert.

Das zurückgegebene Objekt ist eine XML-Hierarchie, die die Ergebnisse der Übertragung enthält. Tabelle 5 listet die möglichen Elemente der Antwort auf, und Tabelle 6 listet die möglichen Elemente auf, die in dem <header> Element enthalten sind.

Tabelle 5: curl:Reply Elements durchführen

Element

Inhalt

<curl-success>

Leeres Element, das den Erfolg anzeigt

<data>

Analysierte Daten

<error>

Falls vorhanden, Fehlermeldungen

<header>

Analysierte Header-Felder

<raw-data>

Rohdaten aus der Antwort

<raw-headers>

Kopfzeilen-Rohfelder aus der Antwort

<url>

Angeforderte URL

Tabelle 6: curl:perform <header> Elements

Element

Inhalt

<code>

HTTP-Antwortcode

<field>

HTTP-Antwortfeld (mit @name und Wert)

<message>

HTTP-Antwortnachricht

<version>

Versionszeichenfolge für HTTP-Antwort

Im folgenden Beispiel wird das <header> Element mit in <field> Elementen analysierten Header-Feldern dargestellt:

curl:set

Die curl:set() Erweiterungsfunktion zeichnet eine Reihe von Parametern auf, die für die Lebensdauer einer Verbindung bestehen bleiben.

Die Syntax lautet:

Bei den Argumenten handelt es sich um den Verbindungshandhab und eine Reihe von Optionselementen. Die unterstützten Curl Extension Library-Elemente sind in Tabelle 3 und Tabelle 4 definiert.

Curl:single

Die curl:single() Erweiterungsfunktion führt Übertragungsvorgänge durch, ohne eine dauerhafte Verbindung zu verwenden.

Die Syntax lautet:

Das zurückgegebene Objekt ist in der Struktur identisch mit dem von curl:perform(). Weitere Informationen finden Sie unter curl:perform .

Unterstützte Formatelemente

Ab Version 1.2 der SLAX-Sprache, die von Junos OS Version 14.2 und höher unterstützt wird, unterstützt das format Element neben "html", "text" und "xml" zwei neue Formate: "name" und "url-codiert". Die "Name"-Codierung wird für name=Wert-Paare verwendet, die durch Neue linien getrennt sind, während die "URL-codierte" Codierung verwendet wird, wenn die Name=Wertpaare durch ein amperund (&) getrennt sind.

Die analysierten Daten werden mithilfe von <data> <name> Elementen im Element zurückgegeben. Im folgenden Beispiel format wird auf "URL-codiert" festgelegt:

Curl Beispiele

Die folgenden Beispiele zeigen SLAX-Skripte, die die Libslax-Erweiterungsbibliotheksfunktionen curl verwenden, um Vorgänge auszuführen.

Das folgende SLAX-Skript führt einen einfachen GET-Vorgang aus, um eine Webseite abzurufen. Das Skript gibt das Header-Feld für den HTTP-Header und einen Parameter an, der in die angeforderte URL integriert ist.

Das folgende SLAX-Skript sendet eine E-Mail über einen Server, die als Parameter bereitgestellt wird:

Das folgende SLAX-Op-Skript verwendet die bereitgestellten Anmeldeinformationen, um eine Verbindung herzustellen und sich bei einer Webanwendung anzumelden:

Sie können Flask verwenden, um eine einfache Webanwendung zum Testen des Skripts zu erstellen. Flask, das auf PyPI verfügbar ist, ist ein leichtes Web Server Gateway Interface (WSGI)-Webanwendungs-Framework. Das folgende Python-Skript von https://pythonspot.com/login-authentication-with-flask erstellt eine einfache Webanwendung mit einer Anmeldeseite.

Um das Op-Skript zu testen, starten Sie zuerst das Webanwendungsskript auf dem Remotegerät.

Aktivieren Sie dann das Op-Skript auf dem Gerät, auf dem Junos OS ausgeführt wird. Die Ergebnisse werden in der Datei op-script.log protokolliert.

Handhabung von Fehlern

Ab Version 1.2 der SLAX-Sprache, die von Junos OS Version 14.2 und höher unterstützt wird, können Sie das <errors> Element verwenden, um die Verarbeitung von HTML- und XML-Analysefehlern zu steuern. Das Standardverhalten besteht darin, Fehler im Standardfehler-Ausgabestrom (stderr) anzuzeigen. Indem Sie verschiedene Werte für das <errors> Element bereitstellen, können Sie den Fehler auch ignorieren, protokollieren oder aufzeichnen. Tabelle 7 listet die Werte auf, die Sie für das errors Element verwenden können.

Tabelle 7: Fehlerelemente

Wert

Besonderes Verhalten

Standard

Fehler werden auf stderr angezeigt

Ignorieren

Fehler werden verworfen

Protokoll

Fehler werden protokolliert (via slaxLog())

Aufzeichnung

Fehler werden aufgezeichnet

Wenn der Wert von <errors> auf "record" festgelegt ist, werden alle Fehler in einer Zeichenfolge unter dem <errors> Element im XML-Knoten angezeigt (wie z. B. von curl:perform). Wenn keine Fehler generiert werden, ist das <errors> Element nicht vorhanden, das als Fehlertest verwendet werden kann.

libslax db Extension Library

Die libslax db Extension Library, die von Junos OS Version 17.4R1 und höher unterstützt wird, bietet eine Möglichkeit für SLAX-Skripte, in einer Datenbank gespeicherte Daten zu speichern, zu bearbeiten, abzurufen und zu löschen. Um Funktionen aus der db-Erweiterungsbibliothek in SLAX-Skripten zu verwenden, fügen Sie die Namespace-Anweisung für diese Bibliothek in das Skript ein.

Tabelle 8 fasst die Funktionen zusammen, die in der db-Erweiterungsbibliothek verfügbar sind. Beispiele und weitere Informationen zu den DB-Erweiterungsfunktionen finden Sie unter db-Erweiterungsfunktionen.

Tabelle 8: Funktionen in der libslax db Extension Library

Funktion

Beschreibung

db:close()

Schließen Sie die Datenbankverbindung, und befreien Sie alle Strukturen, die mit früheren Vorgängen verbunden sind, die an diesem Handle durchgeführt wurden.

db:create()

Erstellen Sie eine Auflistung in der Datenbank, die dem offenen Datenbankhandhabe zugeordnet ist, und verwenden Sie die angegebenen Feldinformationen.

db:delete()

Löschen Sie Instanzen in einer Sammlung, die den angegebenen Bedingungen in der Datenbank entsprechen, die dem offenen Datenbankhandhabe zugeordnet ist.

db:fetch()

Ruft eine Ergebnisinstanz mit dem von einem db:find() oder db:query einem Anruf zurückgegebenen Cursor ab.

db:find()

Geben Sie einen Cursor für Instanzen zurück, die den angegebenen Bedingungen entsprechen. db:fetch() muss verwendet werden, um jede der Ergebnisinstanzen abzurufen.

db:find-and-fetch()

Finden und lesen Sie alle Instanzen, die den angegebenen Bedingungen entsprechen.

db:insert()

Einfügen von Daten in eine Sammlung in der Datenbank, die dem offenen Datenbankhandhabe zugeordnet ist.

db:open()

Öffnen Sie eine Datenbankverbindung mit den angegebenen Optionen, einschließlich des Back-End-Datenbankmoduls und des Datenbanknamens.

db:query()

Führen Sie eine benutzerdefinierte Abfrage aus.

db:update()

Aktualisieren Sie eine Reihe von Instanzen, die den angegebenen Bedingungen mit der bereitgestellten Instanz übereinstimmen.

Tabelle 9 fasst die Elemente zusammen, die in den Optionen und Daten von DB-Erweiterungsfunktionen verwendet werden können. Beispiele und weitere Informationen zu db-Elementen finden Sie unter db Elements.

Tabelle 9: Elemente in der db Extension Library

Element

Beschreibung

Beispiel

<collection>

Geben Sie die Datenerfassung an, für die Vorgänge ausgeführt werden sollen. Dies entspricht einer SQL-Datenbanktabelle.

<collection> "employee";

<condition>

Geben Sie eine Bedingung an, die beim Betrieb mit Dateninstanzen aus dem Datenspeicher erfüllt sein muss. Dies bildet die Bedingung, die mit der WHERE-Klausel beim Betrieb mit einem SQL-Datenspeicher verwendet wird. Zu den obligatorischen Elementen gehören:

  • <selector>—Name des Feldes, für das diese Bedingung gilt

  • <operator>–Vergleich oder logischer Operator (<, >, <=, =>=, LIKE, IN, , ) NOT

  • <value>—Wert, der mit dem Betreiber in diesem Feld verwendet wird

<condition> {
    <selector> "id;
    <operator> "in";
    <value> "(1, 10)";
}

<conditions>

Geben Sie mehrere Bedingungen mit <and> oder <or> als übergeordnete Knoten an.

<conditions> {
    <and> {
        <condition> {
            ... /* c1 */
        } 
        <condition> {
            ... /* c2 */
        } 
        <or> {
            <condition> {
                ... /* c3 */
            }
            <condition> {
                ... /* c4 */
            }
        }
    }
}

<database>

Geben Sie den Namen der Datenbank an, in der sie betrieben werden soll.

<database> "test.db";

<engine>

Geben Sie die Back-End-Datenbank-Engine an, die zum Speichern und Zugriff von Daten verwendet wird.

<engine> "sqlite";

<field>

Definieren Sie die Metadaten für jedes Feld in der Sammlung.

<field> {
    <name> "name";
    <type> "integer";
    <primary>;        
}

<fields>

Geben Sie Metadaten zu Feldern in einer Sammlung mithilfe untergeordneter <field> Elemente an.

<fields> {
    <field> {
        ...
    }
}

<instance>

Stellen Sie eine einzelne Instanz in einer Sammlung dar, wenn Daten im Datenspeicher eingefügt oder manipuliert werden. Das Element enthält Felder und die entsprechenden Werte in diesem Datensatz.

<instance> {
    <id> 5;
    <name> "John";
}

<instances>

Definieren Sie mehrere Instanzen in einer Sammlung, wenn Sie Daten in den Datenspeicher einfügen oder bearbeiten.

<instances> {
    <instance> {
        ...
        ...
    }
    ...
}

<limit>

Begrenzen Sie die Anzahl der Instanzen, die ein Ergebnis enthalten kann.

<limit> 10;

<result>

Ausgabeknoten, der von den meisten DB-Erweiterungsfunktionen zurückgegeben wird. Dieser Knoten enthält ein <status> Element und kann ein oder mehrere <instance> Elemente enthalten.

<result> {
    <status> {
        <ok>
    }
}

<retrieve>

Geben Sie nur die Felder an, die beim Abfragen des Datenspeichers als Teil des Ergebnissatzes angezeigt werden sollen.

<retrieve> {
    <id>;
    <name>;
}

<skip>

Überspringen Sie eine angegebene Anzahl von Instanzen im Ergebnissatz, bevor Sie an den Benutzer zurückkehren.

<skip> 5;

<sort>

Geben Sie die Felder und die Reihenfolge an, nach der der Ergebnissatz sortiert werden muss.

Geben Sie die Felder durch Einschluss des <by> Elements an und geben Sie die Sortierreihenfolge an, indem Sie den Wert von <order> auf "asc" (aufsteigend) oder "desc" (absteigend) festlegen.

<sort> {
    <by> "id";
    <by> "age";
    <order> "desc";
}

libslax OS Extension Library

Die libslax-Erweiterungsbibliothek os bietet eine Reihe von Funktionen, um betriebssystembezogene Vorgänge auf dem lokalen Host aufzurufen. Um Funktionen aus der Erweiterungsbibliothek os in SLAX-Skripten zu verwenden, fügen Sie die Namespace-Anweisung für diese Bibliothek in das Skript ein.

Tabelle 10 fasst die Funktionen zusammen, die in der Os-Erweiterungsbibliothek verfügbar sind. Der Rückgabewert vieler os Erweiterungsfunktionen besteht aus einer Reihe von Null oder mehr Fehlerknoten. Jeder Knoten kann ein <error> Element mit zusätzlichen untergeordneten Elementen enthalten. Beispiele und weitere Informationen zu os Erweiterungsfunktionen finden Sie unter Os Extension Functions.

Tabelle 10: Funktionen in der libslax os Extension Library

Funktion

Beschreibung

Erste unterstützte Junos OS-Version

os:chmod

Ändern Sie die Berechtigungen für eine oder mehrere Dateien.

17.4

os:chown

Ändern Sie den Dateibesitzer und die Gruppe für eine oder mehrere Dateien.

17.4

os:exit-code

Legen Sie den Exit-Code für den Prozess fest, der das Skript ausführt.

14.1

os:mkdir

Erstellen Sie ein neues Verzeichnis mit dem angegebenen Namen, Pfad und Berechtigungen.

Die <create> Option, die einen Fehler zurückgibt, wenn das letzte Element des Pfads vorhanden ist, wird ab Junos OS Version 17.4R1 unterstützt.

14.1

os:remove

Löschen Sie eine Datei oder ein leeres Verzeichnis.

17.4

os:stat

Geben Sie Informationen zu Dateien und Verzeichnissen in einem Knotensatz von <entry> Elementen zurück, die Details zu jeder Datei enthalten.

14.1

os:user-info

Geben Sie ein <user-info> Element mit Informationen über den Benutzer zurück, der das Skript ausführt.

17.4

libslax xutil Extension Library

Die Erweiterungsbibliothek libslax xutil enthält Funktionen, die zwischen Zeichenfolgen und XML-Knotensätze konvertiert werden. Um Funktionen aus der xutil-Erweiterungsbibliothek in SLAX-Skripte zu integrieren, fügen Sie die Namespace-Anweisung für diese Bibliothek in das Skript ein.

Rufen Sie die xutil-Erweiterungsfunktionen mithilfe des Präfixes xutil und des Funktionsnamens auf. Tabelle 11 listet die in der Erweiterungsbibliothek xutil verfügbaren Funktionen auf, die in SLAX 1.1- und höher-Skripten unterstützt werden. Beispiele und weitere Informationen zu xutil-Erweiterungsfunktionen finden Sie unter xutil Extension Functions.

Tabelle 11: Funktionen in der libslax xutil Extension Library

Funktion und Argumente

Beschreibung

Erste unterstützte Junos OS-Version

xutil:json-to-xml(string)

Konvertieren Sie eine Zeichenfolge, die JSON-Daten enthält, in die native Darstellung dieser Daten in XML.

14.2

xutil:max-call-depth(number)

Begrenzen Sie die Tiefe rekursiver Anrufe. Die Standardgrenze ist 3.000.

14.1

xutil:string-to-xml(string+)

Konvertieren Sie eine Zeichenfolge mit XML-Daten in die native Darstellung dieser Daten.

12.2

xutil:xml-to-json(node-set+)

Konvertieren Sie XML-Daten in eine Zeichenfolge, die JSON-Daten enthält. Diese Funktion codiert Tags als JSON-Objekte innerhalb einer Zeichenfolge.

14.2

xutil:xml-to-string(node-set+)

Konvertieren Sie XML-Daten in eine Zeichenfolge.

12.2