【发布时间】:2017-02-15 19:31:09
【问题描述】:
我正在尝试使用 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
有没有办法做到这一点?有一个更好的方法吗?可能是使用因素?
【问题讨论】:
-
$5被您当前的 shell(从您运行 ansible 的地方)替换,转义它。
标签: linux shell ansible ansible-facts