mcollective插件(shell plugins)功能在Linux系统上无所不能

简介:

1、下载插件放在对应的目录里即可

mcollective-client端

1
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@linuxmaster1poc ~]# mco shell  "cat /etc/passwd | grep puppet"
Do you really want to send  this  command unfiltered? (y/n): y
Discovering hosts using the mc method  for  2  second(s) ....  3
Host: linux58poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin
Host: linux64poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin
Host: linux57poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin
1
 

mcollective-server端

1
2
3
[root@linux57poc agent]# ll /usr/libexec/mcollective/mcollective/agent/ | grep shell
-rw-r--r--  1  root root  1017  Aug   6  06 : 36  shell.ddl
-rw-r--r--  1  root root   862  Aug   6  06 : 36  shell.rb


备注:mcollective-server端部署完成之后,记得重启mcollective服务。


2、 查看shell插件是否加载成功

从下面可以看出mcollective-client端shell插件已经有了[root@linuxmaster1poc ~]# mco The Marionette Collective version 2.2.4

1
2
3
4
5
6
7
8
usage: /usr/bin/mco command <options>
Known commands:
    completion           facts                find             
    help                 inventory            ping             
    plugin               puppet               rpc              
    shell   #shell插件加载OK                                                   
Type  '/usr/bin/mco help'  for  a detailed list of commands and  '/usr/bin/mco help command'
to  get  detailed help  for  a command

从下面可以看出mcollective-server端shell插件也加载了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@linuxmaster1poc ~]# mco inventory linux57poc
Inventory  for  linux57poc:
    Server Statistics:
                       Version:  2.2 . 4
                    Start Time: Fri Dec  13  01 : 14 : 14  + 0800  2013
                   Config File: /etc/mcollective/server.cfg
                   Collectives: mcollective
               Main Collective: mcollective
                    Process ID:  23898
                Total Messages:  10
       Messages Passed Filters:  10
             Messages Filtered:  0
              Expired Messages:  0
                  Replies Sent:  9
          Total Processor Time:  0.73  seconds
                   System Time:  0.17  seconds
    Agents:
       discovery       puppet          rpcutil     
       shell  #shell插件加载OK                                       
    Data Plugins:
       agent           fstat           puppet      
       resource                                    
    Configuration Management Classes:
       No classes applied
    Facts:
       architecture => x86_64
       augeasversion =>  0.10 . 0
       bios_release_date =>  06 / 22 / 2012
       bios_vendor => Phoenix Technologies LTD
       bios_version =>  6.00
       blockdevice_fd0_size =>  4096
       blockdevice_hdc_size =>  3834736640
       blockdevice_sda_model => Virtual disk
       blockdevice_sda_size =>  42949672960
     。。。

3、通过shell插件执行shell命令

mco shell帮助信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@linuxmaster1poc ~]# mco shell --help
MCollective Distributed Shell
Usage:   mco shell <CMD>
   The CMD  is  a string
   EXAMPLES:
     mco shell uptime
         --np, --no-progress          Do not show the progress bar
     - 1 , --one                        Send request to only one discovered nodes
         --batch SIZE                 Do requests  in  batches
         --batch-sleep SECONDS        Sleep time between batches
         --limit-seed NUMBER          Seed value  for  deterministic random batching
         --limit-nodes, --ln, --limit COUNT
                                      Send request to only a subset of nodes, can be a percentage
     -j, --json                       Produce JSON output
         --display MODE               Influence how results are displayed. One of ok, all or failed
     -c, --config FILE                Load configuratuion from file rather than  default
     -v, --verbose                    Be verbose
     -h, --help                       Display  this  screen
Common Options
     -T, --target COLLECTIVE          Target messages to a specific sub collective
         --dt, --discovery-timeout SECONDS
                                      Timeout  for  doing discovery
     -t, --timeout SECONDS            Timeout  for  calling remote agents
     -q, --quiet                      Do not be verbose
         --ttl TTL                    Set the message validity period
         --reply-to TARGET            Set a custom target  for  replies
         --dm, --disc-method METHOD   Which discovery method to  use
         -- do , --disc-option OPTION   Options to pass to the discovery method
         --nodes FILE                 List of nodes to address
Host Filters
     -W, -- with  FILTER                Combined classes and facts filter
     -S, --select FILTER              Compound filter combining facts and classes
     -F, --wf, -- with -fact fact=val   Match hosts  with  a certain fact
     -C, --wc, -- with - class  CLASS     Match hosts  with  a certain config management  class
     -A, --wa, -- with -agent AGENT     Match hosts  with  a certain agent
     -I, --wi, -- with -identity IDENT  Match hosts  with  a certain configured identity
The Marionette Collective  2.2 . 4

显示对端uptime命令负载情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@linuxmaster1poc ~]# mco shell  "uptime"
Do you really want to send  this  command unfiltered? (y/n): y
Discovering hosts using the mc method  for  2  second(s) ....  3
Host: linux58poc
Statuscode:  0
Output:
  02 : 45 : 02  up  21 : 10 ,   2  users,  load average:  0.00 0.00 0.00
Host: linux64poc
Statuscode:  0
Output:
  02 : 45 : 02  up  20 : 59 ,   1  user,  load average:  0.00 0.00 0.00
Host: linux57poc
Statuscode:  0
Output:
  02 : 45 : 02  up  21 : 04 ,   3  users,  load average:  0.00 0.00 0.00

显示所有节点/etc/password文件中puppet用户哪一行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@linuxmaster1poc ~]# mco shell  "cat /etc/passwd | grep puppet"
Do you really want to send  this  command unfiltered? (y/n): y
Discovering hosts using the mc method  for  2  second(s) ....  3
Host: linux58poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin
Host: linux64poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin
Host: linux57poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin

修改其中一台主机的root密码

备注:更多操作步骤可参考mco shell --help帮助。

警告:基于mcollective的shell插件虽然功能很强大,除了动态显示的命令之外,其它root能操作的,它基本上都能操作。所以操作也非常危险,可根据生产环境实际情况而定。



本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1340121,如需转载请自行联系原作者
目录
打赏
0
0
0
0
69
分享
相关文章
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
72 27
|
12天前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
68 10
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
115 19
|
2月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
108 24
Linux系统之whereis命令的基本使用
|
24天前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
76 8
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
14天前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
46 0
|
3月前
|
解决 Ubuntu 用户登录后的 shell 和功能问题
通过本文的详细介绍,您可以掌握解决Ubuntu用户登录后shell和功能问题的方法,从而确保系统的稳定和正常使用。
153 29
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
218 23
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
165 13

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等