我想在所有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
...
答案 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
。但是如果你有问题请告诉我