Questo è il comando fai-class che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
fai-class: definisce le classi utilizzando file e script.
SINOSSI
classe fai [OPZIONE] DIRECTORY FILE DI CLASSE
DESCRIZIONE
Questo comando viene chiamato solo internamente dal FAI e non direttamente dall'utente.
fai-class esegue gli script in DIRECTORY per definire le classi. Tutte le classi sono scritte
CLASSFILE, ogni classe su una riga separata. Utilizza percorsi assoluti per entrambi gli argomenti. Tutto
vengono eseguiti gli script o gli eseguibili che corrispondono a "^[0-9][0-9]*" (iniziano con due cifre)
in ordine alfabetico. Possono definire le classi scrivendo i nomi delle classi
stdout. Le classi possono essere separate da spazi o scritte una su una riga. Tutte le linee che iniziano
con un "#" sono righe di commento e vengono ignorate.
Gli script di shell che terminano con ".sh" vengono originati e possono definire classi impostando la variabile
$nuoveclassi. Ciò è utile per gli script in cui non è possibile controllare stdout. Variabili che lo sono
definiti in questi script sono disponibili per altri script in DIRECTORY, ma non lo sono
esportato nella shell che chiama fai-class. Questi script possono definire le variabili scrivendo
definizioni nel file $LOGDIR/additional.var, che verrà ricavato di seguito
compito.
Tutti gli script possono definire classi aggiuntive scrivendo le classi nel file
$LOGDIR/classi-aggiuntive. Queste classi vengono definite dopo l'esecuzione di tutti gli script. Questo
il file temporaneo verrà rimosso dopo l'uso.
L'ordine delle classi è importante perché definisce la priorità delle classi da
dal basso all'alto. Innanzitutto viene definita la classe DEFAULT. Quindi tutti gli script vengono eseguiti per definire
classi. Successivamente vengono aggiunte le classi dal file $LOGDIR/additional-classes. Poi,
vengono aggiunte tutte le classi nel file con il nome host. Quindi classi definite dalla variabile
Vengono utilizzati ADDCLASSES. Questa variabile deve essere un elenco di classi separate da virgole. Puoi
definire questa variabile sulla riga di comando del kernel.
Infine viene definita la classe con l'hostname e LAST.
È importante che ogni riga in un file contenente il nome di una classe termini con un ritorno a capo. Se la
manca una nuova riga nell'ultima riga di un file, questa classe non può essere aggiunta.
Il codice di uscita di ogni script viene scritto nel file status.log in LOGDIR.
VERSIONI
-d Crea output di debug.
-h Mostra la guida, la versione e il riepilogo delle opzioni.
-T Verifica se le classi in CLASSFILE sono definite più volte. Questo non dovrebbe mai accadere.
Il test viene eseguito dopo aver definito le classi.
-t tmp è
Il file external-classes viene letto dalla directory tmpdir. Il valore predefinito è
/tmp/fai/.
-v Crea un output dettagliato.
ESEMPI
In FAI, fai-class viene utilizzato nel modo seguente:
# fai-class /fai/class /tmp/fai/FAI_CLASSES
Quindi l'elenco di tutte le classi viene assegnato alle classi variabili.
classi=`cat /tmp/fai/FAI_CLASSES`
ESEMPI PER SCRIPT
Questo è lo script 01alias:
#! /bin/sh
catnc() { # cat ma nessuna riga di commento
grep -v "^#" $1
}
# eco architettura in maiuscolo
dpkg --print-architettura | tr /az/ /AZ/
uname -s | tr /az/ /AZ/
# tutti gli host si chiamano formica?? utilizzare le classi nel file formicaio
caso $HOSTNAME in
formica??) catnc formicaio ;;
che C
# un ammasso Beowulf; tutti i nodi tranne il nodo master
# usa le classi dal file class/atom
caso $HOSTNAME in
atom00) echo BEOWULF_MASTER ;;
atomo??) catnc atomi ;;
che C
# se l'host appartiene alla sottorete di classe C 123.45.6.0 usa la classe NET_6
caso $IPADDR in
123.45.6.*) echo NET_6 ;;
che C
Un altro esempio:
La sceneggiatura 24nis:
#! /bin/sh
# aggiungi NIS e il nome del dominio NIS se è definito YPDOMAIN
if [ -n "$YPDOMAIN" ];allora
echo "NIS $YPDOMAIN" | tr /.az-/ /_A-Z_/
altro
eco NONIS
fi
Puoi definire le classi sulla riga di comando del kernel aggiungendo questo al kernel:
AGGIUNGICLASSI=CLASSE1,CLASSX,CLASSE3
NOTE
Tutti i nomi delle classi dovrebbero essere scritti in lettere maiuscole (eccetto la classe del nome host).
Non usare un trattino, usa un trattino basso. Vengono utilizzati solo gli script eseguibili in DIRECTORY.
CLASSFILE viene rimosso prima di scrivervi. Gli script non dovrebbero scrivere direttamente su CLASSFILE.
LOGDIR non dovrebbe essere scrivibile per tutti.
Utilizza fai-class online utilizzando i servizi onworks.net