开源,免费,跨平台的批量运维工具:https://www.oschina.net/p/kasini3000
后台+多进程,远程执行kasini3000命令:
K-commit
后台+多线程,远程执行kasini3000命令:
K-commit-rs
具体用法:(这里只演示多线程版,多进程只需要用K-commit)
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 { if ($a -eq 1) {echo 8} } -wait_output $true
问:如何根据输出的结果“8”,继续写脚本?
答:
foreach ($多线程输出_单台被控机 in $global:_mtout)
{
#if ($多线程输出_单台被控机[‘标准输出’].contains(‘磁盘满了’))
if ($多线程输出_单台被控机[‘标准输出’].contains(‘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 的输出。