开源,免费,跨平台的批量运维工具:https://www.oschina.net/p/kasini3000
K-commit
后台+多线程,远程执行kasini3000命令:
K-commit-rs
具体用法:(这里只演示多线程版,多进程只需要用K-commit)
k-commit-rs.ps1 -ip 1.1.1.1 -scriptblock {被控机命令} -allparameter $a,$b k-commit-rs.ps1 -ip 1.1.1.1 -file "d:\主控机脚本.ps1" -allparameter $a,$b k-commit-rs.ps1 {被控机命令} -wait_output $true
说明:
K-commit,K-commit-rs,命令新增1个参数:
-wait_output $true
以类似于 ansible形式,持续输出结果。
默认是不输出结果,而把结果保存在主控机sqlite库中。
你应该这样用:
k-commit-rs.ps1 命令 参数 k-commit-rs.ps1 命令 参数 k-commit-rs.ps1 命令 参数 -wait_output $true
提交n次命令,但最后一次命令中,开启持续输出。
截图:
问:如上图所示,怎么输出的“8”?
答:
k-commit-rs.ps1 {echo 8} -wait_output $true k-commit-rs.ps1 { if ($a -eq 1) {echo 8} } -wait_output $true
问:如何根据输出的结果“8”,继续写脚本?
答:
kt-rs.ps1 -grep '8' foreach ($多线程输出_单台被控机 in $global:_mtout) { #if ($多线程输出_单台被控机['标准输出'].contains('磁盘满了')) if ($多线程输出_单台被控机['标准输出'].contains('8')) { '这台被控机曾经报错,磁盘满了' } }
注意:如果是多进程,则应该这样用:
kt.ps1 -grep '8' foreach ($多进程输出_单台被控机 in $global:_mpout)
手册在此:
https://gitee.com/chuanjiao10/kasini3000/blob/master/docs/%E5%8D%A1%E6%AD%BB%E4%BD%A03000%E5%91%BD%E4%BB%A4%E6%89%8B%E5%86%8C.xlsx
另外,新增 krun-mt.ps1 也有类似 ansible 的输出。
还没有评论,来说两句吧...