salt-ssh:ls -lS超过所有的奴才

时间:2016-11-24 09:09:08

标签: parallel-processing salt-stack

我想在所有SaltStack小兵上运行ls -lS /var/log/somebase.log-*

我希望结果大致如下:

Size     Host  File
2345678  foo   /var/log/somebase.log-20161112.gz
1234567  bar   /var/log/somebase.log-20161110.gz
1045678  foo   /var/log/somebase.log-20160912.gz
...

1 个答案:

答案 0 :(得分:2)

我创建了一个脚本,它提供了类似的输出,目前仅在一个minion上测试但我猜它会正常工作,但需要再次测试以确保。

$ { echo Host Size File ; for minion in local-pc; do sudo salt $minion cmd.run 'ls -lS /var/log/dnf.rpm.log-*' --out=json |  python -c "import sys, json; ret = [{'host': k, 'result' : v} for k,v in json.load(sys.stdin).items()]; print json.dumps(ret)" | jq -r '.[].result' | awk -v host=$minion {'print host" "$5" "$9'};done } | column -t
Host      Size  File
local-pc  5646  /var/log/dnf.rpm.log-20161113
local-pc  4165  /var/log/dnf.rpm.log-20161120
local-pc  4067  /var/log/dnf.rpm.log-20161030
local-pc  3682  /var/log/dnf.rpm.log-20161107

<强>依赖关系:

<强>限制:

必须连接奴才。您可能需要使用manage.up创建已连接的小兵列表,然后通过修改上述代码来遍历此列表。

我会尝试做更多的测试,以提供完整的解决方案。

更新

在标题中注意到salt-ssh,上面的代码适用于仆从,之前我没有使用salt-ssh。但是如果你有问题请告诉我