Advertisement
Guest User

Script_supervision.sh

a guest
Oct 26th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.70 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #taux occupation mémoire ordinateur
  4. occupation_ordi()
  5. {
  6.  
  7.     #On écrit à l'écran, si il n'y a pas de fichier de log
  8.     if [ $# -eq 0 ]
  9.         then
  10.             echo -e "\n------------------------------\n"
  11.             free -h
  12.     #On écrit dans le fichier de log
  13.     else
  14.         echo -e "\nOccupation mémoire de l'ordinateur :\n\n" >> $1
  15.         #Le résultat + les erreurs de la commande
  16.         free -h 1>&2 >> $1
  17.         echo -e "\n------------------------------\n" >> $1
  18.     fi
  19. }
  20.  
  21. #Afficher taux occupation disques durs ordinateur
  22. occupation_disques_ordi()
  23. {
  24.     #On écrit à l'écran, si il n'y a pas de fichier de log
  25.     if [ $# -eq 0 ]
  26.         then
  27.             echo -e "\n------------------------------\n"
  28.             df -h
  29.     #On écrit dans le fichier de log
  30.     else
  31.         echo -e "\nOccupation des disques durs de l'ordinateur :\n\n" >> $1
  32.         #Le résultat + les erreurs de la commande
  33.         df -h 1>&2 >> $1
  34.         echo -e "\n------------------------------\n" >> $1
  35.     fi
  36. }
  37.  
  38. #Afficher processus les plus consommateurs en CPU
  39. processus_cpu()
  40. {
  41.     c=""
  42.    
  43.     #On écrit à l'écran, si il n'y a pas de fichier de log
  44.     if [ $# -eq 0 ]
  45.         then
  46.             #Lance la commande tant que l'utilisateur a pas rentré q [mettre à jour les processus]
  47.             while [[ $c != "q" ]]
  48.             do
  49.                 echo -e "\n------------------------------\n"
  50.                 top -b -n 1 | head -n 12 | tail -n 5
  51.                 read c
  52.                 #Efface l'écran
  53.                 clear
  54.             done
  55.     #On écrit dans le fichier de log
  56.     else
  57.         echo -e "\nProcessus les plus consommateurs en CPU :\n\n" >> $1
  58.         #Le résultat + les erreurs de la commande
  59.         top -b -n 1 | head -n 12 | tail -n 5 1>&2 >> $1
  60.         echo -e "\n------------------------------\n" >> $1
  61.     fi
  62. }
  63.  
  64. #Va logger toutes les commandes dans un fichier passé en argument
  65. log_all_commands(){
  66.  
  67.     #Si on a passé aucun fichier de log
  68.     if [ $# -eq 0 ]
  69.         then
  70.         echo -e "Il manque le fichier de log [argument]\n"
  71.         exit
  72.     fi
  73.  
  74.     fichier=$1
  75.     #On regarde s'il existe
  76.     if [ -e $fichier ]
  77.         then
  78.             echo -e "Fichier présent !\n"
  79.     #Sinon on le crée
  80.     else
  81.         touch $1
  82.     fi
  83.     #On écrit la date dans le fichier de log
  84.     echo -e "------------------------------" >> $1
  85.     echo -e "------------------------------\n" >> $1
  86.     echo $(date) >> $1
  87.     echo -e "------------------------------\n" >> $1
  88.     #On appelle chaque commande avec le fichier de log
  89.     occupation_ordi $fichier
  90.     occupation_disques_ordi $fichier
  91.     processus_cpu $fichier
  92. }
  93.  
  94. #MENU proposé si jamais il n'y a aucun argument passé
  95. menu()
  96. {
  97.     choix=0
  98.     echo -e "1-Afficher taux occupation mémoire ordinateur"
  99.     echo -e "2-Afficher taux occupation disques durs ordinateur"
  100.     echo -e "3-Afficher processus les plus consommateurs en CPU"
  101.     echo -e "4-Enregistrer le résultat des 3 actions dans un fichier"
  102.  
  103.     read -p "Action : " choix
  104.     case $choix in
  105.         1)  occupation_ordi;;
  106.         2)  occupation_disques_ordi;;
  107.         3)  processus_cpu;;
  108.         4)  read -p "Nom du fichier de log : " fichier
  109.             log_all_commands $fichier;;
  110.         *)  choix=0
  111.             echo -e "Choix invalide\n";;
  112.     esac
  113.  
  114. }
  115.  
  116. #On regarde si le nombre d'arguments vaut 0
  117. if [ $# -eq 0 ]
  118.     then
  119.         #On charge un menu
  120.         menu
  121. else
  122.     #Parmi les options fdcl, on regarde lesqueslles sont appelées et dans quel ordre
  123.     while getopts ":-fdcl" opt; do
  124.         case $opt in
  125.             #Si on a l'option -f, on affche le taux d'occupation mémoire
  126.             f)  occupation_ordi;;
  127.             #Si on a l'option -d on affiche le taux d'occupation disques durs
  128.             d)  occupation_disques_ordi;;
  129.             #Si on a l'option -c on affiche les processus les plus consommateurs en CPU
  130.             c)  processus_cpu;;
  131.             #Si on l'option -l on log toutes les autres commandes du programme
  132.             l)  #On vérifie qu'on a bien un fichier de log
  133.                 if [ $# -eq 1 ]
  134.                     then
  135.                     echo -e "Il manque le fichier de log [argument]"
  136.                     exit
  137.                 fi
  138.                 log_all_commands;;
  139.         esac
  140.     done
  141. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement