• 使用python实现的几个运维脚本


    #!/usr/bin/env python2
    # -*- coding: utf-8 -*-
    
    #yum -y install python-pip
    # yum install libffi-devel openssl-devel
    #使用python启动一个web服务器
    #如果是python 2.x的系列里面 这样启动一个web服务器:
    # python -m SimpleHTTPServer 8080
    
    #如果是Python 3,用下面的语句也可以启动一个http服务:
    # python3 -m http.server 8000 
    
    
    
    import os
    import socket
    import requests
    import sys
    import json
    import time
    import psutil
    
    
    def sysInfo():
    
        '''
        利用psutil模块获取系统的各种统计信息
        '''
        print_str = ""
    
        memory_convent = 1024 * 1024
        mem =psutil.virtual_memory()
    
        print_str += " 内存状态如下:
    "
        print_str = print_str + " 系统的内存容量为: "+str( mem.total/( memory_convent ) ) + " MB
    "
        print_str = print_str + " 系统的内存以使用容量为: "+str( mem.used/( memory_convent ) ) + " MB
    "
        print_str = print_str + " 系统可用的内存容量为: "+str( mem.total/( memory_convent ) - mem.used/( 1024*1024 )) + "MB
    "
        print_str = print_str + " 内存的buffer容量为: "+str( mem.buffers/( memory_convent ) ) + " MB
    "
        print_str = print_str + " 内存的cache容量为:" +str( mem.cached/( memory_convent ) ) + " MB
    "
    
        cpu_status = psutil.cpu_times()
    
        print_str += " CPU状态如下:
    "
        print_str = print_str + " user = " + str( cpu_status.user ) + "
    "
        print_str = print_str + " nice = " + str( cpu_status.nice ) + "
    "
        print_str = print_str + " system = " + str( cpu_status.system ) + "
    "
        print_str = print_str + " idle = " + str ( cpu_status.idle ) + "
    "
        print_str = print_str + " iowait = " + str ( cpu_status.iowait ) + "
    "
        print_str = print_str + " irq = " + str( cpu_status.irq ) + "
    "
        print_str = print_str + " softirq = " + str ( cpu_status.softirq ) + "
    "
        print_str = print_str + " steal = " + str ( cpu_status.steal ) + "
    "
        print_str = print_str + " guest = " + str ( cpu_status.guest ) + "
    "
    
        print_str += " 硬盘信息如下:
    "
        disk_status = psutil.disk_partitions()
        for item in disk_status :
            print_str = print_str + " "+ str( item ) + "
    "
    
    
    
    
    
    def diskStatus():
        '''
        监控磁盘使用情况
        '''
        new_time = time.strftime("%Y-%m-%d")
        disk_status = os.popen("df -h").readlines()
    
        str1 = ''.join(disk_status)
        f = open(new_time+'.log','w')
        f.write(str1)
        f.flush()
        f.close()
    
    def sendDing(msg):
        '''
        发送钉钉消息功能
        '''
        dingding_url = 'https://oapi.dingtalk.com/robot/send?access_token=****'
        data = {"msgtype": "text","text": {"content": "内部群:"+str(msg)}}
        headers = {'Content-Type':'application/json;charset=UTF-8'}
        send_data = json.dumps(data).encode('utf-8')
        ret = requests.post(url=dingding_url,data=send_data,headers=headers)
        print(ret.text)
    
    
    def chekPort():
        '''
        批量检查指定ip,端口是否开通
    
        '''
        sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        sk.settimeout(3)
        for ip in [150,200]:
            try:
                sk.connect(("192.168.1."+str(ip),80))
                s = "192.168.1.{}:{} server open 
    ".format(str(ip),80)
                print(s)
            except Exception as e:
                s = "192.168.1.{}:{} server open 
    ".format(str(ip),80)
                print(s)
        sk.close()
    
    
    def getRss():
    
        '''
        用脚本计算一下所有进程所占用内存大小的和
        使用ps aux 列出所有进程,过滤出RSS那列,然后求和
        '''
        list = []
        sum = 0   
        str1 = os.popen('ps aux','r').readlines()
        print(str1[0])
        for i in str1:
            str2 = i.split()
            new_rss = str2[5]
            list.append(new_rss)
        
        for i in  list[1:-1]: 
            num = int(i)
            sum = sum + num 
    
        print (list[0],sum)
  • 相关阅读:
    myEclipse,web项目连接数据库
    jquery模拟手机短信发送
    myEclipse创建web项目及运行
    总结SUMMARY
    pthread
    NSThread线程对象
    刀哥多线程自动释放池autoreleasepool
    仿SDWebImage
    多线程基本概论multithread
    多线程异步加载图片async_pictures
  • 原文地址:https://www.cnblogs.com/liangblog/p/15429269.html
Copyright © 2020-2023  润新知