博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置文件服务器数据采集
阅读量:6072 次
发布时间:2019-06-20

本文共 1462 字,大约阅读时间需要 4 分钟。

服务器数据采集第一版本:

import requests

if mode == 'agent':

  import subprocess

  res = subprocess.getoutput('ifconfig')

  ip_info = res[2:5]

  requests.post('http://127.0.0.1:8001/asset',data = ip_info)

elif mode == 'ssh':

  import paramiko

  ssh = paramiko.SSHClient()

  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

  ssh.connect(hostname='c1.salt.com',port=22,username='root',password='123')

  stdin,stdout,stderr = ssh.exec_command('ifconfig')

  result = stdout.read()

  ssh.close()

elif mode == 'salt':

  import salt.client

  local = salt.client.LocalClient()

  result = local.cmd('c2.salt.com','cmd.run',['ifconfig'])

缺点:扩展性差

优点:开发上线块

版本二:将业务逻辑的代码以插件的形式,写在src目录下面,相比于版本一,更加的清爽,业务逻辑更加的清晰

问题:无法进行随心所欲的注释

版本三:可插拔式的插件采集信息

config.py:

plugins_dict={'a':'插件类名路径',...}

__init__.py

for k,v in self.pluginsSettings.items():

  #k:basic, v:src.plugins.basic.Basic

  module_name,class_name = v.rsplit('.',1)

  m = importlib.import_module(module_name)

  cls = getattr(m,class_name)

  res = cls().process()

  print(res)

插件代码冗余:

1.写一个基类,有一个通用执行的方法,个插件继承基类

2.将函数名作为参数传入一个函数中

salt的调用:

ps:
python2:
import salt.client
local = salt.client.LocalClient()
result = local.cmd('c2.salt.com', 'cmd.run', [cmd])

python3:

import subprocess
res_cmd = "salt '%s' cmd.run '%s'" % (self.hostname,cmd)
res = subprocess.getoutput(res_cmd)
return res

错误信息的管理:

容错(代码健壮性)

import traceback

traceback.format_exc()

post数据

使用request.body获取数数据

转载于:https://www.cnblogs.com/suncunxu/p/10871414.html

你可能感兴趣的文章
构建最小尺寸XPE
查看>>
Asp.net常用的三十多个代码(1)
查看>>
Linux磁盘管理--LVM原理及基本操作
查看>>
Struts2 中测试 action
查看>>
Oracle BRM
查看>>
反射机制详解下篇
查看>>
年中总结
查看>>
Using a SecureCRT® Secure Shell Connection as a SOCKS Proxy
查看>>
MySQL源码学习:MDL字典锁
查看>>
sst15vf016bFlash芯片的驱动基于msp430F149单片机
查看>>
linux下主从节点互相免密匙登陆
查看>>
nginx url重写
查看>>
eval
查看>>
C++,笔试面试,使用C++编程,实现万年历
查看>>
string类(c++)
查看>>
js循环实现九九乘法表
查看>>
oracle em启动失败--ORACLE_UNQNAME not defined
查看>>
关于 Oracle 改错权限问题
查看>>
SQL基础语言
查看>>
一个成功的响应式网站该怎么策划
查看>>