Bonjour,

Je souhaiterais mettre en place un script qui, sur 3 serveurs Server1, Server2, Server3 :

- donne le taux d'occupation du FS / ( commande /bin/df -h / | grep -v -E 'Filesystem|mapper' | awk '{print $(NF-1)}' ).
- si le chiffre trouvé (taux) sans le signe "%" est supérieur à 75 (75%) alors on supprime les fichiers toto*.
- redonne le taux après ménage.
- le tout mentionné dans un fichier /home/kevin/Output.txt

En principe on utilise la simple quote avec rsh mais dans ce cas ça marche pas du tout.

En faisant comme ci-dessous, pas d'erreur dans la forme en rendant verbeux le script mais un souci avec le taux qui n'est pas celui attendu à chaque exécution de la boucle for.

En effet le taux qui sort à chaque fois est celui du FS / du serveur sur lequel se trouve le script et non pas ceux sur mes 3 serveurs Server1, Server2 et Server3.

Mon script :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
for Server in Server1 Server2 Server3; do
        echo "  "
        echo "$Server :"
        rsh "$Server" "echo 'Taux occupation du FS / avant menage :'  `/bin/df -h / | grep -v -E 'Filesystem|mapper' | awk '{print $(NF-1)}'` "
        rsh "$Server" "if [ `/bin/df -h / | grep -v -E 'Filesystem|mapper' | awk '{print $(NF-1)}' | sed '$ s/.$//'` -gt 75 ]; then rm -f /home/kevin/toto*; fi"
        rsh "$Server" "echo 'Taux occupation du FS / apres menage :'  `/bin/df -h / | grep -v -E 'Filesystem|mapper' | awk '{print $(NF-1)}'` "
done > /home/kevin/Output.txt
Je viens vous demander votre avis et conseils.

Merci.