Installation und Handhabung
Nach der Installation des Pakets luci-app-commands (ggf. nach Neustart) steht unter System ein neuer Eintrag "Benutzerdefinierte Kommandos" im LuCi-Backend (für tiefergehende Informationen und Varianten der Paketinstallation verweise ich auf das OpenWrt-Wiki).Der neue Unterpunkt ist wiederum in Übersicht und Konfigurieren unterteilt. Letzterer wird benötigt um zunächst einen Befehl zu hinterlegen. In diesem Beispiel wollen wir uns den verbleibenden Speicherplatz des Systems anzeigen lassen:
df -h
.- Entsprechend tragen wir im ersten Feld einen sinnvollen, doch kurzen Namen ein, etwa "freier Speicherplatz".
- Im zweiten Feld steht der Befehl, hier "df -h". Die Standardbefehle stehen im Suchpfad und können direkt angesprochen werden. Bei eigenen Scripts muss das Verzeichnis mit genannt werden, z.B. "/meinOrdner/scripte/meinScript".
- Die Checkbox bei Argument bleibt in diesem Beispiel frei.
Nach dem Speichern und Anwenden können wir unser Werk in der Übersicht betrachten und auch Ausführen. Die Ausgabe erscheint umgehend und direkt unterhalb. Alternativ erhalten wir mit Herunterladen die Ausgabe als Textdatei.
Eigene Erweiterung: config-Dateien auflisten
Am Beispiel des Scripts "configList" soll die Verwendung eigener Scripts und die Handhabung von Argumenten gezeigt werden. Das Listing ist am Ende des Artikels zu finden.Linux/Unix Systeme pflegen üblicherweise ihre Konfigurationen innerhalb des Ordners /etc in diversen Dateien und Ordnern. Um die Konfiguration zu zentralisieren und zu vereinheitlichen setzt OpenWrt das UCI (Unified Configuration Interface) ein und hält die wesentlichen Konfigurationsdateien mit einer einheitlichen Syntax im Ordner /etc/config vor.
Für ein komfortables Auflisten dieser Dateien hat der Autor ein Script configList erstellt. Das Script kennt zwei angehängte Parameter, Und zwar "
configList all
" was eine meist sehr lange Liste aller config-Dateien ausgibt oder "configList <config-Dateiname>
" wobei der Dateiname für ein Datei aus dem Verzeichnis /etc/config steht. Diese Namen werden aufgelistet wenn das Script ohne ein Argument aufgerufen wird. Soweit das Verhalten wenn das Skript in einer Shell-Umgebung, beispielsweise via SSH oder Telnet, ausgeführt wird.Befüllen wir nun eine zweite Zeile im Bereich Konfigurieren:
- Name: "show config's [filename|all]" enthält einen Hinweis auf mögliche Argumente
- Befehl: "/root/bin/configList". Zu Beachten ist das das Script im benannten Verzeichnis gespeichert ist und ausführbar sein muss (siehe chmod).
- Argumente: Das Häkchen setzen
Listing: configList
#!/bin/sh # Zeigt Inhalt der Config-Dateien # Shell oder LUci-Backend # Version 1.4 ## Funktion: listparam() { ls -1 /etc/config/ echo -e " Benutze <Name> als Parameter \n oder Parameter <all>" } if [ "$1" = "" ]; then echo -e "\n Folgende Config-Dateien gefunden:" listparam exit 0 fi if [ "$1" = "all" ]; then for i in $(ls -1 /etc/config/); do echo -e "\n______\n### $i ###"; cat /etc/config/$i done exit 0 fi if [ ! -f /etc/config/$1 ]; then echo -e "\n FEHLER! Datei nicht gefunden!" listparam exit 1 else echo -e "\n______\n### $1 ###"; cat /etc/config/$1 fi exit 0
Nettes, nützliches Script. Danke.
AntwortenLöschen