今天推荐的这款工具看起来比较小众,但是它的使用确实是比较方便,而且蛮有新意的。
对于批量操作我们一般是怎么使用呢,如果服务器数量不大的情况下,可以使用pssh或者是ansible来做。
相对来说,pssh比较简单清晰,对执行的任务可以做并发,但是缺点就是使用相对比较简单,如果要做更多复杂的功能就支持了。
而ansible的功能相对来说更加完善,它能够基于组完成更加丰富的功能,主要的交互是基于json的方式,返回的结果是一个json。要说缺点,其实主要在于性能上。
而今天要给大家推荐的这款工具来自Greenplum,工具是gpssh,这款工具是安装Greenplum自带的,整个工具是用Python实现的,定制了paramiko,除了一些引用库之外,还用到了一些自定义的库。
我们来看下一个初版的效果,首先得有一个主机文件,类似于ansible里面的配置。
$cat a.lst
100.130.124.83
100.131.170.107
100.130.121.250
100.131.171.103
后续的操作就不大相同了,gpssh可以支持最原生的命令,输出的结果是交互性的,而且相对看起来更清晰一些。
$gpssh -f a.lst
=> ls
[100.131.171.103] conn.sh
[100.130.121.250] conn.sh
[100.131.170.107] conn.sh
[100.130.124.83] conn.sh script
=> pwd
[100.131.171.103] /home/dba_mysql
[100.130.121.250] /home/dba_mysql
[100.131.170.107] /home/dba_mysql
[100.130.124.83] /home/dba_mysql
=> uptime
[100.131.171.103] 23:27:01 up 89 days, 16:31, 1 user, load average: 0.00, 0.00, 0.00
[100.130.121.250] 23:27:01 up 493 days, 20:35, 2 users, load average: 0.00, 0.00, 0.00
[100.131.170.107] 23:27:01 up 89 days, 17:59, 1 user, load average: 0.00, 0.00, 0.00
[100.130.124.83] 23:27:01 up 493 days, 20:35, 2 users, load average: 0.00, 0.00, 0.00
=>
退出的时候,输入exit即可。
整个工具的亮点和明显,我们可以直接使用原生命令,输出的结果看起来更清晰一些。缺点是它是基于交互模式的,不大适合做为自动化的工具,作为一款检查工具来说还是比较合适的。