|
|
|
@ -19,20 +19,20 @@ |
|
|
|
|
* 1 - Fichiers temporaires |
|
|
|
|
* 2 - Nom des exécutables |
|
|
|
|
* V - Description et usage des bibliothèques |
|
|
|
|
* 1 - fct_message |
|
|
|
|
* 2 - fct_affiche_ligne |
|
|
|
|
* 3 - fct_erreur |
|
|
|
|
* 4 - fct_unique_exec |
|
|
|
|
* 5 - fct_libere_exec |
|
|
|
|
* 6 - fct_usage |
|
|
|
|
* 7 - fct_rotation |
|
|
|
|
* 1 - fct\_message |
|
|
|
|
* 2 - fct\_affiche\_ligne |
|
|
|
|
* 3 - fct\_erreur |
|
|
|
|
* 4 - fct\_unique\_exec |
|
|
|
|
* 5 - fct\_libere\_exec |
|
|
|
|
* 6 - fct\_usage |
|
|
|
|
* 7 - fct\_rotation |
|
|
|
|
* 8 - fctpath |
|
|
|
|
* 9 - fct_params |
|
|
|
|
* 9 - fct\_params |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## I - Arborescence du socle |
|
|
|
|
|
|
|
|
|
La racine des dossiers utilisée par le Socle Bash est définie par la variable d'environement NC_EXPL_ROOT. |
|
|
|
|
La racine des dossiers utilisée par le Socle Bash est définie par la variable d'environement NC\_EXPL\_ROOT. |
|
|
|
|
Cette dernière est initialisée à la connexion par l'appel au script /etc/profile.d/tetalab.sh |
|
|
|
|
Cette arborescence est utilisée pour tous scripts Bash ainsi que les variables d'environement qui |
|
|
|
|
en découlent. |
|
|
|
@ -66,15 +66,15 @@ par tous les scripts, mais elles ne sont pas modifiables. |
|
|
|
|
|
|
|
|
|
Les variables de session sont définies à l'execution d'un script et lui sont propres. |
|
|
|
|
Cependent certaines d'entre elles sont transmises aux scripts enfants: |
|
|
|
|
- SH_SESSION_ID, SH_FICLOG, SH_FICCPT, SH_RETENTION_CPT, SH_RETENTION_LOG, SH_NIV_DEBUG, SH_SILENCE, SH_AFF_SID |
|
|
|
|
- SH\_SESSION\_ID, SH\_FICLOG, SH\_FICCPT, SH\_RETENTION\_CPT, SH\_RETENTION\_LOG, SH\_NIV\_DEBUG, SH\_SILENCE, SH\_AFF\_SID |
|
|
|
|
|
|
|
|
|
Les variables de session sont modifiable à 2 niveaux. De facon global dans le fichier "init.conf" ou pour un script |
|
|
|
|
particulier dans le fichier ${NC_EXPL_CFG}/<Nom_du_script>.conf. |
|
|
|
|
particulier dans le fichier ${NC\_EXPL\_CFG}/<Nom\_du\_script>.conf. |
|
|
|
|
|
|
|
|
|
La valeur définie dans "init.conf" sera utlisée sauf si elle a été surchargée dans le fichier de configuration du |
|
|
|
|
script. |
|
|
|
|
|
|
|
|
|
Il y a cependant une spécificite pour SH_RETENTION_CPT et SH_RETENTION_LOG: |
|
|
|
|
Il y a cependant une spécificite pour SH\_RETENTION\_CPT et SH\_RETENTION\_LOG: |
|
|
|
|
- ces variables sont definies une et une seule fois lors de la première initialisation. Ce qui signinfie qu'un |
|
|
|
|
script qui aurait surchargé ces variables, ignorera l'initialisation de ces variable si il est appelé par un |
|
|
|
|
autre script. |
|
|
|
@ -102,8 +102,8 @@ Il y a cependant une spécificite pour SH_RETENTION_CPT et SH_RETENTION_LOG: |
|
|
|
|
| NC_EXPL_SRVBATCH | Nom du serveur Batch | |
|
|
|
|
+-------------------+----------------------------+ |
|
|
|
|
|
|
|
|
|
Les variables NC_EXPL_ROOT, EXPL_ROOT et NC_EXPL_SRVBATCH sont définies dans le fichier "tetalab.sh" |
|
|
|
|
Les autres variables NC_* sont définies dans le fichier "profile_init.env" |
|
|
|
|
Les variables NC\_EXPL\_ROOT, EXPL\_ROOT et NC\_EXPL\_SRVBATCH sont définies dans le fichier "tetalab.sh" |
|
|
|
|
Les autres variables NC\_* sont définies dans le fichier "profile\_init.env" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 2 - Variables de session |
|
|
|
@ -131,14 +131,13 @@ Cette liste n'est pas exhaustive, seules les principales variables sont citées. |
|
|
|
|
| SH_RETENTION_LOG | Vaut 8 par défaut. Duree de rétention en jours des fichiers de traces | |
|
|
|
|
+--------------------+-------------------------------------------------------------------------------+ |
|
|
|
|
|
|
|
|
|
Remarque : Les variables SH_SILENCE et SH_NIV_DEBUG sont controlées par les options "-s" et "-dbg" |
|
|
|
|
Remarque : Les variables SH\_SILENCE et SH\_NIV\_DEBUG sont controlées par les options "-s" et "-dbg" |
|
|
|
|
si la gestion des options a été activée. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## III - Utilisation du socle bash |
|
|
|
|
|
|
|
|
|
Cette partie decrit sommairmement les quelques regles d usage pour ecrire un script Bash sous le socle DTSI |
|
|
|
|
Ceci ne concerne pas les script Ruby qui ne sont pas pris en charge par le socle decrit ici. |
|
|
|
|
Cette partie décrit sommairement les quelques règles d'usage pour écrire un script Bash avec le socle. |
|
|
|
|
|
|
|
|
|
### 1 - Cartouche |
|
|
|
|
|
|
|
|
@ -189,7 +188,7 @@ Les scripts doivent commencer par le cartouche ci-dessous : |
|
|
|
|
| | |
|
|
|
|
+----------------------------------------------------------------------------------------------------+ |
|
|
|
|
|
|
|
|
|
Note : Les lignes commençant par 2 "#" sont utilisees pour generer l'aide, leur maintient est donc nécéssaire |
|
|
|
|
Note : Les lignes commençant par 2 "#" sont utilisées pour générer l'aide, leur maintient est donc nécéssaire |
|
|
|
|
pour garantir la fiabilité de l'information. Ce sont ces lignes, qui sont lues lors de l'utilisation de |
|
|
|
|
l'option par defaut "-h". |
|
|
|
|
|
|
|
|
@ -233,12 +232,13 @@ La déclaration est réalisée dans le paragraphe "Liste des options et argument |
|
|
|
|
option est identifiée par l'entête de ligne "# @OPT:" suivi de la description. |
|
|
|
|
|
|
|
|
|
La description consiste en une liste de paramètres séparés par ":" |
|
|
|
|
<type>:<nom>:<var>:<nb_arg>:<def_val>:<OptE>:<OptI>:<ctl_val> |
|
|
|
|
<type>:<nom>:<var>:<nb\_arg>:<def\_val>:<OptE>:<OptI>:<ctl\_val> |
|
|
|
|
|
|
|
|
|
L'ordre des paramètre est figé et tous doivent etre présents. |
|
|
|
|
|
|
|
|
|
8 champs sont obligatoires, soit 7 caracteres ":" (on ne compte pas le caracatere ":" suivant @OPT). |
|
|
|
|
Exemple de déclaration valide : |
|
|
|
|
|
|
|
|
|
# @OPT: fb:h::0::: |
|
|
|
|
# @OPT: fb:s::0::: |
|
|
|
|
# @OPT: f:dbg:SH_NIV_DEBUG:0/1::: |
|
|
|
@ -247,58 +247,58 @@ Exemple de déclaration valide : |
|
|
|
|
# @OPT: oM:i:G_INSTANCE:1/1:ALL:dbid: |
|
|
|
|
# @OPT: oM:pr:G_PR_NOM:1/1:sq,t,l: |
|
|
|
|
|
|
|
|
|
* <type> : Propriété de l'attribu défini par l'aggrégation des lettres suivantes: |
|
|
|
|
* f -> Option falcultative |
|
|
|
|
* b -> Booléen |
|
|
|
|
* o -> Option obligatoire |
|
|
|
|
* M -> Argument transformé en majuscule |
|
|
|
|
* <type> : Propriété de l'attribu défini par l'aggrégation des lettres suivantes: |
|
|
|
|
* f -> Option falcultative |
|
|
|
|
* b -> Booléen |
|
|
|
|
* o -> Option obligatoire |
|
|
|
|
* M -> Argument transformé en majuscule |
|
|
|
|
|
|
|
|
|
* <nom> : nom de l'option (sans le tiret). Attention le nom de l'option est sensible à la casse. |
|
|
|
|
* <nom> : nom de l'option (sans le tiret). Attention le nom de l'option est sensible à la casse. |
|
|
|
|
|
|
|
|
|
* <var> : nom de la variable dans laquelle sera stockée le(s) argument(s) |
|
|
|
|
* <var> : nom de la variable dans laquelle sera stockée le(s) argument(s) |
|
|
|
|
si plusieurs arguments alors un tableau sera initialisé <var[n]> |
|
|
|
|
L'index [n] commence à zero. |
|
|
|
|
Le nombre d'arguments éffectivement passés a la commande est "${#<var>[*]}". |
|
|
|
|
La valeur max de l'index [n] est "${#<var>[*]} - 1". |
|
|
|
|
|
|
|
|
|
* <nb_arg> : nombre d'arguments attendus de la forme "min/max", "min/", "max" ou "" |
|
|
|
|
* <nb\_arg> : nombre d'arguments attendus de la forme "min/max", "min/", "max" ou "" |
|
|
|
|
si vide ou "0" alors l'option est booléene. |
|
|
|
|
la forme "min/" considere le nombre max non determiné (infini) |
|
|
|
|
|
|
|
|
|
* <def_val> : Valeur par défaut assignée à <var> |
|
|
|
|
Fonctionne si <nb_arg> vaut 0/1 1/1 |
|
|
|
|
* <def\_val> : Valeur par défaut assignée à <var> |
|
|
|
|
Fonctionne si <nb\_arg> vaut 0/1 1/1 |
|
|
|
|
|
|
|
|
|
* <OptE> : Liste des options mutellement exclusives séparées par une virgule. |
|
|
|
|
* <OptE> : Liste des options mutellement exclusives séparées par une virgule. |
|
|
|
|
|
|
|
|
|
* <OptI> : Liste des options inclusives séparées par une virgule. |
|
|
|
|
* <OptI> : Liste des options inclusives séparées par une virgule. |
|
|
|
|
|
|
|
|
|
Lors de l'initialisation les marqueurs "@OPT" sont lues et analysées. |
|
|
|
|
Le résultat est comparé aux arguments et options sousmis au script |
|
|
|
|
et les variables suivantes son initialisées ... |
|
|
|
|
|
|
|
|
|
* SH_OPTION_<nom> : Initialisée à "1" (Vrai) ou "0" (Faux) selon que l'option est respectivement utilisée ou non. |
|
|
|
|
* SH\_OPTION\_<nom> : Initialisée à "1" (Vrai) ou "0" (Faux) selon que l'option est respectivement utilisée ou non. |
|
|
|
|
Il existe toujours une variable par option déclarée. Ceci concerne aussi les options par défaut géré par la bibliothèque params.lib |
|
|
|
|
|
|
|
|
|
* SH_ARG_<nom> : Cette variable existe uniquement si le champ <var> est null et si le type n'est pas booleen. |
|
|
|
|
Par défaut elle est initialisée à null ou avec la valeur <def_val> |
|
|
|
|
Si le champ <var> est renseigné, alors SH_ARG_<nom> est remplacée pas <var>. |
|
|
|
|
Si l'option associée peut prendre plusieurs arguments, alors les variables SH_ARG_<nom> ou <var> sont des tableaux dont l'index commence a zéro. |
|
|
|
|
La taille du tableau peut etre récuperée via ${#SH_ARG_<nom>[*]} ou ${#<var>[*]}. |
|
|
|
|
* SH\_ARG\_<nom> : Cette variable existe uniquement si le champ <var> est null et si le type n'est pas booléen. |
|
|
|
|
Par défaut elle est initialisée à null ou avec la valeur <def\_val> |
|
|
|
|
Si le champ <var> est renseigné, alors SH\_ARG\_<nom> est remplacée pas <var>. |
|
|
|
|
Si l'option associée peut prendre plusieurs arguments, alors les variables SH\_ARG\_<nom> ou <var> sont des tableaux dont l'index commence a zéro. |
|
|
|
|
La taille du tableau peut etre récuperée via ${#SH\_ARG\_<nom>[*]} ou ${#<var>[*]}. |
|
|
|
|
|
|
|
|
|
Les option -h, -s, -log [id], -hist [N] et -dbg N sont prises en charge automatiquement. Ces noms sont donc reservées. |
|
|
|
|
Les options -h, -s, -log [id], -hist [N] et -dbg N sont prises en charge automatiquement. Ces noms sont donc reservées. |
|
|
|
|
|
|
|
|
|
Les options par défaut réalisent les actions suivantes : |
|
|
|
|
|
|
|
|
|
-h : Affiche l aide du script (Ligne du cartouche qui commence par "##") |
|
|
|
|
-h : Affiche l'aide du script (Ligne du cartouche qui commence par "##") |
|
|
|
|
-s : Mode silence. Plus d'affichage sur le terminal. |
|
|
|
|
Initialise la variable SH_SILENCE a "oui" |
|
|
|
|
-log [id] : Affiche le dernier journal ou le journal "id" (identifiant de session d'execution). |
|
|
|
|
-log [id] : Affiche le dernier journal ou le journal "id" (identifiant de session d'exécution). |
|
|
|
|
-cpt [id] : Affiche le dernier compte-rendu ou le Compte-rendu "id" (identifiant de session d'execution). |
|
|
|
|
-hist [N] : Affiche l historique des "N" dernieres executions (N=10 par dafaut) |
|
|
|
|
-dbg N : Activation du mode debug au niveau "N". Active les messages geres par la librairie fct_message |
|
|
|
|
dont l'option -debug est utilisee. |
|
|
|
|
-hist [N] : Affiche l'historique des "N" dernières executions (N=10 par défaut) |
|
|
|
|
-dbg N : Activation du mode debug au niveau "N". Active les messages gérés par la librairie fct_message |
|
|
|
|
dont l'option -debug est utilisée. |
|
|
|
|
|
|
|
|
|
- Arguments : La declaration des argument du script n est pas obligatoire |
|
|
|
|
* Arguments : La declaration des argument du script n'est pas obligatoire |
|
|
|
|
|
|
|
|
|
Attention : Si aucune option "@OPT:" n est declaree alors il n y auras pas de prise en charge des arguments. |
|
|
|
|
Si votre script ne necessite pas d option, mais qu il presente des arguments, alors il faudras declarer |
|
|
|
@ -310,7 +310,7 @@ Les options par défaut réalisent les actions suivantes : |
|
|
|
|
(Si plusieurs lignes avec le marqueur @ARG existe, alors seul la premiere et prise en compte) |
|
|
|
|
|
|
|
|
|
La description consiste en une liste de parametres separes par ":" |
|
|
|
|
<type>:<var>:<nb_arg>:<def_val>:<ctl_val> |
|
|
|
|
<type>:<var>:<nb\_arg>:<def\_val>:<ctl\_val> |
|
|
|
|
|
|
|
|
|
L ordre des parametres est fige et tous doivent etre presents. |
|
|
|
|
|
|
|
|
@ -325,14 +325,14 @@ Les options par défaut réalisent les actions suivantes : |
|
|
|
|
Le nombre d arguments effectivement passes a la commande est "${#<var>[*]}". |
|
|
|
|
L valeur max de l index [n] est "${#<var>[*]} - 1". |
|
|
|
|
|
|
|
|
|
Si <var> n est pas renseigne alors la variable SH_ARGS[] est initialisee |
|
|
|
|
Si <var> n est pas renseigne alors la variable SH\_ARGS[] est initialisee |
|
|
|
|
|
|
|
|
|
<nb_arg> : nombre d arguments attendus de la forme "min/max", "min/", "max" ou "". |
|
|
|
|
<nb\_arg> : nombre d arguments attendus de la forme "min/max", "min/", "max" ou "". |
|
|
|
|
si vide alors on considere que le nombre d arguments est a minima de 1. |
|
|
|
|
la forme "min/" considere le nombre est a minima de "min". |
|
|
|
|
|
|
|
|
|
<def_val>: Valeur par defaut assignee a <var> |
|
|
|
|
Fonctionne si <nb_arg> vaut 0/1 1/1 |
|
|
|
|
<def\_val>: Valeur par defaut assignee a <var> |
|
|
|
|
Fonctionne si <nb\_arg> vaut 0/1 1/1 |
|
|
|
|
|
|
|
|
|
ATTENTION |
|
|
|
|
Si le caractere "&" est present dans la valeur d un argument, alors cette valeur doit etre encadree |
|
|
|
@ -373,9 +373,9 @@ ATTENTION |
|
|
|
|
2 - Initialisation du socle. |
|
|
|
|
Par defaut les librairies du socle sont chargees a la connexion. Mais pour qu elles puissent etre operationnelles |
|
|
|
|
il faut initialiser les variables de session. |
|
|
|
|
Ceci est realise en sourcant le fichier "${NC_EXPL_CFG}/init.conf" au debut du script : |
|
|
|
|
Ceci est realise en sourcant le fichier "${NC\_EXPL\_CFG}/init.conf" au debut du script : |
|
|
|
|
|
|
|
|
|
Rem : L analyse des options et arguments est aussi realise par "${NC_EXPL_CFG}/init.conf". |
|
|
|
|
Rem : L analyse des options et arguments est aussi realise par "${NC\_EXPL\_CFG}/init.conf". |
|
|
|
|
|
|
|
|
|
+----------------------------------------------------------------------------------------------------+ |
|
|
|
|
| | |
|
|
|
@ -388,13 +388,13 @@ ATTENTION |
|
|
|
|
| #----------------------------------------------------------------------------- | |
|
|
|
|
| # Initialisation de l environement | |
|
|
|
|
| #----------------------------------------------------------------------------- | |
|
|
|
|
| if [ ! -f ${NC_EXPL_CFG}/init.conf ] | |
|
|
|
|
| if [ ! -f ${NC\_EXPL\_CFG}/init.conf ] | |
|
|
|
|
| then | |
|
|
|
|
| echo "Fichier d initialisation du socle \${NC_EXPL_CFG}/init.conf n existe pas !" | |
|
|
|
|
| echo "Fichier d initialisation du socle \${NC\_EXPL\_CFG}/init.conf n existe pas !" | |
|
|
|
|
| echo "Arret du script par securite" | |
|
|
|
|
| exit 250 | |
|
|
|
|
| else | |
|
|
|
|
| . ${NC_EXPL_CFG}/init.conf | |
|
|
|
|
| . ${NC\_EXPL\_CFG}/init.conf | |
|
|
|
|
| fi | |
|
|
|
|
| . | |
|
|
|
|
| . | |
|
|
|
@ -416,25 +416,25 @@ ATTENTION |
|
|
|
|
| #----------------------------------------------------------------------------- | |
|
|
|
|
| # Initialisation de l environement | |
|
|
|
|
| #----------------------------------------------------------------------------- | |
|
|
|
|
| if [ ! -f ${NC_EXPL_CFG}/init.conf ] | |
|
|
|
|
| if [ ! -f ${NC\_EXPL\_CFG}/init.conf ] | |
|
|
|
|
| then | |
|
|
|
|
| echo "Fichier d initialisation du socle \${NC_EXPL_CFG}/init.conf n existe pas !" | |
|
|
|
|
| echo "Fichier d initialisation du socle \${NC\_EXPL\_CFG}/init.conf n existe pas !" | |
|
|
|
|
| echo "Arret du script par securite" | |
|
|
|
|
| exit 250 | |
|
|
|
|
| else | |
|
|
|
|
| . ${NC_EXPL_CFG}/init.conf | |
|
|
|
|
| . ${NC\_EXPL\_CFG}/init.conf | |
|
|
|
|
| fi | |
|
|
|
|
| | |
|
|
|
|
| #----------------------------------------------------------------------------- | |
|
|
|
|
| # Definition des fonctions | |
|
|
|
|
| #----------------------------------------------------------------------------- | |
|
|
|
|
| # | |
|
|
|
|
| function fct_un | |
|
|
|
|
| function fct\_un | |
|
|
|
|
| { ... <Code fonction> | |
|
|
|
|
| } | |
|
|
|
|
| | |
|
|
|
|
| #----------------------------------------------------------------------------- | |
|
|
|
|
| function fct_deux | |
|
|
|
|
| function fct\_deux | |
|
|
|
|
| { ... | |
|
|
|
|
| } | |
|
|
|
|
| | |
|
|
|
@ -442,12 +442,12 @@ ATTENTION |
|
|
|
|
| # Programme principal MAIN | |
|
|
|
|
| #----------------------------------------------------------------------------- | |
|
|
|
|
| # | |
|
|
|
|
| fct_message "${SH_PROG}" | |
|
|
|
|
| fct_message "version ${SH_PROG_VERSION}" | |
|
|
|
|
| fct\_message "${SH\_PROG}" | |
|
|
|
|
| fct\_message "version ${SH\_PROG\_VERSION}" | |
|
|
|
|
| | |
|
|
|
|
| # -- Initialisation des variables par defaut | |
|
|
|
|
| # -- --------------------------------------- | |
|
|
|
|
| G_VAR1=${G_AVR1:="Valeur par defaut"} # <Comentaire> | |
|
|
|
|
| G\_VAR1=${G\_AVR1:="Valeur par defaut"} # <Comentaire> | |
|
|
|
|
| ... | |
|
|
|
|
| | |
|
|
|
|
| # -- Control de coherence des options | |
|
|
|
@ -458,33 +458,33 @@ ATTENTION |
|
|
|
|
| | |
|
|
|
|
| < ... Code du script ...> | |
|
|
|
|
| | |
|
|
|
|
| fct_erreur 0 | |
|
|
|
|
| fct\_erreur 0 | |
|
|
|
|
| | |
|
|
|
|
+----------------------------------------------------------------------------------------------------+ |
|
|
|
|
|
|
|
|
|
Note : La construction /G_VAR1=${G_AVR1:="Valeur par defaut"}/ permet de definir une variable avec une |
|
|
|
|
valeur par defaut, qui peut etre surchargee dans le fichier de configuration {NC_EXPL_CFG}/<Nom_du_script>.conf |
|
|
|
|
Note : La construction /G\_VAR1=${G\_AVR1:="Valeur par defaut"}/ permet de definir une variable avec une |
|
|
|
|
valeur par defaut, qui peut etre surchargee dans le fichier de configuration {NC\_EXPL\_CFG}/<Nom\_du\_script>.conf |
|
|
|
|
|
|
|
|
|
Concernant les fonctions /fct_message/ et /fct_erreur/ voir le chapitre V. |
|
|
|
|
Concernant les fonctions /fct\_message/ et /fct\_erreur/ voir le chapitre V. |
|
|
|
|
|
|
|
|
|
4 - Actions realisees au lancement d un script |
|
|
|
|
Le script commence par le chargement de la configuration ". ${NC_EXPL_CFG}/init.conf" |
|
|
|
|
Le script commence par le chargement de la configuration ". ${NC\_EXPL\_CFG}/init.conf" |
|
|
|
|
un certain nombre d action sont effectuees par defaut en plus de l initialisation des variables de session. |
|
|
|
|
|
|
|
|
|
- Initialisation des variables de session (Cf. II.3) |
|
|
|
|
|
|
|
|
|
- Generation d'un numero de session unique sous la varable ${SH_SESSION_ID} |
|
|
|
|
- Generation d'un numero de session unique sous la varable ${SH\_SESSION\_ID} |
|
|
|
|
|
|
|
|
|
- Chargement du fichier ${SH_FICCFG} |
|
|
|
|
- Chargement du fichier ${SH\_FICCFG} |
|
|
|
|
|
|
|
|
|
- Rotation des fichiers ${SH_FICLOG} et ${SH_FICCPT} selon les retentions respective ${SH_RETENTION_LOG} et ${SH_RETENTION_CPT} |
|
|
|
|
- Rotation des fichiers ${SH\_FICLOG} et ${SH\_FICCPT} selon les retentions respective ${SH\_RETENTION\_LOG} et ${SH\_RETENTION\_CPT} |
|
|
|
|
|
|
|
|
|
- Purge des fichiers temporaires (${NC_EXP_ROOT}/tmp) anterieurs selon la retentions ${SH_RETENTION_LOG} |
|
|
|
|
et suppression des fichiers generes par le script utilsant le socle dans ${NC_EXP_ROOT}/log et ${NC_EXP_ROOT}/cpt |
|
|
|
|
- Purge des fichiers temporaires (${NC\_EXP\_ROOT}/tmp) anterieurs selon la retentions ${SH\_RETENTION\_LOG} |
|
|
|
|
et suppression des fichiers generes par le script utilsant le socle dans ${NC\_EXP\_ROOT}/log et ${NC\_EXP\_ROOT}/cpt |
|
|
|
|
|
|
|
|
|
- Ecriture dans le fichier ${SH_FICTRC} de la date de debut execution, ainsi que des arguments passes au script |
|
|
|
|
- Ecriture dans le fichier ${SH\_FICTRC} de la date de debut execution, ainsi que des arguments passes au script |
|
|
|
|
|
|
|
|
|
- Initialisation du fichier ${SH_FICLOG} a vide |
|
|
|
|
- Initialisation du fichier ${SH\_FICLOG} a vide |
|
|
|
|
|
|
|
|
|
- Analyse des parametres passes au script |
|
|
|
|
Cette analyse ne fonctionne que si les options ont ete declarees dans l entete du script (Cf. III.1.1.2) |
|
|
|
@ -494,16 +494,16 @@ ATTENTION |
|
|
|
|
IV - Nomenclature |
|
|
|
|
------------ |
|
|
|
|
1 - Fichier temporaire |
|
|
|
|
Les fichiers temporaires doivent etre ecrits dans le repertoire ${NC_EXPL_TMP}. |
|
|
|
|
Les noms des fichiers temporaires sont de le forme : <Libre>_${SH_SESSION_ID}.tmp |
|
|
|
|
Les fichiers temporaires doivent etre ecrits dans le repertoire ${NC\_EXPL\_TMP}. |
|
|
|
|
Les noms des fichiers temporaires sont de le forme : <Libre>\_${SH\_SESSION\_ID}.tmp |
|
|
|
|
De cette facon il seront geres par le socle (Suppresion automatique) |
|
|
|
|
|
|
|
|
|
2 - Nom des executables ( fichiers du dossier {racine}/bin ) |
|
|
|
|
Les noms des fichiers doit etre de la forme : |
|
|
|
|
<pre>_<descr> |
|
|
|
|
<pre>_<descr>.<language> |
|
|
|
|
<pre>_<app_source>_<app_dest>[_<libre>].<language> |
|
|
|
|
<app>_<descr>.<language> |
|
|
|
|
<pre>\_<descr> |
|
|
|
|
<pre>\_<descr>.<language> |
|
|
|
|
<pre>\_<app\_source>\_<app\_dest>[\_<libre>].<language> |
|
|
|
|
<app>\_<descr>.<language> |
|
|
|
|
|
|
|
|
|
<pre> est une des valeurs suivantes : "sys", "dba", "exp", "ctl", "aud", "int" |
|
|
|
|
|
|
|
|
@ -517,7 +517,7 @@ IV - Nomenclature |
|
|
|
|
modifier le systeme dans le cadres de traitements reccurents. |
|
|
|
|
Leurs execution est de risque modere, comme respecter une date d execution. |
|
|
|
|
Il sont reserves a l exploitation systeme uniquement. Dans le cas d un traitement |
|
|
|
|
reccurrent pour le compte d une application le nom doit etre de la forme <app>_<descr>.<language> |
|
|
|
|
reccurrent pour le compte d une application le nom doit etre de la forme <app>\_<descr>.<language> |
|
|
|
|
|
|
|
|
|
- "int" : Script dedier aux interfaces entre applications |
|
|
|
|
Ces script doivent fair l objet d une attention particuliere car il peuvent modifier |
|
|
|
@ -541,17 +541,17 @@ IV - Nomenclature |
|
|
|
|
|
|
|
|
|
V - Description et usage des Librairies |
|
|
|
|
----------------------------------- |
|
|
|
|
1 - fct_message |
|
|
|
|
1 - fct\_message |
|
|
|
|
--- ----------- |
|
|
|
|
|
|
|
|
|
Syntaxe : fct_message [-cpt] [-hist] [-nolog] [-debug N] [-color Couleur] "<Message a ecrire>" |
|
|
|
|
Syntaxe : fct\_message [-cpt] [-hist] [-nolog] [-debug N] [-color Couleur] "<Message a ecrire>" |
|
|
|
|
Usage : Cette fonction est a utiliser en remplacement de la commande "echo". |
|
|
|
|
Elle ajoute l horadatage au message et gere la ventilation des ecritures dans les differents fichiers de traces. |
|
|
|
|
|
|
|
|
|
Fonction : Par defaut le message est affiche sur le terminal et est ecrit dans le fichier journal ${NC_EXPL_LOG}/<nom_du_script>.log |
|
|
|
|
Fonction : Par defaut le message est affiche sur le terminal et est ecrit dans le fichier journal ${NC\_EXPL\_LOG}/<nom\_du\_script>.log |
|
|
|
|
Les options modifient la destination de l ecriture : |
|
|
|
|
- cpt : Ecrit en plus du journal dans le fichier de compte-rendu ${NC_EXPL_CPT}/<nom_du_script>.cpt |
|
|
|
|
- hist : Ecrit uniquement dans le fichier d historique des executions ${NC_EXPL_TRC}/<nom_du_script>.hist |
|
|
|
|
- cpt : Ecrit en plus du journal dans le fichier de compte-rendu ${NC\_EXPL\_CPT}/<nom\_du\_script>.cpt |
|
|
|
|
- hist : Ecrit uniquement dans le fichier d historique des executions ${NC\_EXPL\_TRC}/<nom\_du\_script>.hist |
|
|
|
|
- nolog : inhibe l ecritutre dans le fichier journal |
|
|
|
|
- debug N : N'affiche pas le message sur le terminal mais uniquement dans le fichier journal, a condition |
|
|
|
|
que le script soit execute en mode debug de niveau equivalent a "N" via l'option "-dbg N". |
|
|
|
@ -560,11 +560,11 @@ V - Description et usage des Librairies |
|
|
|
|
- color : Affiche le message en couleur. Les couleurs reconues sont : vert,rouge,bleu,cyan,jaune,orange,blanc et noir |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 - fct_affiche_ligne |
|
|
|
|
2 - fct\_affiche\_ligne |
|
|
|
|
--- ----------------- |
|
|
|
|
|
|
|
|
|
Syntaxe : fct_affiche_ligne [entete|pied] <elements> |
|
|
|
|
Usage : Affiche un tableau sur la sortie standard et dans le fichier compte-rendu ${NC_EXPL_ROOT}/<script>.cpt |
|
|
|
|
Syntaxe : fct\_affiche\_ligne [entete|pied] <elements> |
|
|
|
|
Usage : Affiche un tableau sur la sortie standard et dans le fichier compte-rendu ${NC\_EXPL\_ROOT}/<script>.cpt |
|
|
|
|
|
|
|
|
|
Fonction : 3 etapes sont necessaires pour creer un tableau : |
|
|
|
|
- Definition du tableau |
|
|
|
@ -575,29 +575,29 @@ V - Description et usage des Librairies |
|
|
|
|
Il n est pas possible d imbriquer des tableaux. |
|
|
|
|
|
|
|
|
|
- Definition |
|
|
|
|
Elle realise par l appel de la fonction fct_affiche_ligne avec l argument entete la forme est alors la suivante : |
|
|
|
|
Elle realise par l appel de la fonction fct\_affiche\_ligne avec l argument entete la forme est alors la suivante : |
|
|
|
|
|
|
|
|
|
fct_affiche_ligne entete "{Titre}" "{Colonne_1},{Taille_1}" "{Colonne_2},{Taille_2}" "{Colonne_3},{Taille_3}" "{Colonne_4},{Taille_4}" ... |
|
|
|
|
fct\_affiche\_ligne entete "{Titre}" "{Colonne\_1},{Taille\_1}" "{Colonne\_2},{Taille\_2}" "{Colonne\_3},{Taille\_3}" "{Colonne\_4},{Taille\_4}" ... |
|
|
|
|
|
|
|
|
|
ou bien |
|
|
|
|
fct_affiche_ligne entete "{Titre}" "Groupe1({Colonne_1},{Taille_1}:{Colonne_2},{Taille_2})" "{Colonne_3},{Taille_3}" "{Colonne_4},{Taille_4}" "Groupe2({Colonne_4},{Taille_4}:...)" |
|
|
|
|
fct\_affiche\_ligne entete "{Titre}" "Groupe1({Colonne\_1},{Taille\_1}:{Colonne\_2},{Taille\_2})" "{Colonne\_3},{Taille\_3}" "{Colonne\_4},{Taille\_4}" "Groupe2({Colonne\_4},{Taille\_4}:...)" |
|
|
|
|
|
|
|
|
|
- Affichage des elements |
|
|
|
|
|
|
|
|
|
fct_affiche_ligne "<Element1>" "<Element2>" ... |
|
|
|
|
fct\_affiche\_ligne "<Element1>" "<Element2>" ... |
|
|
|
|
|
|
|
|
|
- Fermeture du tableau |
|
|
|
|
Cette action permet de liberer les variables de session qui ont ete crees |
|
|
|
|
|
|
|
|
|
fct_affiche_ligne pied |
|
|
|
|
fct\_affiche\_ligne pied |
|
|
|
|
|
|
|
|
|
Exemple ... |
|
|
|
|
|
|
|
|
|
+ |
|
|
|
|
| fct_affiche_ligne entete "Un tableau" "C1,10" "C2,10" "c3,10" |
|
|
|
|
| fct_affiche_ligne A B C |
|
|
|
|
| fct_affiche_ligne 1 "" 3 |
|
|
|
|
| fct_affiche_ligne pied |
|
|
|
|
| fct\_affiche\_ligne entete "Un tableau" "C1,10" "C2,10" "c3,10" |
|
|
|
|
| fct\_affiche\_ligne A B C |
|
|
|
|
| fct\_affiche\_ligne 1 "" 3 |
|
|
|
|
| fct\_affiche\_ligne pied |
|
|
|
|
| |
|
|
|
|
+ |
|
|
|
|
| -------------------------------------- |
|
|
|
@ -611,10 +611,10 @@ V - Description et usage des Librairies |
|
|
|
|
+ |
|
|
|
|
|
|
|
|
|
+ |
|
|
|
|
| fct_affiche_ligne entete "Un Autre tableau" "C1,10" "G1(C2,20:C3,10:C4,3)" "C5,15" |
|
|
|
|
| fct_affiche_ligne A B C D E |
|
|
|
|
| fct_affiche_ligne 1 "" 3 3 4 |
|
|
|
|
| fct_affiche_ligne pied |
|
|
|
|
| fct\_affiche\_ligne entete "Un Autre tableau" "C1,10" "G1(C2,20:C3,10:C4,3)" "C5,15" |
|
|
|
|
| fct\_affiche\_ligne A B C D E |
|
|
|
|
| fct\_affiche\_ligne 1 "" 3 3 4 |
|
|
|
|
| fct\_affiche\_ligne pied |
|
|
|
|
| |
|
|
|
|
+ |
|
|
|
|
| ------------------------------------------------------------------------ |
|
|
|
@ -629,14 +629,14 @@ V - Description et usage des Librairies |
|
|
|
|
| ------------------------------------------------------------------------ |
|
|
|
|
+ |
|
|
|
|
|
|
|
|
|
3 - fct_erreur |
|
|
|
|
3 - fct\_erreur |
|
|
|
|
--- ---------- |
|
|
|
|
|
|
|
|
|
Syntaxe : fct_erreur <N> |
|
|
|
|
Syntaxe : fct\_erreur <N> |
|
|
|
|
Usage : Gestion des erreurs d un script |
|
|
|
|
|
|
|
|
|
Fonction : Cette fonction doit etre appelee pour sortir d un script du socle. |
|
|
|
|
Elle affiche le message d erreur associe au code qui est lu dans le fichier ${NC_EXPL_MSG}/<script>.msg |
|
|
|
|
Elle affiche le message d erreur associe au code qui est lu dans le fichier ${NC\_EXPL\_MSG}/<script>.msg |
|
|
|
|
Elle execute eventuellement une fonction rattachee, specifiee dans ce meme fichier. |
|
|
|
|
Elle ferme les fichiers de traces, supprime les fichiers temporaires, libere les semaphores et |
|
|
|
|
renvoi un code retour au script appelant. |
|
|
|
@ -644,12 +644,12 @@ V - Description et usage des Librairies |
|
|
|
|
N est un entier positif dont les valeurs suivantes sont reservees : |
|
|
|
|
|
|
|
|
|
0 : Fin normale du script |
|
|
|
|
250 : <lib:fct_erreur> Appel de la librairie sans le numero d erreur (<N> non renseigne !) |
|
|
|
|
251 : <lib:fct_erreur> La description de l erreur <N> n existe pas dans le fichier <script>.msg |
|
|
|
|
252 : <lib:fct_erreur> Le fichier <script>.msg n existe pas |
|
|
|
|
253 : <lib:fct_erreur> La description de l erreur dans le fichier <script>.msg est incorrecte |
|
|
|
|
254 : <lib:fct_params> Erreur a ete remontee par la librairie |
|
|
|
|
255 : <lib:fct_erreur> Appel de la librairie avec un numero d erreur >= 250 |
|
|
|
|
250 : <lib:fct\_erreur> Appel de la librairie sans le numero d erreur (<N> non renseigne !) |
|
|
|
|
251 : <lib:fct\_erreur> La description de l erreur <N> n existe pas dans le fichier <script>.msg |
|
|
|
|
252 : <lib:fct\_erreur> Le fichier <script>.msg n existe pas |
|
|
|
|
253 : <lib:fct\_erreur> La description de l erreur dans le fichier <script>.msg est incorrecte |
|
|
|
|
254 : <lib:fct\_params> Erreur a ete remontee par la librairie |
|
|
|
|
255 : <lib:fct\_erreur> Appel de la librairie avec un numero d erreur >= 250 |
|
|
|
|
256 : reserve pur un futur usage |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -675,35 +675,35 @@ V - Description et usage des Librairies |
|
|
|
|
<message> : Message a afficher (dans les traces et sur la sortie standard) |
|
|
|
|
Ce champs peut contenir des variables qui seront valorisees. |
|
|
|
|
|
|
|
|
|
4 - fct_unique_exec |
|
|
|
|
4 - fct\_unique\_exec |
|
|
|
|
--- --------------- |
|
|
|
|
|
|
|
|
|
Syntaxe : fct_unique_exec [<nom>] [<Occurences>] |
|
|
|
|
Syntaxe : fct\_unique\_exec [<nom>] [<Occurences>] |
|
|
|
|
Usage : Empeche l execution multiple d un code par la l'acquisition de semaphore |
|
|
|
|
|
|
|
|
|
Fonction : |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 - fct_libere_exec |
|
|
|
|
5 - fct\_libere\_exec |
|
|
|
|
--- --------------- |
|
|
|
|
|
|
|
|
|
Syntaxe : fct_libere_exec [<nom>] |
|
|
|
|
Syntaxe : fct\_libere\_exec [<nom>] |
|
|
|
|
Usage : Libere les semaphores |
|
|
|
|
|
|
|
|
|
Fonction : |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 - fct_usage |
|
|
|
|
6 - fct\_usage |
|
|
|
|
--- --------- |
|
|
|
|
|
|
|
|
|
Syntaxe : fct_usage |
|
|
|
|
Syntaxe : fct\_usage |
|
|
|
|
Usage : Affiche l aide du script. |
|
|
|
|
Ce sont les lignes du cartouche commencant par "##" |
|
|
|
|
|
|
|
|
|
Fonction : Cette fonction est uniquement a usage interne du socle. |
|
|
|
|
Elle est integree a la fonction fct_params. |
|
|
|
|
Elle est integree a la fonction fct\_params. |
|
|
|
|
|
|
|
|
|
7 - fct_rotation |
|
|
|
|
7 - fct\_rotation |
|
|
|
|
--- ------------ |
|
|
|
|
|
|
|
|
|
Syntaxe : |
|
|
|
@ -720,14 +720,14 @@ V - Description et usage des Librairies |
|
|
|
|
|
|
|
|
|
Fonction : |
|
|
|
|
|
|
|
|
|
9 - fct_params |
|
|
|
|
9 - fct\_params |
|
|
|
|
--- ---------- |
|
|
|
|
|
|
|
|
|
Syntaxe : fct_params |
|
|
|
|
Syntaxe : fct\_params |
|
|
|
|
Usage : Gestion des options et arguments du script |
|
|
|
|
|
|
|
|
|
Fonction : Cette fonction est uniquement a usage interne du socle. |
|
|
|
|
Elle est appelee a l initialisation des variables de session lors du chargement du fichier ${NC_EXPL_CFG}/init.conf |
|
|
|
|
Elle est appelee a l initialisation des variables de session lors du chargement du fichier ${NC\_EXPL\_CFG}/init.conf |
|
|
|
|
Cette fonction extrait les lignes de declaration "# OPT:" et les compare au arguments sousmis au script |
|
|
|
|
Pour plus d information voir le paragraphe III-1.1.2 |
|
|
|
|
|
|
|
|
@ -737,30 +737,30 @@ V - Deploiement via puppet |
|
|
|
|
--- ----------------- |
|
|
|
|
Exemple : |
|
|
|
|
|
|
|
|
|
script_core_dtsi::file_bin_bash: |
|
|
|
|
'aud_process_swap.sh': |
|
|
|
|
source: 'puppet:///modules/script_core_dtsi/bin/aud_process_swap.sh' |
|
|
|
|
script\_core\_dtsi::file\_bin\_bash: |
|
|
|
|
'aud\_process\_swap.sh': |
|
|
|
|
source: 'puppet:///modules/script\_core\_dtsi/bin/aud\_process\_swap.sh' |
|
|
|
|
|
|
|
|
|
2 - Fichier de conf avec Hiera |
|
|
|
|
--- -------------------------- |
|
|
|
|
Exemple : |
|
|
|
|
|
|
|
|
|
script_core_dtsi::file_conf_bash: |
|
|
|
|
aud_process_swap.conf: |
|
|
|
|
source: 'puppet:///modules/script_core_dtsi/conf/aud_process_swap.conf' |
|
|
|
|
script\_core\_dtsi::file\_conf\_bash: |
|
|
|
|
aud\_process\_swap.conf: |
|
|
|
|
source: 'puppet:///modules/script\_core\_dtsi/conf/aud\_process\_swap.conf' |
|
|
|
|
|
|
|
|
|
3 - Fichier de conf construit depuis un script avec Hiera |
|
|
|
|
--- ----------------------------------------------------- |
|
|
|
|
Exemple : |
|
|
|
|
|
|
|
|
|
script_core_dtsi::file_conf_hiera::aud_process_swap: |
|
|
|
|
script\_core\_dtsi::file\_conf\_hiera::aud\_process\_swap: |
|
|
|
|
directives1: "conf1" |
|
|
|
|
|
|
|
|
|
4 - fichier de message avec Hiera |
|
|
|
|
--- ------------------------------ |
|
|
|
|
Exemple : |
|
|
|
|
|
|
|
|
|
script_core_dtsi::msg_errors_hiera::aud_process_swap: |
|
|
|
|
script\_core\_dtsi::msg\_errors\_hiera::aud\_process\_swap: |
|
|
|
|
1: 'erreur | stop | message N 1' |
|
|
|
|
2: 'alert | continu | message N 2' |
|
|
|
|
|
|
|
|
@ -768,16 +768,16 @@ script_core_dtsi::msg_errors_hiera::aud_process_swap: |
|
|
|
|
--- -------------------------- |
|
|
|
|
Exemple : |
|
|
|
|
|
|
|
|
|
script_core_dtsi::file_mod: |
|
|
|
|
aud_process_swap.mod: |
|
|
|
|
source: 'puppet:///modules/script_core_dtsi/mod/aud_process_swap.mod' |
|
|
|
|
script\_core\_dtsi::file\_mod: |
|
|
|
|
aud\_process\_swap.mod: |
|
|
|
|
source: 'puppet:///modules/script\_core\_dtsi/mod/aud\_process\_swap.mod' |
|
|
|
|
|
|
|
|
|
6 - Fichier SQL avec Hiera |
|
|
|
|
--- ---------------------- |
|
|
|
|
Exemple : |
|
|
|
|
|
|
|
|
|
script_core_dtsi::is_bdd: true |
|
|
|
|
script\_core\_dtsi::is\_bdd: true |
|
|
|
|
|
|
|
|
|
script_core_dtsi::file_sql: |
|
|
|
|
aud_process_swap.sql: |
|
|
|
|
source: 'puppet:///modules/script_core_dtsi/sql/aud_process_swap.sql' |
|
|
|
|
script\_core\_dtsi::file\_sql: |
|
|
|
|
aud\_process\_swap.sql: |
|
|
|
|
source: 'puppet:///modules/script\_core\_dtsi/sql/aud\_process\_swap.sql' |
|
|
|
|