如下面示例的参数‘10’ 2、 命令模式 [[emailprotected] ~]# func "*" call cpu

时间:2021-12-08 07:35:30

Func常用模块及API

Func供给了非常丰富的成果模块,包孕:

CommandModule(执行命令)

CopyFileModule(拷贝文件)

CpuModule(CPU信息)

DiskModule(磁盘信息)

FileTrackerModule(文件跟踪)

IPtablesModule(iptables打点)

MountModule(Mount挂载)

NagiosServerModule(Nagios打点)

NetWorkTest(网络测试)

ProcessModule(进程打点)

SysctlModule(sysctl打点)

SNMPModule(SNMP信息打点)等等:

更多模块见:https://fedoraproject.org/wiki/Infrastructure/Fedorahosted-retirement

命令行挪用模块格局:

Func<方针主机>call<Module_name(模块名)><method_name(要领名)><module_args(模块参数)>

例如运行“df –m”检察被控端内存,如:

[[email protected] ~]# func compute call command run "df -m"

(‘compute‘,

[0,

‘Filesystem              1M-blocks  Used Available Use% Mounted on\n/dev/mapper/centos-root    459828  2131    457697   1% /\ndevtmpfs                     3861     0      3861   0% /dev\ntmpfs                        3871     0      3871   0% /dev/shm\ntmpfs                        3871    57      3815   2% /run\ntmpfs                        3871     0      3871   0% /sys/fs/cgroup\n/dev/sda1                     494   184       311  38% /boot\ntmpfs                         775     0       775   0% /run/user/0\n‘,

‘‘])

注: [[email protected] ~]# func "*" call command run "df -m"   单独“*”为所有被控制端

[[email protected] ~]# func "com*ute?" call command run "df -m"  这里“*”代表任意多个字符。“?”代表单个任意字符

func "compute1;compute2" call command run "df -m" 多个方针主机使用分号分隔断绝分手

常用模块详解

1、  执行命令模块

(1)       成果

CommandModule实现linux长途命令挪用执行

(2)       命令行模式

[[email protected] ~]# func "*" call command run "uname -a"

(3)       API模式

[[email protected] ~]# cat funcommand.py

#!/usr/bin/python

import func.overlord.client as func

client = func.Client("*")

print client.command.run("free -m")

[[email protected] ~]# python funcommand.py

{‘compute‘: [0, ‘              total        used        free      shared  buff/cache   available\nMem:           7741         700        6356          56         684        6669\nSwap:         16383           0       16383\n‘, ‘‘]}

2、  文件拷贝模块

a)         成果

CopyFileModule实现主控端向方针主机拷贝文件,类似scp的成果

b)         命令行模式

[[email protected] ~]# func "*" copyfile -f /root/start.sh --remotepath /root/start.sh

c)         API模式

[[email protected] ~]# cat funccopyfile.py

#!/usr/bin/python

import func.overlord.client as func

client = func.Client("*")

client.local.copyfile.send("/root/start.sh","/tmp/start.sh")

CPU信息模块

1、  成果

Cpumodule获取长途主机cpu信息,,撑持定时间(秒)采样平均值,如下面示例的参数‘10’

2、  命令模式

[[email protected] ~]# func "*" call cpu usage 10

3、  API模式

print client.cpu.usage(10)

         磁盘信息模块

1、  成果

DiskModule实现获取长途主机的磁盘分区信息,参数为分区标签,如/data分区。

2、  命令模式

[[email protected] ~]# func "*" call cpu usage 10

3、  API模式

print client.cpu.usage(10)

         拷贝长途文件模块

1、  成果

GetFileModul实现拉取长途Linux主机指定文件到主控端目录,不撑持命令行模式。

2、  API模式

client.local.getfile.get("/root/a.txt","/tmp/")

                   Iptables打点模块

1、  成果

IPtables实现长途主机iptables配置。

2、  命令行模式

[[email protected] ~]# func "*" call iptables.port drop_to 53 192.168.128.0/24 udp src

3、  API模式

client.iptables.port.drop_to(8080,"192.168.128.55","tcp","dst")

系统硬件信息模块

1、  成果

HardwareModule返回长途主机系统硬件信息。

2、  命令行模式

[[email protected] ~]# func "*" call iptables.port drop_to 53 192.168.128.0/24 udp src

3、  API模式

print client.hardware.info(with_devices=True)

print client.hardware.hal_info()

系统Mount打点模块

1、  成果

MountModule实现长途主机Linux系统挂载、卸载分区打点。

2、  命令行模式

[[email protected] ~]# func "*" call mount list

3、  API模式

print client.mount.list()

系统进程打点模块

1、  成果

ProcessModule实现长途主机Linux进程打点。

2、  命令行模式

[[email protected] ~]# func "*" call process info "aux"

3、  API模式

print client.process.info("aux")

系统处事打点模块

4、  成果

servicesModule实现长途主机Linux系统处事打点。

5、  命令行模式

[[email protected] ~]# func "*" call service start snmpd

6、  API模式

print client.service.start("nginx")