Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #taux occupation mémoire ordinateur
- occupation_ordi()
- {
- #On écrit à l'écran, si il n'y a pas de fichier de log
- if [ $# -eq 0 ]
- then
- echo -e "\n------------------------------\n"
- free -h
- #On écrit dans le fichier de log
- else
- echo -e "\nOccupation mémoire de l'ordinateur :\n\n" >> $1
- #Le résultat + les erreurs de la commande
- free -h 1>&2 >> $1
- echo -e "\n------------------------------\n" >> $1
- fi
- }
- #Afficher taux occupation disques durs ordinateur
- occupation_disques_ordi()
- {
- #On écrit à l'écran, si il n'y a pas de fichier de log
- if [ $# -eq 0 ]
- then
- echo -e "\n------------------------------\n"
- df -h
- #On écrit dans le fichier de log
- else
- echo -e "\nOccupation des disques durs de l'ordinateur :\n\n" >> $1
- #Le résultat + les erreurs de la commande
- df -h 1>&2 >> $1
- echo -e "\n------------------------------\n" >> $1
- fi
- }
- #Afficher processus les plus consommateurs en CPU
- processus_cpu()
- {
- c=""
- #On écrit à l'écran, si il n'y a pas de fichier de log
- if [ $# -eq 0 ]
- then
- #Lance la commande tant que l'utilisateur a pas rentré q [mettre à jour les processus]
- while [[ $c != "q" ]]
- do
- echo -e "\n------------------------------\n"
- top -b -n 1 | head -n 12 | tail -n 5
- read c
- #Efface l'écran
- clear
- done
- #On écrit dans le fichier de log
- else
- echo -e "\nProcessus les plus consommateurs en CPU :\n\n" >> $1
- #Le résultat + les erreurs de la commande
- top -b -n 1 | head -n 12 | tail -n 5 1>&2 >> $1
- echo -e "\n------------------------------\n" >> $1
- fi
- }
- #Va logger toutes les commandes dans un fichier passé en argument
- log_all_commands(){
- #Si on a passé aucun fichier de log
- if [ $# -eq 0 ]
- then
- echo -e "Il manque le fichier de log [argument]\n"
- exit
- fi
- fichier=$1
- #On regarde s'il existe
- if [ -e $fichier ]
- then
- echo -e "Fichier présent !\n"
- #Sinon on le crée
- else
- touch $1
- fi
- #On écrit la date dans le fichier de log
- echo -e "------------------------------" >> $1
- echo -e "------------------------------\n" >> $1
- echo $(date) >> $1
- echo -e "------------------------------\n" >> $1
- #On appelle chaque commande avec le fichier de log
- occupation_ordi $fichier
- occupation_disques_ordi $fichier
- processus_cpu $fichier
- }
- #MENU proposé si jamais il n'y a aucun argument passé
- menu()
- {
- choix=0
- echo -e "1-Afficher taux occupation mémoire ordinateur"
- echo -e "2-Afficher taux occupation disques durs ordinateur"
- echo -e "3-Afficher processus les plus consommateurs en CPU"
- echo -e "4-Enregistrer le résultat des 3 actions dans un fichier"
- read -p "Action : " choix
- case $choix in
- 1) occupation_ordi;;
- 2) occupation_disques_ordi;;
- 3) processus_cpu;;
- 4) read -p "Nom du fichier de log : " fichier
- log_all_commands $fichier;;
- *) choix=0
- echo -e "Choix invalide\n";;
- esac
- }
- #On regarde si le nombre d'arguments vaut 0
- if [ $# -eq 0 ]
- then
- #On charge un menu
- menu
- else
- #Parmi les options fdcl, on regarde lesqueslles sont appelées et dans quel ordre
- while getopts ":-fdcl" opt; do
- case $opt in
- #Si on a l'option -f, on affche le taux d'occupation mémoire
- f) occupation_ordi;;
- #Si on a l'option -d on affiche le taux d'occupation disques durs
- d) occupation_disques_ordi;;
- #Si on a l'option -c on affiche les processus les plus consommateurs en CPU
- c) processus_cpu;;
- #Si on l'option -l on log toutes les autres commandes du programme
- l) #On vérifie qu'on a bien un fichier de log
- if [ $# -eq 1 ]
- then
- echo -e "Il manque le fichier de log [argument]"
- exit
- fi
- log_all_commands;;
- esac
- done
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement