Il s'agit de la commande fai-class qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
fai-class - définit des classes à l'aide de fichiers et de scripts.
SYNOPSIS
classe fai [OPTION] ANNUAIRE FICHIER CLASSE
DESCRIPTION
Cette commande est uniquement appelée en interne par FAI et non directement par l'utilisateur.
fai-class exécute des scripts dans DIRECTORY pour définir des classes. Toutes les classes sont écrites à
CLASSFILE, chaque classe sur une ligne distincte. Utilisez des chemins absolus pour les deux arguments. Tous
les scripts ou exécutables correspondant à "^[0-9][0-9]*" (ils commencent par deux chiffres) sont exécutés
par ordre alphabétique. Ils peuvent définir des classes en écrivant les noms des classes sur
sortie standard. Les classes peuvent être séparées par des espaces ou écrites un sur une ligne. Toutes les lignes qui commencent
avec un "#" sont des lignes de commentaires et sont ignorées.
Les scripts shell qui se terminent par ".sh" sont sourcés et peuvent définir des classes en définissant la variable
$nouvelles classes. Ceci est utile pour les scripts où vous ne pouvez pas contrôler la sortie standard. Des variables qui
définis dans ces scripts sont disponibles pour d'autres scripts dans DIRECTORY, mais ils ne le sont pas
exporté vers le shell qui appelle fai-class. Ces scripts peuvent définir des variables en écrivant
définitions dans le fichier $LOGDIR/additional.var, qui sera sourcé dans ce qui suit
entrée.
Tous les scripts peuvent définir des classes supplémentaires en écrivant les classes dans le fichier
$LOGDIR/classes-additionnelles. Ces classes sont définies après l'exécution de tous les scripts. Cette
fichier temporaire sera supprimé après utilisation.
L'ordre des classes est important car il définit la priorité des classes de
de bas en haut. Tout d'abord, la classe DEFAULT est définie. Ensuite, tous les scripts sont exécutés pour définir
Des classes. Après cela, les classes du fichier $LOGDIR/additional-classes sont ajoutées. Puis,
toutes les classes du fichier avec le nom d'hôte sont ajoutées. Puis les classes définies par la variable
ADDCLASSES sont utilisés. Cette variable doit être une liste de classes séparées par des virgules. Vous pouvez
définir cette variable sur la ligne de commande du noyau.
Enfin, la classe avec le nom d'hôte et LAST sont définies.
Il est important que chaque ligne d'un fichier contenant un nom de classe se termine par une nouvelle ligne. Si la
la nouvelle ligne est manquante sur la dernière ligne d'un fichier, cette classe ne peut pas être ajoutée.
Le code de sortie de chaque script est écrit dans le fichier status.log dans LOGDIR.
OPTIONS
-d Créer une sortie de débogage.
-h Afficher l'aide, la version et le résumé des options.
-T Testez si les classes dans CLASSFILE sont définies plusieurs fois. Cela ne devrait jamais arriver.
Le test est exécuté une fois les classes définies.
-t rép.tmp
Le fichier additional-classes est lu depuis le répertoire tmpdir. La valeur par défaut est
/tmp/fai/.
-v Créez une sortie détaillée.
EXEMPLES
Dans FAI, fai-class est utilisé de la manière suivante :
# fai-classe /fai/classe /tmp/fai/FAI_CLASSES
Ensuite, la liste de toutes les classes est affectée aux classes variables.
classes=`chat /tmp/fai/FAI_CLASSES`
EXEMPLES POUR ÉCRITURES
Voici le script 01alias :
#! / Bin / sh
catnc() { # chat mais pas de lignes de commentaires
grep -v "^#" $1
}
# architecture d'écho en majuscule
dpkg --print-architecture | tr /az/ /AZ/
uname -s | tr /az/ /AZ/
# tous les hôtes nommés ant ?? utiliser les classes dans le fichier anthill
case $HOSTNAME dans
fourmi ??) catnc fourmilière ;;
Esac
# un cluster Beowulf ; tous les nœuds sauf le nœud maître
# utiliser les classes du fichier class/atoms
case $HOSTNAME dans
atom00) echo BEOWULF_MASTER ;;
atome??) catnc atomes ;;
Esac
# si l'hôte appartient au sous-réseau de classe C 123.45.6.0, utilisez la classe NET_6
cas $IPADDR dans
123.45.6.*) écho NET_6 ;;
Esac
Un autre exemple:
Le script 24nis :
#! / Bin / sh
# ajouter NIS et le nom de domaine NIS si YPDOMAIN est défini
if [ -n "$YPDOMAIN" ];alors
echo "NIS $YPDOMAIN" | tr /.az-/ /_A-Z_/
d'autre
écho NONIS
fi
Vous pouvez définir des classes sur la ligne de commande du noyau en ajoutant ceci au noyau :
AJOUTERCLASSES=CLASS1,CLASSX,CLASS3
NOTES
Tous les noms de classe doivent être écrits en majuscules (à l'exception de la classe du nom d'hôte).
N'utilisez pas de tiret, utilisez un trait de soulignement. Seuls les scripts exécutables dans DIRECTORY sont utilisés.
CLASSFILE est supprimé avant d'y écrire. Les scripts ne doivent pas écrire directement dans CLASSFILE.
LOGDIR ne doit pas être accessible en écriture à tout le monde.
Utilisez fai-class en ligne en utilisant les services onworks.net