开源,免费,跨平台的批量运维工具:https://www.oschina.net/p/kasini3000

后台+多进程,远程执行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 的输出。

作者

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Generated by Feedzy
%d 博主赞过: