2 votes

Vérifiez l'utilisation du point de montage en utilisant ansible

Je tente de répertorier les points de montage utilisés à plus de 50% en utilisant Ansible. Je rencontre une erreur avec AWK.

Si j'exécute cette commande individuellement, elle fonctionne

df -P | awk '$5 >=90 {print}'
Filesystem     1024-blocs    Usé Disponible Capacité Monté sur
tmpfs              2097152  1948868    148284      93% /tmp

ou

df -P | grep /tmp | awk '$5 >=90 {print}'
tmpfs              2097152  1948832    148320      93% /tmp

Si je mets la même commande dans le shell Ansible, cela échoue

Voici:

ansible all -i , -m shell -a "df -P | grep /tmp | awk '$5 >=90 {print}'"
Mot de passe SSH : 
Mot de passe SUDO [par défaut, mot de passe SSH] :
 | ECHOUE | rc=1 >>
awk:  >=90 {print}
awk:  ^ erreur de syntaxe
grep: erreur d'écriture: Tube brisé

Y a-t-il un moyen de faire cela ? Existe-t-il une meilleure manière de le faire ? Peut-être en utilisant les facteurs ?

0voto

user3330284 Points 123

Merci Konstantin Suvorov votre réponse a parfaitement fonctionné.

ansible all -i , -m shell -a "df -P | grep /tmp | awk '\$5 >=50 {print}'"
Mot de passe SSH:
Mot de passe SUDO [par défaut le mot de passe SSH]:
 | SUCCESS | rc=0 >>
/dev/sda8           944808      55484     840496       7% /var/tmp
tmpfs              2097152    1858344     238808      89% /tmp

0voto

RavinderSingh13 Points 29608

@user3330284: Vous pourriez supprimer l'utilisation de grep et essayer ce qui suit (non testé cependant):

ansible all -i , -m shell -a "df -P  | awk '/\/tmp/{if(\$5 >=50){print}}'"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X