Dies ist der Befehl fai-class, der im kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows Online-Emulator oder MAC OS Online-Emulator ausgeführt werden kann.
PROGRAMM:
NAME/FUNKTION
fai-class – Definieren Sie Klassen mithilfe von Dateien und Skripten.
ZUSAMMENFASSUNG
FAI-Klasse [OPTION] DIRECTORY KLASSENDATEI
BESCHREIBUNG
Dieser Befehl wird nur intern von FAI und nicht direkt vom Benutzer aufgerufen.
fai-class führt Skripte im DIRECTORY aus, um Klassen zu definieren. Alle Klassen werden in
CLASSFILE, jede Klasse in einer eigenen Zeile. Verwenden Sie absolute Pfade für beide Argumente. Alle
Skripte oder ausführbare Dateien, die mit "^[0-9][0-9]*" übereinstimmen (sie beginnen mit zwei Ziffern), werden ausgeführt
in alphabetischer Reihenfolge. Sie können Klassen definieren, indem Sie die Namen der Klassen in
stdout. Klassen können durch Leerzeichen getrennt oder einzeln in einer Zeile geschrieben werden. Alle Zeilen, die beginnen
mit einem "#" sind Kommentarzeilen und werden ignoriert.
Shell-Skripte, die auf ".sh" enden, werden als Quelle verwendet und können Klassen definieren, indem sie die Variable
$newclasses. Dies ist nützlich für Skripte, bei denen Sie stdout nicht steuern können. Variablen, die
Die in diesen Skripten definierten Funktionen stehen anderen Skripten in DIRECTORY zur Verfügung, sind jedoch nicht
exportiert in die Shell, die fai-class aufruft. Diese Skripte können Variablen definieren, indem sie
Definitionen in die Datei $LOGDIR/additional.var, die im Folgenden eingebunden wird
Aufgabe.
Alle Skripte können zusätzliche Klassen definieren, indem sie die Klassen in die Datei schreiben
$LOGDIR/additional-classes. Diese Klassen werden definiert, nachdem alle Skripte ausgeführt wurden. Dies
Die temporäre Datei wird nach der Verwendung entfernt.
Die Reihenfolge der Klassen ist wichtig, da sie die Priorität der Klassen von
von niedrig nach hoch. Zuerst wird die Klasse DEFAULT definiert. Anschließend werden alle Skripte ausgeführt, um
Klassen. Anschließend werden die Klassen aus der Datei $LOGDIR/additional-classes hinzugefügt. Dann
Alle Klassen in der Datei mit dem Hostnamen werden hinzugefügt. Anschließend werden Klassen hinzugefügt, die durch die Variable
ADDCLASSES werden verwendet. Diese Variable muss eine durch Kommas getrennte Liste von Klassen sein. Sie können
Definieren Sie diese Variable in der Kernel-Befehlszeile.
Abschließend wird die Klasse mit dem Hostnamen und LAST definiert.
Es ist wichtig, dass jede Zeile in einer Datei, die einen Klassennamen enthält, mit einem Zeilenumbruch endet. Wenn die
Wenn in der letzten Zeile einer Datei ein Zeilenumbruch fehlt, kann diese Klasse nicht hinzugefügt werden.
Der Exitcode jedes Skripts wird in die Datei status.log in LOGDIR geschrieben.
OPTIONAL
-d Erstellen Sie eine Debugging-Ausgabe.
-h Hilfe, Version und Zusammenfassung der Optionen anzeigen.
-T Prüfen Sie, ob Klassen in CLASSFILE mehrfach definiert sind. Dies sollte nie passieren.
Der Test wird ausgeführt, nachdem die Klassen definiert wurden.
-t tmpdir
Die Datei additional-classes wird aus dem Verzeichnis tmpdir gelesen. Der Standardwert ist
/tmp/fai/.
-v Erstellen Sie eine ausführliche Ausgabe.
Beispiele:
In FAI wird die FAI-Klasse folgendermaßen verwendet:
# fai-Klasse /fai/Klasse /tmp/fai/FAI_CLASSES
Anschließend wird die Liste aller Klassen der Variable „classes“ zugewiesen.
Klassen = `cat /tmp/fai/FAI_CLASSES`
Beispiele: FÜR SKRIPTE
Dies ist das Skript 01alias:
#! / Bin / sh
catnc() { # cat, aber keine Kommentarzeilen
grep -v "^#" $1
}
# Echo-Architektur in Großbuchstaben
dpkg --print-architecture | tr /az/ /AZ/
uname -s | tr /az/ /AZ/
# alle Hosts mit dem Namen Ant?? verwenden die Klassen in der Datei Anthill
Fall $HOSTNAME in
Ameise??) catnc Ameisenhaufen ;;
esac
# ein Beowulf-Cluster; alle Knoten außer dem Masterknoten
# Klassen aus der Datei class/atoms verwenden
Fall $HOSTNAME in
atom00) echo BEOWULF_MASTER ;;
Atom??) catnc-Atome ;;
esac
# wenn der Host zum Subnetz der Klasse C 123.45.6.0 gehört, verwenden Sie die Klasse NET_6
Fall $IPADDR in
123.45.6.*) echo NET_6 ;;
esac
Ein weiteres BEISPIEL:
Das Skript 24nis:
#! / Bin / sh
# NIS und den NIS-Domänennamen hinzufügen, wenn YPDOMAIN definiert ist
wenn [ -n "$YPDOMAIN" ];dann
echo "NIS $YPDOMAIN" | tr /.az-/ /_A-Z_/
sonst
echo NONIS
fi
Sie können Klassen in der Kernel-Befehlszeile definieren, indem Sie Folgendes an den Kernel anhängen:
ADDCLASSES=KLASSE1,KLASSEX,KLASSE3
ANMERKUNG
Alle Klassennamen sollten in Großbuchstaben geschrieben werden (außer der Klasse des Hostnamens).
Verwenden Sie keinen Bindestrich, sondern einen Unterstrich. Es werden nur ausführbare Skripte im VERZEICHNIS verwendet.
CLASSFILE wird vor dem Schreiben entfernt. Skripte sollten nicht direkt in CLASSFILE schreiben.
LOGDIR sollte nicht für jeden beschreibbar sein.
Nutzen Sie fai-class online mit den Diensten von onworks.net
