J'utilise la commande ' df -h ' pour obtenir les détails de l'espace disque dans mon répertoire et elle me donne la réponse ci-dessous:
Maintenant, je veux pouvoir faire cette vérification automatiquement via un lot ou un script - je me demande donc si je ne pourrai vérifier l'espace disque que pour des dossiers spécifiques qui me tiennent à cœur, comme indiqué dans l'image - je suis seulement censé vérifiez que / nas / home ne dépasse pas 75%.
Comment puis-je atteindre cet objectif ? De l'aide ?
Mon travail jusqu'à présent:
J'utilise
df -h > DiskData.txt
... cela sort dans un fichier texte
grep "/nas/home" "DiskData.txt"
... ce qui me donne le résultat:
*500G 254G 247G 51% /nas/home*
Maintenant, je veux pouvoir rechercher le numéro précédent ou juste à côté du signe '%' (51 dans ce cas) pour obtenir ce que je veux.
2 réponses
Cette commande vous donnera le pourcentage du répertoire / nas / home
df /nas/home | awk '{ print $4 }' | tail -n 1| cut -d'%' -f1
Donc, fondamentalement, vous pouvez utiliser store comme valeur dans une variable, puis appliquer la condition if else.
var=`df /nas/home | awk '{ print $4 }' | tail -n 1| cut -d'%' -f1`
if(var>75){
#send email
}
Une manière plus concise sans tuyauterie étendue pourrait être:
df -h /nas/home | perl -ane 'print substr $F[3],0,-1 if $.==2'
Renvoie: 51
pour votre exemple.
De nouvelles questions
bash
Pour des questions sur les scripts écrits pour le shell de commande Bash. Pour les scripts shell avec des erreurs / erreurs de syntaxe, veuillez les vérifier avec le programme shellcheck (ou sur le serveur web shellcheck à https://shellcheck.net) avant de poster ici. Les questions sur l'utilisation interactive de Bash sont plus susceptibles d'être sur le sujet sur Super User que sur Stack Overflow.