Bibliothèques d’extensions par défaut libslax : bit, curl, db, os et xutil
libslax bit Extension Library
La bibliothèque d’extensions de bits libslax contient des fonctions qui permettent de créer et de manipuler des chaînes de bits. Les fonctions prennent en charge les arguments entiers 64 bits. Pour incorporer des fonctions de la bibliothèque d’extensions de bits dans des scripts SLAX, incluez l’instruction d’espace de noms de cette bibliothèque dans le script.
ns bit extension = "http://xml.libslax.org/bit";
Appelez les fonctions d’extension de bits à l’aide du préfixe et du bit
nom de la fonction. Par exemple:
version 1.1; ns bit extension = "http://xml.libslax.org/bit"; var $a = 63; var $b = { expr "10111"; } match / { <out> { <bit-and> { <a1> bit:and("101100", "100101"); <a2> bit:and($a, $b); <a3> bit:and($a, number($b)); } <bit-or> { <a1> bit:or("101100", "100101"); <a2> bit:or($a, $b); <a3> bit:or($a, number($b)); } <bit-mask> { <a1> bit:mask(0); <a2> bit:mask(8, 32); } <ops> { <a1> bit:to-int("10101"); } } }
Le Tableau 1 répertorie les fonctions disponibles dans la bibliothèque d’extensions de bits , qui est prise en charge par les scripts SLAX 1.1 de Junos OS version 12.2 et ultérieures.
Fonction et arguments |
Description |
Exemple |
---|---|---|
|
Renvoie le ET logique des chaînes de deux bits. |
|
|
Définissez le bit spécifié dans la chaîne de bits sur zéro et renvoyez la nouvelle chaîne de bits. Les bits sont numérotés à partir de zéro. Si l’argument integer est supérieur à la longueur de la chaîne de bits, la chaîne de bits est étendue. |
|
|
Comparez deux valeurs et renvoyez un entier inférieur à, égal ou supérieur à zéro si le premier argument est inférieur, égal ou supérieur au second argument, respectivement. |
|
|
Renvoie la valeur de l’argument hexadémique sous la forme d’une chaîne de bits. Le deuxième argument facultatif remplit la chaîne de bits avec des zéros non significatifs (0) jusqu’à ce qu’elle atteigne la longueur spécifiée. |
|
|
Renvoie la valeur de l’argument entier sous la forme d’une chaîne de bits. Le deuxième argument facultatif remplit la chaîne de bits avec des zéros non significatifs jusqu’à ce qu’elle atteigne la longueur spécifiée. |
|
|
Renvoie une chaîne de bits avec le nombre spécifié de bits d’ordre inférieur défini sur un. Le deuxième argument facultatif remplit la chaîne de bits avec des zéros non significatifs jusqu’à ce qu’elle atteigne la longueur spécifiée. |
|
|
Renvoie la NAND logique de deux chaînes de bits. |
|
|
Renvoie le NOR logique des chaînes de deux bits. |
|
|
Renvoie l’inversion (NOT) d’une chaîne de bits. |
|
|
Renvoie le OU logique des chaînes de deux bits. |
|
|
Définissez le bit spécifié dans la chaîne de bits et renvoyez la nouvelle chaîne de bits. Les bits sont numérotés à partir de zéro. Si l’argument integer est supérieur à la longueur de la chaîne de bits, la chaîne de bits est étendue. |
|
|
Renvoie la valeur de l’argument bit string sous la forme d’un entier. |
|
|
Renvoie la valeur de l’argument bit string sous la forme d’une représentation de chaîne de la valeur hexadécimale. |
|
|
Renvoie le XOR logique de deux chaînes de bits. |
|
|
Renvoie le XNOR logique de deux chaînes de bits. |
|
libslax curl Bibliothèque d’extensions
- Comprendre la bibliothèque d’extensions libslax curl
- curl :close
- curl :ouvert
- curl :perform
- curl :set
- curl :simple
- Éléments de format pris en charge
- Exemples de curl
- Gestion des erreurs
Comprendre la bibliothèque d’extensions libslax curl
cURL est un outil en ligne de commande qui utilise la bibliothèque libcurl et prend en charge les transferts de données à l’aide d’un certain nombre de protocoles, notamment FTP, FTPS, HTTP, HTTPS, SCP et SMTP. Pour plus d’informations sur cURL, consultez le site Web de cURL à l’adresse http://curl.haxx.se/.
La distribution libslax inclut la bibliothèque d’extensions curl , qui contient des fonctions qui effectuent des opérations cURL. Pour incorporer des fonctions de la bibliothèque d’extension curl libslax dans des scripts SLAX, incluez l’instruction d’espace de noms de cette bibliothèque dans le script.
ns curl extension = "http://xml.libslax.org/curl";
Vous pouvez ensuite appeler les fonctions d’extension curl à l’aide du préfixe et du curl
nom de la fonction. Les opérations cURL sont dirigées à l’aide d’un ensemble d’éléments transmis aux fonctions d’extension.
Le tableau 2 répertorie les opérations prises en charge dans la bibliothèque d’extensions curl et comprend une description de chaque fonction. Les tableaux 3 et 4 répertorient les éléments pris en charge et incluent la syntaxe et une description de chaque élément. Plus précisément, le Tableau 3 répertorie les éléments utilisés pour les opérations de services Web, et le Tableau 4 répertorie les éléments utilisés pour les opérations de messagerie. Pour obtenir des exemples et des informations supplémentaires sur l’utilisation de la bibliothèque d’extensions curl , consultez Bibliothèque d’extensions curl.
Fonction |
Description |
---|---|
|
Fermez une connexion ouverte. Il n’est pas possible d’effectuer d’autres opérations sur la connexion. Voir curl :close. |
|
Ouvrez une connexion à un serveur distant, en permettant plusieurs opérations sur une seule connexion. Voir curl :open. |
|
Effectuez des transferts simples à l’aide d’un descripteur de connexion persistant fourni par |
|
Enregistrez un ensemble de paramètres qui persistent pendant toute la durée de vie d’une connexion. Voir curl :set. |
|
Effectuez des opérations de transfert sans utiliser de connexion persistante. Voir curl :single. |
Élément |
Description |
Syntaxe |
---|---|---|
|
Nombre de secondes avant qu’une tentative de connexion ne soit considérée comme ayant échoué. |
|
|
MIME pour la charge utile de transfert. |
|
|
Contrôlez la façon dont les erreurs d’analyse HTML et XML sont gérées. |
Reportez-vous à la section Gestion des erreurs |
|
Indiquez que le transfert doit échouer si des erreurs, même insignifiantes, sont détectées. |
|
|
Spécifiez le format attendu des résultats renvoyés, ce qui permet à l’extension curl de rendre automatiquement le contenu disponible au format natif. Les formats incluent « html », « name », « text », « url-encoded » et « xml ». |
|
|
Fournissez des champs d’en-tête supplémentaires pour la demande. |
|
|
Indiquer qu’il est prêt à tolérer des opérations de communication non sécurisées. Plus précisément, autorisez les certificats SSL sans vérifier le nom commun. |
|
|
Méthode utilisée pour transférer les données. Cela contrôle le type de requête HTTP, ainsi que le déclenchement d’autres mécanismes de transfert. Les noms de méthode acceptables sont « get », « post », « delete », « head », « email », « put » et « upload ». « get » est la valeur par défaut. |
|
|
Fournissez des valeurs de paramètre supplémentaires pour la demande. Ces paramètres sont généralement encodés dans l’URL. |
|
|
Mot de passe de l’utilisateur à utiliser pour le transfert. |
|
|
Demandez l’utilisation de la version sécurisée d’un protocole, y compris HTTPS et FTPS. |
|
|
Nombre de secondes avant qu’une connexion ouverte ne soit considérée comme ayant échoué. |
|
|
Indiquez qu’il s’agit d’une demande de téléchargement de fichier. |
|
|
URL de base de la requête. |
|
|
Nom d’utilisateur à utiliser pour le transfert. |
|
|
Demandez des informations de débogage détaillées sur les opérations et la communication du transfert. |
|
Élément |
Description |
Syntaxe |
---|---|---|
|
Adresse « Cc » pour les demandes par e-mail (SMTP). Pour plusieurs adresses, utilisez plusieurs éléments <cc>. |
|
|
Contenus à transférer. |
|
|
Adresse de l’expéditeur pour les demandes par e-mail (SMTP). |
|
|
Nom d’hôte local utilisé pour les requêtes par e-mail (SMTP). |
|
|
Nom du serveur SMTP sortant. À l’heure actuelle, les enregistrements MX ne sont pas traités. |
|
|
Champ « Objet » pour les demandes par e-mail (SMTP). |
|
|
Adresse de destination pour les demandes par e-mail (SMTP). Pour plusieurs adresses, utilisez plusieurs éléments <à>. |
|
Les éléments libcurl imitent étroitement les options utilisées par l’API C native libcurl dans la fonction de curl_easy_setopt()
libcurl. Une fois les options définies, un appel à curl_easy_perform()
effectue le transfert demandé. Pour plus d’informations sur cette curl_easy_setopt()
fonction, reportez-vous à la section http://curl.haxx.se/libcurl/c/curl_easy_setopt.html .
Dans la bibliothèque d’extensions libslax curl , les options de l’API libcurl sont représentées sous forme d’éléments individuels. Par exemple, l’élément <url>
est mappé à l’option CURLOPT_URL , l’élément <method>
est mappé à l’option CURLOPT_CUSTOMREQUEST, et ainsi de suite.
Ces éléments peuvent être utilisés de trois manières :
La
curl:single()
fonction d’extension prend en charge l’utilisation d’un ensemble d’options en une seule opération de transfert sans descripteur de connexion persistant.La
curl:perform()
fonction d’extension prend en charge l’utilisation d’un ensemble d’options avec un descripteur de connexion persistant. La poignée est renvoyée par la fonction d’extensioncurl:open()
et peut être fermée à l’aide de la fonction d’extensioncurl:close()
.La
curl:set()
fonction d’extension enregistre un ensemble d’options pour un descripteur de connexion et maintient ces options actives pendant toute la durée de vie de la connexion. Par exemple, si le script doit transférer un certain nombre de fichiers, il peut enregistrer les<username>
options et<password>
et éviter de les répéter à chaquecurl:perform()
appel.
curl :close
La curl:close()
fonction d’extension ferme une connexion ouverte. Il n’est pas possible d’effectuer d’autres opérations sur la connexion une fois celle-ci fermée.
La syntaxe est la suivante :
node-set[empty] curl:close(node-set[connection]);
L’argument est le descripteur de connexion à fermer.
curl :ouvert
La curl:open()
fonction d’extension ouvre une connexion à un serveur distant, permettant plusieurs opérations sur une seule connexion.
La syntaxe est la suivante :
node-set[connection] curl:open();
L’objet renvoyé est un descripteur de connexion qui peut être passé à curl:perform()
ou curl:close()
.
curl :perform
La curl:perform()
fonction d’extension effectue des transferts simples à l’aide d’un descripteur de connexion persistant fourni par curl:open()
.
La syntaxe est la suivante :
node-set[object] curl:perform(node-set[connection], node-set[options])
Les arguments sont le descripteur de connexion et un ensemble d’éléments d’option. Les éléments de bibliothèque d’extension curl pris en charge sont définis dans les Tableaux 3 et 4.
L’objet renvoyé est une hiérarchie XML contenant les résultats du transfert. Le tableau 5 énumère les éléments possibles dans la réponse, et le tableau 6 énumère les éléments possibles contenus dans l’élément <header>
.
Élément |
Contenu |
---|---|
|
Élément vide qui indique le succès |
|
Données analysées |
|
Texte du message d’erreur, le cas échéant |
|
Champs d’en-tête analysés |
|
Données brutes de la réponse |
|
Champs d’en-tête bruts de la réponse |
|
URL demandée |
Élément |
Contenu |
---|---|
|
Code de réponse HTTP |
|
Champ de réponse HTTP (avec @name et valeur) |
|
Message de réponse HTTP |
|
Chaîne de version de réponse HTTP |
L’exemple suivant montre l’élément avec les champs d’en-tête <header>
analysés en <field>
éléments :
<header> <version>HTTP/1.1</version> <code>404</code> <message>Not Found</message> <field name="Content-Type">text/html</field> <field name="Content-Length">345</field> <field name="Date">Mon, 08 Aug 2011 03:40:21 GMT</field> <field name="Server">lighttpd/1.4.28 juisebox</field> </header>
curl :set
La curl:set()
fonction d’extension enregistre un ensemble de paramètres qui persistent pendant toute la durée de vie d’une connexion.
La syntaxe est la suivante :
node-set[empty] curl:set(node-set[handle], node-set[options]);
Les arguments sont le descripteur de connexion et un ensemble d’éléments d’option. Les éléments de bibliothèque d’extension curl pris en charge sont définis dans les Tableaux 3 et 4.
curl :simple
La curl:single()
fonction d’extension effectue des opérations de transfert sans utiliser de connexion persistante.
La syntaxe est la suivante :
node-set[result] curl:single(node-set[options]);
La structure de l’objet renvoyé est identique à celle renvoyée par curl:perform()
. Reportez-vous à curl :perform pour plus d’informations.
Éléments de format pris en charge
À partir de la version 1.2 du langage SLAX, qui est prise en charge dans Junos OS version 14.2 et ultérieures, l’élément format
prend en charge deux nouveaux formats en plus de « html », « text » et « xml » : « name » et « url-encoded ». L’encodage « name » est utilisé pour les paires nom=valeur qui sont séparées par des sauts de ligne, tandis que l’encodage « url-encoded » est utilisé lorsque les paires nom=valeur sont séparées par une esperluette (&).
Les données analysées sont renvoyées dans l’élément, à l’aide d’éléments <data>
<name>
. Dans l’exemple suivant, format
est défini sur « url-encoded » :
<results> <url>http://api.example.com/request_token</url> <curl-success/> <raw-headers>HTTP/1.1 200 OK
 Server: XXXX
 Date: Tue, 18 Jun 2013 18:56:31 GMT
 Content-Type: application/x-www-form-urlencoded
 Transfer-Encoding: chunked
 Connection: keep-alive
 x-server-response-time: 69
 x-example-request-id: 123456
 pragma: no-cache
 cache-control: no-cache
 x-http-protocol: None
 x-frame-options: SAMEORIGIN
 X-RequestId: 12345
 
 </raw-headers> <headers> <version>HTTP/1.1</version> <code>200</code> <message>OK</message> <header name="Server">XXXXX</header> <header name="Date">Tue, 18 Jun 2013 18:56:31 GMT</header> <header name="Content-Type" >application/x-www-form-urlencoded</header> <header name="Transfer-Encoding">chunked</header> <header name="Connection">keep-alive</header> <header name="x-server-response-time">69</header> <header name="x-example-request-id">123456</header> <header name="pragma">no-cache</header> <header name="cache-control">no-cache</header> <header name="x-http-protocol">None</header> <header name="x-frame-options">SAMEORIGIN</header> <header name="X-RequestId">12345</header> </headers> <raw-data>oauth_token_secret=s&oauth_token=t</raw-data> <data format="url-encoded"> <name name="oauth_token_secret">s</name> <name name="oauth_token">t</name> </data> </results>
Exemples de curl
Les exemples suivants montrent des scripts SLAX qui utilisent les fonctions de bibliothèque d’extensions libslax curl
pour effectuer des opérations.
Le script SLAX suivant effectue une opération GET simple pour récupérer une page Web. Le script spécifie le champ d’en-tête de l’en-tête HTTP et un paramètre qui est incorporé dans l’URL demandée.
version 1.1; ns curl extension = "http://xml.libslax.org/curl"; param $url = "http://www.juniper.net"; match / { <op-script-results> { var $options = { <header name="client"> "slaxproc"; <param name="smokey"> "bandit"; } var $results = curl:single($url, $options); message "completed: " _ $results/headers/message; <curl> { copy-of $results; } } }
Le script SLAX suivant envoie un e-mail par le biais d’un serveur, qui est fourni en paramètre :
version 1.1; ns curl extension = "http://xml.libslax.org/curl"; param $server; match / { <out> { var $info = { <method> "email"; <server> $server; <from> "muffin@example.com"; <to> "phil@example.net"; <subject> "Testing..."; <contents> "Hello, This is an email. Thanks, Phil "; } var $res = curl:single($info); <res> { copy-of $res; } } }
Le script SLAX op suivant utilise les informations d’identification fournies pour se connecter et se connecter à une application Web :
version 1.2; ns curl extension = "http://xml.libslax.org/curl"; param $url = "http://198.51.100.10:4000/login"; param $username = "admin"; param $password = "password"; var $params := { <url> $url; <method> "post"; <insecure>; <param name="username"> $username; <param name="password"> $password; } main <top> { var $curl = curl:open(); var $data = curl:perform($curl, $params); copy-of $data; expr curl:close($curl); }
Vous pouvez utiliser Flask pour créer une application web simple afin de tester le script. Flask, qui est disponible sur PyPI, est un framework d’application Web WSGI (Web Server Gateway Interface) léger. Le script Python suivant de https://pythonspot.com/login-authentication-with-flask crée une application Web simple avec une page de connexion.
from flask import Flask from flask import Flask, flash, redirect, render_template, request, session, abort import os app = Flask(__name__) @app.route('/') def home(): if not session.get('logged_in'): return render_template('login.html') else: return "Hello Boss!" @app.route('/login', methods=['POST']) def do_admin_login(): if request.form['password'] == 'password' and request.form['username'] == 'admin': session['logged_in'] = True else: flash('wrong password!') return home() if __name__ == "__main__": app.secret_key = os.urandom(12) app.run(debug=True,host='0,0.0.0', port=4000)
Pour tester le script op, démarrez d’abord le script de l’application Web sur l’équipement distant.
user@nms:~$ python3 app.py * Serving Flask app "app" (lazy loading) ...
Activez et exécutez ensuite le script op sur le périphérique exécutant Junos OS. Les résultats sont consignés dans le fichier op-script.log .
user@router> op curl-test user@router> show log op-script.log | last 100 ... <?xml version="1.0"?> <top> <results> <url>http://198.51.100.10:4000/login</url> <curl-success/> <raw-headers>HTTP/1.0 200 OK
 Content-Type: text/html; charset=utf-8
 Content-Length: 11
 Vary: Cookie
 Set-Cookie: session=eyJsb2dnZWRfaW4iOnRydWV9.XzxdUg.wm2A58ct6twASerlHjuQ64nwaiI; HttpOnly; Path=/
 Server: Werkzeug/1.0.1 Python/3.6.9
 Date: Tue, 18 Aug 2020 22:59:30 GMT
 
 </raw-headers> <headers> <version>HTTP/1.0</version> <code>200</code> <message>OK</message> <header name="Content-Type">text/html; charset=utf-8</header> <header name="Content-Length">11</header> <header name="Vary">Cookie</header> <header name="Set-Cookie">session=eyJsb2dnZWRfaW4iOnRydWV9.XzxdUg.wm2A58ct6twASerlHjuQ64nwaiI; HttpOnly; Path=/</header> <header name="Server">Werkzeug/1.0.1 Python/3.6.9</header> <header name="Date">Tue, 18 Aug 2020 22:59:30 GMT</header> </headers> <raw-data>Hello Boss!</raw-data> </results>Aug 18 15:59:31 end dump </top> ...
Gestion des erreurs
À partir de la version 1.2 du langage SLAX, qui est prise en charge dans Junos OS version 14.2 et versions ultérieures, vous pouvez utiliser l’élément <errors>
pour contrôler la gestion des erreurs d’analyse HTML et XML. Le comportement par défaut est d’afficher les erreurs dans le flux de sortie d’erreur standard (stderr). En fournissant différentes valeurs pour l’élément <errors>
, vous pouvez également choisir d’ignorer, de consigner ou d’enregistrer l’erreur. Le tableau 7 répertorie les valeurs que vous pouvez utiliser pour l’élément errors
.
Valeur |
Comportement spécial |
---|---|
faire défaut |
Les erreurs s’affichent sur stderr |
ignorer |
Les erreurs sont ignorées |
rapport |
Les erreurs sont enregistrées (via slaxLog()) |
enregistrer |
Des erreurs sont enregistrées |
Lorsque la valeur de <errors>
est définie sur « record », toutes les erreurs apparaissent dans une chaîne sous l’élément <errors>
du nœud XML (comme renvoyé, par exemple par curl:perform
). Si aucune erreur n’est générée, l’élément n’est <errors>
pas présent, ce qui peut être utilisé comme test d’erreurs.
var $opt = { <url> $url; <format> "html"; <errors> "record"; } var $res = curl:single($opts); if ($res/errors) { terminate "failure: " _ $res/errors; }
Bibliothèque d’extensions de base de données libslax
La bibliothèque d’extensions de base de données libslax, qui est prise en charge dans Junos OS version 17.4R1 et ultérieure, permet aux scripts SLAX de stocker, manipuler, récupérer et supprimer les données stockées dans une base de données. Pour utiliser les fonctions de la bibliothèque d’extensions de base de données dans les scripts SLAX, incluez l’instruction d’espace de noms de cette bibliothèque dans le script.
ns db extension = "http://xml.libslax.org/db";
Le Tableau 8 récapitule les fonctions disponibles dans la bibliothèque d’extensions de base de données . Pour obtenir des exemples et des informations supplémentaires sur les fonctions d’extension de db , consultez Fonctions d’extension de db.
Fonction |
Description |
---|---|
|
Fermez la connexion à la base de données et libérez toutes les structures associées aux opérations précédentes effectuées sur ce handle. |
|
Créez une collection dans la base de données associée au descripteur de base de données ouvert à l’aide des informations de champ données. |
|
Supprimez les instances d’une collection qui correspondent aux conditions données dans la base de données associée au descripteur de base de données ouvert. |
|
Récupère une instance de résultat à l’aide du curseur renvoyé par un |
|
Renvoie un curseur sur le jeu de résultats pour les instances correspondant aux conditions données. |
|
Recherchez et lisez toutes les instances correspondant aux conditions données. |
|
Insérez des données dans une collection de la base de données associée au descripteur de base de données ouvert. |
|
Ouvrez une connexion à une base de données à l’aide des options fournies, notamment le moteur de base de données principal et le nom de la base de données. |
|
Exécutez une requête personnalisée. |
|
Mettez à jour un ensemble d’instances correspondant aux conditions données avec l’instance fournie. |
Le tableau 9 récapitule les éléments qui peuvent être utilisés dans les options et les données des fonctions d’extensions de base de données . Pour obtenir des exemples et des informations supplémentaires sur les éléments de base de données , consultez Éléments de base de données.
Élément |
Description |
Exemple |
---|---|---|
|
Spécifiez la collecte de données sur laquelle effectuer les opérations. Cela correspond à une table de base de données SQL. |
<collection> "employee"; |
|
Spécifiez une condition qui doit être satisfaite lors de l’utilisation d’instances de données à partir de la banque de données. Il s’agit de la condition utilisée avec la clause WHERE lors de l’utilisation d’une banque de données SQL. Les éléments obligatoires sont les suivants :
|
<condition> { <selector> "id; <operator> "in"; <value> "(1, 10)"; } |
|
Spécifiez plusieurs conditions avec |
<conditions> { <and> { <condition> { ... /* c1 */ } <condition> { ... /* c2 */ } <or> { <condition> { ... /* c3 */ } <condition> { ... /* c4 */ } } } } |
|
Spécifiez le nom de la base de données sur laquelle vous souhaitez opérer. |
<database> "test.db"; |
|
Spécifiez le moteur de base de données principal utilisé pour stocker les données et y accéder. |
<engine> "sqlite"; |
|
Définissez les métadonnées de chaque champ de la collection. |
<field> { <name> "name"; <type> "integer"; <primary>; } |
|
Spécifiez des métadonnées sur les champs d’une collection à l’aide d’éléments |
<fields> { <field> { ... } } |
|
Représente une seule instance dans une collection lors de l’insertion ou de la manipulation de données dans la banque de données. L’élément contient les champs et leurs valeurs correspondantes dans cet enregistrement. |
<instance> { <id> 5; <name> "John"; } |
|
Définissez plusieurs instances dans une collection lors de l’insertion ou de la manipulation de données dans la banque de données. |
<instances> { <instance> { ... ... } ... } |
|
Limitez le nombre d’instances qu’un résultat peut contenir. |
<limit> 10; |
|
Nœud de sortie renvoyé par la plupart des fonctions d’extension de base de données . Ce noeud contient un |
<result> { <status> { <ok> } } |
|
Spécifiez uniquement les champs qui doivent apparaître dans le jeu de résultats lors de l’interrogation de la banque de données. |
<retrieve> { <id>; <name>; } |
|
Ignorez un nombre spécifié d’instances dans le jeu de résultats avant de revenir à l’utilisateur. |
<skip> 5; |
|
Spécifiez les champs et l’ordre dans lequel le jeu de résultats doit être trié. Spécifiez les champs en incluant l’élément |
<sort> { <by> "id"; <by> "age"; <order> "desc"; } |
Bibliothèque d’extensions libslax OS
La bibliothèque d’extensions libslax os
fournit un ensemble de fonctions permettant d’appeler des opérations liées au système d’exploitation sur l’hôte local. Pour utiliser les fonctions de la os
bibliothèque d’extensions dans les scripts SLAX, incluez l’instruction de l’espace de noms de cette bibliothèque dans le script.
ns os extension = "http://xml.libslax.org/os";
Le Tableau 10 récapitule les fonctions disponibles dans la bibliothèque d’extensions du système d’exploitation. La valeur de retour de nombreuses os
fonctions d’extension est constituée d’un ensemble de zéro ou plusieurs nœuds d’erreur. Chaque nœud peut contenir un élément avec des <error>
éléments enfants supplémentaires. Pour obtenir des exemples et des informations supplémentaires sur os
les fonctions d’extension, consultez Fonctions d’extension du système d’exploitation.
Fonction |
Description |
Première version de Junos OS prise en charge |
---|---|---|
|
Modifiez les autorisations d’un ou plusieurs fichiers. |
17.4 |
|
Modifiez le propriétaire et le groupe de fichiers d’un ou de plusieurs fichiers. |
17.4 |
|
Définissez le code de sortie du processus exécutant le script. |
14.1 |
|
Créez un répertoire avec le nom, le chemin d’accès et les autorisations spécifiés. L’option |
14.1 |
|
Supprimer un fichier ou un répertoire vide. |
17.4 |
|
Renvoie des informations sur les fichiers et les répertoires d’un ensemble de nœuds d’éléments |
14.1 |
|
Renvoie un élément contenant des |
17.4 |
libslax xutil Extension Library
La bibliothèque d’extensions xutil libslax contient des fonctions de conversion entre les chaînes de caractères et les ensembles de nœuds XML. Pour incorporer des fonctions de la bibliothèque d’extensions xutil dans des scripts SLAX, incluez l’instruction d’espace de noms de cette bibliothèque dans le script.
ns xutil extension = "http://xml.libslax.org/xutil";
Appelez les fonctions d’extension xutil à l’aide du préfixe xutil et du nom de la fonction. Le Tableau 11 répertorie les fonctions disponibles dans la bibliothèque d’extensions xutil , qui sont prises en charge dans SLAX 1.1 et les scripts ultérieurs. Pour obtenir des exemples et des informations supplémentaires sur les fonctions d’extension xutil , consultez Fonctions d’extension xutil.
Fonction et arguments |
Description |
Première version de Junos OS prise en charge |
---|---|---|
|
Convertissez une chaîne contenant des données JSON en représentation native de ces données au format XML. |
14.2 |
|
Limitez la profondeur des appels récursifs. La limite par défaut est de 3000. |
14.1 |
|
Convertissez une chaîne contenant des données XML en une représentation native de ces données. |
12.2 |
|
Convertissez les données XML en une chaîne contenant des données JSON. Cette fonction encode les balises en tant qu’objets JSON à l’intérieur d’une chaîne. |
14.2 |
|
Convertissez les données XML en une chaîne de caractères. |
12.2 |