"Conversion README en markdown"

This commit is contained in:
Doug Le Tough 2017-07-21 11:37:57 +02:00
parent cbdb3a85ce
commit 5619851f8b

172
README.md
View File

@ -1,11 +1,10 @@
# Aide memoire pour l'écriture de script Bash sous le socle bash
# Aide memoire pour l'écriture de scripts avec le socle bash
* Sommaire
* I - Arborescence du socle
* II - Variables d'environement
* 1 - Variables globales
* 2 - Variables globales spécifiques
* 3 - Variables de session
* 2 - Variables de session
* III - Utilisation du socle bash
* 1 - Cartouche
* 1.1 Élements du cartouche
@ -38,107 +37,102 @@ Cette dernière est initialisée à la connexion par l'appel au script /etc/prof
Cette arborescence est utilisée pour tous scripts Bash ainsi que les variables d'environement qui
en découlent.
Sous l'arborescence ${NC_EXPL_ROOT} on trouve les dossiers suivants :
Sous l'arborescence ${NC_EXPL_ROOT} on trouve les dossiers suivants :
+-----------------+-----------------------------------------------------------------------------------------------+
| Dossier | Description |
+-----------------+-----------------------------------------------------------------------------------------------+
| {Racine}/bin | Contient les binaires (scripts Bash et Ruby, eventuellement C) |
| {Racine}/conf | Contient les fichiers de configuration des scripts, ainsi que du socle |
| {Racine}/cpt | Contient les fichiers de comtpe rendu generes par les script (purge auto , 8 jours par defaut)|
| {Racine}/dat | Contient les fichiers de donnees geres par les scripts |
| {Racine}/hist | Contient l historique d execution des scripts (pas de purge) |
| {Racine}/lib | Contient les librairies charge a la connexion par le socle |
| {Racine}/log | Contient les fichiers de logs d execution des scripts (purge auto , 8 jours par defaut ) |
| {Racine}/man | Contient les fichiers d aide des scripts pour l utilitaire "man" |
| {Racine}/mod | Contient les fichiers modeles a usage des scripts |
| {Racine}/msg | Contient les fichiers de message pour les scripts pour la librairie "fct_erreur" |
| {Racine}/tmp | Continet les fichiers temporaires des scripts du socle |
+-----------------+-----------------------------------------------------------------------------------------------+
+-----------------+-----------------------------------------------------------------------------------------------+
| Dossier | Description |
+-----------------+-----------------------------------------------------------------------------------------------+
| {Racine}/bin | Contient les binaires (scripts Bash) |
| {Racine}/conf | Contient les fichiers de configuration des scripts, ainsi que du socle |
| {Racine}/cpt | Contient les fichiers de comtpe-rendus génerés par les script (purge auto, 8 jours par défaut)|
| {Racine}/dat | Contient les fichiers de données gérés par les scripts |
| {Racine}/hist | Contient l'historique d'exécution des scripts (pas de purge) |
| {Racine}/lib | Contient les bibliothèques chargées par le socle |
| {Racine}/log | Contient les fichiers de logs d exécution des scripts (purge auto , 8 jours par défaut ) |
| {Racine}/man | Contient les fichiers d'aide des scripts pour l'utilitaire "man" |
| {Racine}/mod | Contient les fichiers modèles (templates) à usage des scripts |
| {Racine}/msg | Contient les fichiers de messages des scripts utilisés par la bibliothèque "fct_erreur" |
| {Racine}/tmp | Contient les fichiers temporaires des scripts |
+-----------------+-----------------------------------------------------------------------------------------------+
Note : Sous chaque dossier vous trouverez un fichier texte lisezmoi.txt decrivant l usage du repertoire.
Note : Sous chaque dossier vous trouverez un fichier texte lisezmoi.txt decrivant l'usage du répertoire.
II - Variables d environement
------------------------
## II - Variables d'environement
Le socle utilise deux groupes de variables. Le premier dit "global" le second "de session".
Sauf si explicite, les variables globales sont definies et exportees a la connexion. Elles sont donc utilisables
par tous les scripts, mais elles ne sont pas modifiables.
Le socle utilise deux groupes de variables. Le premier dit "global" le second "de session".
Sauf si explicite, les variables globales sont définies et exportées à la connexion. Elles sont donc utilisables
par tous les scripts, mais elles ne sont pas modifiables.
Les variables de session sont definies a l'execution d un script et lui sont propre.
Cependent certaines d entre elles sont transmises au script enfant
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
Les variables de session sont modifiable a 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. La valeur definit dans "init.conf" seras utlisee sauf
si elle as ete surchargee dans le fichier de configuration du script.
Il y a cependant une specificite pour SH_RETENTION_CPT et SH_RETENTION_LOG, ces variables sont defini une et une seul fois
lors de la premiere initialisation. Ce qui signinfie qu'un script qui aurait surcharge ces variables, ignorera l initialisation
de ces variable si il est appeler par un autre script.
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.
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:
- 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.
1 - Variables globales generals
+-------------------+----------------------------+
| Nom | Usage |
+-------------------+----------------------------+
| NC_EXPL_ROOT | Racine /opt/expl |
| EXPL_ROOT | Alias pour NC_EXPL_ROOT |
| NC_EXPL_BIN | Pointe vers {Racine}/bin |
| NC_EXPL_CFG | Pointe vers {Racine}/conf |
| NC_EXPL_CPT | Pointe vers {Racine}/cpt |
| NC_EXPL_DAT | Pointe vers {Racine}/dat |
| NC_EXPL_HST | Pointe vers {Racine}/hist |
| NC_EXPL_LIB | Pointe vers {Racine}/lib |
| NC_EXPL_LOG | Pointe vers {Racine}/log |
| NC_EXPL_MAN | Pointe vers {Racine}/man |
| NC_EXPL_MOD | Pointe vers {Racine}/mod |
| NC_EXPL_MSG | Pointe vers {Racine}/msg |
| NC_EXPL_TMP | Pointe vers {Racine}/tmp |
| RUBYLIB | vaut ${NC_EXPL_LIB} |
| NC_EXPL_SRVBATCH | Nom du serveur Batch |
+-------------------+----------------------------+
### 1 - Variables globales générales
Les variables NC_EXPL_ROOT, EXPL_ROOT et NC_EXPL_SRVBATCH sont definie dans le fichier "dtsi.sh"
Les autres variables NC_~ sont definie dans le fichier "profile_init.env"
+-------------------+----------------------------+
| Nom | Usage |
+-------------------+----------------------------+
| NC_EXPL_ROOT | Racine /opt/expl |
| EXPL_ROOT | Alias pour NC_EXPL_ROOT |
| NC_EXPL_BIN | Pointe vers {Racine}/bin |
| NC_EXPL_CFG | Pointe vers {Racine}/conf |
| NC_EXPL_CPT | Pointe vers {Racine}/cpt |
| NC_EXPL_DAT | Pointe vers {Racine}/dat |
| NC_EXPL_HST | Pointe vers {Racine}/hist |
| NC_EXPL_LIB | Pointe vers {Racine}/lib |
| NC_EXPL_LOG | Pointe vers {Racine}/log |
| NC_EXPL_MAN | Pointe vers {Racine}/man |
| NC_EXPL_MOD | Pointe vers {Racine}/mod |
| NC_EXPL_MSG | Pointe vers {Racine}/msg |
| NC_EXPL_TMP | Pointe vers {Racine}/tmp |
| RUBYLIB | vaut ${NC_EXPL_LIB} |
| NC_EXPL_SRVBATCH | Nom du serveur Batch |
+-------------------+----------------------------+
2 - Variables globales specifiques
2.1 Pour les serveurs BDD
+--------------------+------------------------------------------+
| Nom | Usage |
+--------------------+------------------------------------------+
| NC_EXPL_SQL | Pointe vers {Racine}/sql |
| NC_EXPL_DBTAB | Pointe vers le fichier .dbtab |
| NC_EXPL_DBEDITEUR | Vaut : "oracle" ou "postgres" ou "mysql" |
+--------------------+------------------------------------------+
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"
Ces variables sont definie dans le fichier "profile_socle_database.env"
3 - Variables de session
Cette liste n est pas exhaustive, seules les principales variables sont citees.
+--------------------+-------------------------------------------------------------------------------+
| Nom | Usage |
+--------------------+-------------------------------------------------------------------------------+
| SH_SESSION_ID | Numero unique d execution : <TimeStamp>_<PId> |
| SH_SILENCE | Acitve ou non l affichage des messages via fct_message. Par defaut vaut "non" |
| SH_PROG | Nom du script |
| SH_LOGUSER | Compte initial de connexion au serveur |
| SH_EXECUSER | Compte courant executant le script |
| SH_DIR | Dossier hebergeant le script |
| SH_PROG_VERSION | Version du script |
| SH_FICTRC | Pointe vers le fichier ${NC_EXPL_HST}/<Nom_du_script>.hist |
| SH_FICMSG | Pointe vers le fichier ${NC_EXPL_MSG}/<Nom_du_script>.msg |
| SH_FICCFG | Pointe vers le fichier ${NC_EXPL_CFG}/<Nom_du_script>.conf |
| SH_FICSEM | Pointe vers le fichier /dev/shm/<Nom_du_script>.sem |
| SH_FICLOG | Pointe vers le fichier ${NC_EXPL_LOG}/<Nom_du_script>.log |
| SH_FICCPT | Pointe vers le fichier ${NC_EXPL_CPT}/<Nom_du_script>.cpt |
| SH_NIV_DEBUG | Vaut 0 par defaut. Niveau d affichage dans les fichiers de trace |
| SH_RETENTION_CPT | Vaut 8 par defaut. Duree de retention en jours des fichiers de compte-rendu |
| SH_RETENTION_LOG | Vaut 8 par defaut. Duree de retention en jours des fichiers de trace |
+--------------------+-------------------------------------------------------------------------------+
### 2 - Variables de session
Remarque : Les variables SH_SILENCE et SH_NIV_DEBUG sont controlees par les options "-s" et "-dbg"
si la gestion des options a ete activee.
Cette liste n'est pas exhaustive, seules les principales variables sont citées.
+--------------------+-------------------------------------------------------------------------------+
| Nom | Usage |
+--------------------+-------------------------------------------------------------------------------+
| SH_SESSION_ID | Numero unique d'exécution : <TimeStamp>_<PID> |
| SH_SILENCE | Active ou non l'affichage des messages via fct_message. Par defaut vaut "non" |
| SH_PROG | Nom du script |
| SH_LOGUSER | Compte initial de connexion au serveur |
| SH_EXECUSER | Compte courant exécutant le script |
| SH_DIR | Dossier hébergeant le script |
| SH_PROG_VERSION | Version du script |
| SH_FICTRC | Pointe vers le fichier ${NC_EXPL_HST}/<Nom_du_script>.hist |
| SH_FICMSG | Pointe vers le fichier ${NC_EXPL_MSG}/<Nom_du_script>.msg |
| SH_FICCFG | Pointe vers le fichier ${NC_EXPL_CFG}/<Nom_du_script>.conf |
| SH_FICSEM | Pointe vers le fichier /dev/shm/<Nom_du_script>.sem |
| SH_FICLOG | Pointe vers le fichier ${NC_EXPL_LOG}/<Nom_du_script>.log |
| SH_FICCPT | Pointe vers le fichier ${NC_EXPL_CPT}/<Nom_du_script>.cpt |
| SH_NIV_DEBUG | Vaut 0 par défaut. Niveau d'affichage dans les fichiers de traces |
| SH_RETENTION_CPT | Vaut 8 par défaut. Duree de rétention en jours des fichiers de compte-rendus |
| 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"
si la gestion des options a été activée.
III - Utilisation du socle bash