我正在尝试使用ansible列出使用率超过50%的挂载点。我在AWK上遇到错误。
如果我单独运行此命令,则可以
df -P | awk '$5 >=90 {print}'
Filesystem 1024-blocks Used Available Capacity Mounted on
tmpfs 2097152 1948868 148284 93% /tmp
或
df -P | grep /tmp | awk '$5 >=90 {print}'
tmpfs 2097152 1948832 148320 93% /tmp
如果我在ansible shell中放入相同的命令则失败
下面:
ansible all -i <hostname>, -m shell -a "df -P | grep /tmp | awk '$5 >=90 {print}'"
SSH password:
SUDO password[defaults to SSH password]:
<hostname> | FAILED | rc=1 >>
awk: >=90 {print}
awk: ^ syntax error
grep: write error: Broken pipe
有办法做到这一点吗?有一个更好的方法吗?可能正在使用这些因素?
答案 0 :(得分:0)
感谢 Konstantin Suvorov ,您的回答非常顺利。
ansible all -i <hostname>, -m shell -a "df -P | grep /tmp | awk '\$5 >=50 {print}'"
SSH password:
SUDO password[defaults to SSH password]:
<hostname> | SUCCESS | rc=0 >>
/dev/sda8 944808 55484 840496 7% /var/tmp
tmpfs 2097152 1858344 238808 89% /tmp
答案 1 :(得分:0)
@ user3330284:您可以删除grep的使用并试一试(尽管没有测试过):
ansible all -i <hostname>, -m shell -a "df -P | awk '/\/tmp/{if(\$5 >=50){print}}'"