2016-11-24 29 views
2

我想在所有SaltStack minions上运行ls -lS /var/log/somebase.log-*salt-ssh:ls -lS over all minions

我想要的结果看起来大致是这样的:

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

你试过我的解决方案吗? –

+0

@MostafaHussein是的,它的工作原理。你得到赏金,谢谢! – guettli

回答

2

我创建了一个脚本,这给类似的输出,目前在一个奴才只测试了,但我想它会正常工作,但它需要对其进行测试再次确保。

$ { 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前工作。但如果你有问题,让我知道