使用ansible检查挂载点使用情况

时间:2017-02-15 19:31:09

标签: linux shell ansible ansible-facts

我正在尝试使用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

有办法做到这一点吗?有一个更好的方法吗?可能正在使用这些因素?

2 个答案:

答案 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}}'"