python脚本监控windows主机的端口并将结果发送到linux主机

python脚本监控windows主机的端口,并发送结果到linux主机

#coding=gbk
#-*- coding:utf-8 -*-
#auth chenzelin
import psutil
import ftplib
import sys
import time
import os
import socket
import telnetlib

saveFilePath = "E:\\agent\\winAgent\\temp" #本地文件保存的路径,需要修改
file_time = time.strftime('%Y%m%d%H%M%S',time.localtime())
logdate = time.strftime("%Y-%m-%d", time.localtime()) 
proc_list=[]

def getIp():
		try:
				s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
				s.connect(('6.6.6.6',32456))
				ip=s.getsockname()[0]
		finally:
				s.close()
		return ip
#print(getIp())
def ftpupload(localPath, serverPath):
    host = '192.168.142.112'       #远程LINUX主机IP,需要修改
    username = 'workftp'      #远程LINUX主机用户,需要修改
    password = 'ftp63FTP'  #远程LINUX主机用户密码,需要修改

    try:
        f = ftplib.FTP(host)  # 实例化FTP对象
        f.login(username, password)  # 登录
        bufsize = 1024  # 设置缓冲器大小
        fp = open(localPath, 'rb+')
        f.storbinary('STOR ' + serverPath, fp, bufsize)
        fp.close()
        f.quit()
    except Exception as err:
        print(err)
   
def  get_ip_status(ip,port):  
    tn = telnetlib.Telnet() 
    try:
        tn.open(ip,port)
        #s.connect((address,port))
        return "UP"
    except:
        return "DOWN"
    finally:
         tn.close()

ip = '192.168.142.113'
port = 3306
tn=get_ip_status(ip,port)
localPath = os.path.join(saveFilePath,file_time+'_'+getIp()+'_port.tok')
with open(localPath,'a') as f:
     #输出结果写入到tok文件                    
     f.write('telnet端口状态为:'+tn+'|'+file_time+'\r\n')
     f.close
  
serverPath = '/home/czl/monitor/' + file_time+'_'+getIp()+'_port.tok'
ftpupload(localPath, serverPath)
#删除生成的tok文件,先注释此行,监控采上数据后再把#去掉
os.remove(saveFilePath+"\\"+file_time+'_'+getIp()+'_242port.tok')  
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用 Python 脚本运行 Ansible 来复制 Windows 文件到 Linux,你可以使用 Ansible 的 API 来实现。下面是一个简单的示例: ```python import ansible.constants as C from ansible import context from ansible.executor.playbook_executor import PlaybookExecutor from ansible.inventory.manager import InventoryManager from ansible.parsing.dataloader import DataLoader from ansible.vars.manager import VariableManager # 设置 Ansible 上下文 context.CLIARGS = { 'connection': 'local', 'module_path': '/path/to/ansible/modules', 'forks': 10, 'become': None, 'become_method': None, 'become_user': None, 'check': False, 'listhosts': None, 'listtasks': None, 'listtags': None, 'syntax': None, 'sudo': None, 'sudo_user': None, 'tags': ['all'], 'verbosity': 3, } # 加载 Ansible 数据 loader = DataLoader() inventory = InventoryManager(loader=loader, sources='localhost,') variable_manager = VariableManager(loader=loader, inventory=inventory) # 创建 playbook 执行器 playbook_path = '/path/to/ansible/playbook.yml' playbook = PlaybookExecutor( playbooks=[playbook_path], inventory=inventory, variable_manager=variable_manager, loader=loader, ) # 运行 playbook playbook.run() ``` 在上面的代码中,你需要将 `/path/to/ansible/modules` 替换为你自己的 Ansible 模块路径,将 `/path/to/ansible/playbook.yml` 替换为你的 Ansible playbook 路径。 确保在运行脚本之前已经安装了 Ansible 和相应的 Python 包依赖。 运行此 Python 脚本将执行指定的 Ansible playbook,并在其中复制 Windows 文件到 Linux。请确保 playbook 中包含适当的任务和变量设置来实现文件复制操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值