Outils pour utilisateurs

Outils du site


scriptlinux

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
scriptlinux [2022/10/17 12:55] – [Exemple 2 : Script avec fichier de réponse] adminscriptlinux [2022/10/17 16:09] (Version actuelle) – [Illustration] admin
Ligne 34: Ligne 34:
   * **echo –e** :  //echo// réalise un affichage écran, -e permet d'ajouter un retour à la ligne   * **echo –e** :  //echo// réalise un affichage écran, -e permet d'ajouter un retour à la ligne
   * **done** : fin de la boucle   * **done** : fin de la boucle
-  * ** <** : indique qu'on prend le contenu de ce qui suit +    * ** <** : indique qu'on prend le contenu de ce qui suit 
-  * **[</chemin>]<fichierAlire>** : fichier dont on exploite le contenu (avec chemin éventuel)+    * **[</chemin>]<fichierAlire>** : fichier dont on exploite le contenu (avec chemin éventuel) 
 + 
 +==== Rendre un script exécutable ==== 
 +Un script est un fichier avec l'extension .sh qui doit être exécutable. Pour cela, on doit lui ajouter la permission :  
 +<code bash>chmod +x <nomducript.sh></code> 
 + 
 +On pourra alors l'exécuter : 
 +<code bash>./<nomduscript.sh></code> 
 + 
 +===== Démarche de création ===== 
 +<WRAP center round box 60%> 
 +  - Identifier les actions à mener 
 +  - Pour chaque commande, repérer les données nécessaires 
 +  - Identifier les fichiers de données à constituer 
 +  - Créer le script 
 +  - Réaliser un test sur un jeu de données significatif 
 +</WRAP>
  
  
Ligne 96: Ligne 112:
 <code bash>#! /bin/bash <code bash>#! /bin/bash
 #! /bin/sh #! /bin/sh
-# Boucle qui lis le fichier "donneesgroupes.csv" et cree les groupes correspondant+# Boucle qui lit le fichier "donneesgroupes.csv" et cree les groupes correspondant
 while IFS=, read legroupe while IFS=, read legroupe
 do do
Ligne 128: Ligne 144:
         Other []:          Other []: 
 Is the information correct? [Y/n] Y</code> Is the information correct? [Y/n] Y</code>
 +
 +<WRAP center round important 60%>
 +On doit indiquer le mot de passe (2 fois), les 5 informations de l'utilisateur et valider par Y.
 +</WRAP>
 + 
 +<wrap em>Un script demandera donc d'interagir pour fournir ces éléments.</wrap> 
 +
 +<WRAP center round tip 90%>
 +Une astuce est :
 +  * de <wrap em>stocker les informations</wrap> nécessaires dans le <wrap em>fichier CSV</wrap>, 
 +  * dans le <wrap em>script</wrap>, de <wrap em>créer un fichier de réponses temporaire</wrap> avec les <wrap em>données issues du CSV</wrap> 
 +  * de demander l'<wrap em>exécution de la commande</wrap> interactive en <wrap em>se fournissant dans le fichier de réponses</wrap> ainsi généré
 +  * de <wrap em>supprimer ce fichier temporaire</wrap> pour éviter de laisser des informations sensibles sur le disque
 +</WRAP>
 + 
 +
 +==== Illustration ====
 +<code bash>#! /bin/bash
 +#! /bin/sh
 +echo on
 +# Boucle qui lit le fichier "donneesutils.csv" et cree les utilisateurs  correspondant dans les bons groupes
 +while IFS=, read lecompte lepass legroupe
 +do
 +  #cree un fichier de reponse
 +  #mot de passe. La premiere ligne cree le fichier responses.txt (>), les autres ajoutent a son contenu (>>)
 +  echo $lepass > reponses.txt  
 +  echo $lepass >> reponses..txt
 +  #infos du compte : ici données vides
 +  echo  >> reponses.txt
 +  echo  >> reponses.txt
 +  echo  >> reponses.txt
 +  echo  >> reponses.txt
 +  echo  >> reponses.txt
 +  #validation
 +  echo "Y" >> reponses.txt
 +  #execution de la commande d'ajout avec les donnees presentes dans le fichier reponses.txt
 +  adduser $lecompte --ingroup $legroupe <reponses.txt
 +  echo $lecompte "est ajoute"
 +  #suppression des reponses
 +  rm reponses.txt
 +done < donneesutils.csv</code>
 +
 +<WRAP center round important 60%>
 +Ici on a intégré le compte directement dans un groupe <wrap em>(--ingroup)</wrap> pour éviter la création d'un groupe au nom de l'utilsiateur
 +</WRAP>
 +
  
  
  
  
scriptlinux.1666011348.txt.gz · Dernière modification : 2022/10/17 12:55 de admin