La problématique : Certains serveurs font tourner certaines applications qui chient du fichier (par exemple snort sans un -K None), il faut avoir un œil dessus.
Une solution serait de profiter du fonctionnement de cron qui envoie un mail si et seulement si la commande lancée produit quelque chose sur stdout avec un truc comme ça :
df -iPh | tail -n +2 | sed -e 's/ */;/g' | cut -d';' -f 1,5 | awk -F';' '{print $2,"\t",$1}' | grep '^[5-9][0-9]'
Je prends la sortie de df, je vire l'entête, je vire les espaces redondants et je garde le champ 1 et le champ 2, j'inverse les champs et je n'affiche que les lignes où la valeur (%Iutil) est supérieur ou égale à 50 %.
Avez-vous une manière plus élégante à me proposer ?
# Supervision
Posté par Sébastien Maccagnoni (site web personnel) . Évalué à 2. Dernière modification le 05 mars 2013 à 20:18.
Je suggère une solution de supervision, qui te permettra de surveiller ça et plein d'autres choses, faire de la corrélation, des alertes plus poussées, etc. Surtout que tu parles de serveurs au pluriel…
Par exemple avec Zabbix, la surveillance des inodes est supportée nativement…
Ça te permettra d'avoir facilement un graphique de l'évolution de cette donnée, etc.
[^] # Re: Supervision
Posté par Marotte ⛧ . Évalué à 2.
Oui merci. Tu as tout à fait raison.
Je postais plus pour améliorer ma maîtrise du shell que pour une réelle solution.
Mais il faut reconnaître que mettre en place un bête script à déployer, qui envoi des mails, est parfois faisable alors que la mise en place d'une architecture complète pour une vrai supervision est juste infaisable en l'état ;) Et il faut quand même surveiller ces putains d'inodes…
# compléter la commande sed ?
Posté par ashgan . Évalué à 1.
je suis pas un gourou sed, mais on devrait pouvoir éviter tout les pipes avec un
df -iPh | sed -e '1d;/[5-9][0-9]\%/!d'
d'autres confirmeront l'exactitude de ma syntaxe, que je n'ai honteusement pas testée.
[^] # Re: compléter la commande sed ?
Posté par Marotte ⛧ . Évalué à 1.
Bien joué. Tu peux expliciter la commande sed ?
[^] # Re: compléter la commande sed ?
Posté par jben . Évalué à 3. Dernière modification le 05 mars 2013 à 20:50.
Tant qu'à faire, pourquoi effacer des lignes sauf celles qui matchent, et ne pas raisonner en affichant seulement celles qui matchent ?
Explications :
-n
desactive l'affichage auto,Wait… en fait c'est un
grep
!D'ailleurs moi quand je parse une sortie d'une commande, je n'aime pas être géné par une éventuelle localisation qui viendrait perturber mon résultat, j'ai donc toujours un
LANG=C
.Mais sinon sur la question intiale, j'approuve le premier commentaire, une solution de suppervision (même si moi je pense à
munin
) me parrait vraiment plus adaptée pour ce genre de choses.[^] # Re: compléter la commande sed ?
Posté par ashgan . Évalué à 0.
j'avais prévenu que je mange pas du man sed au petit dej'! :)
[^] # Re: compléter la commande sed ?
Posté par Marotte ⛧ . Évalué à 1.
Le champ %IUti est le seul à avoir le caractère %, bien vu.
C'est vraiment ce que je voulais faire, merci à tous !
[^] # Re: compléter la commande sed ?
Posté par ashgan . Évalué à 1.
a noter que les regexp, ca marche aussi avec grep, hein:
[^] # Re: compléter la commande sed ?
Posté par ashgan . Évalué à 1.
Ça donne pas exactement la même sortie que ta commande initiale(i.e tu as toute la ligne et pas seulement le champ IUti%), mais si ça convient, pourquoi ne pas s'être contenté du grep de base, comme tu l'a bien mis dans ton exemple? (vraie question)
timing de m****** pour l'édition d'un commentaire, ma réflexion au dessus est bien évidemment a oublier si on relis la commande du post initial
[^] # Re: compléter la commande sed ?
Posté par fearan . Évalué à 2.
oui mais pour ça il y a grep -o
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
# Avec awk ?
Posté par zipe31 . Évalué à 1.
Salut,
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.