你必須知道的Python運維常用腳本!(日常更新)


原文鏈接:https://bbs.huaweicloud.com/blogs/16f870b109a911e9bd5a7ca23e93a891

 

github地址:https://github.com/opsonly, 上面是一個基於python3.7django2.1的多人博客系統,喜歡的可以給個star~



判斷是否是一個目錄

#!/usr/bin/env python3# -*- coding: utf-8 -*-# @Time    : 2018-12-18 15:16# @Author  : opsonly# @Site    : # @File    : opsUse.py# @Software: PyCharmimport os  dir = "/var/www/html/EnjoyCarApi/"if os.path.isdir(dir):     print('%s is a dir' % dir)else:     print('%s is not a dir' % dir)

 

系統內存與磁盤檢測
#!/usr/bin/env python3# -*- coding: utf-8 -*-# @Time    : 2018-12-17 17:16# @Author  : opsonly# @Site    : # @File    : systemissue.py# @Software: PyCharmimport psutildef memissue():     print('內存信息:')     mem = psutil.virtual_memory()    # 單位換算為MB     memtotal = mem.total/1024/1024     memused = mem.used/1024/1024     membaifen = str(mem.used/mem.total*100) + '%'      print('%.2fMB' % memused)     print('%.2fMB' % memtotal)     print(membaifen)def cuplist():     print('磁盤信息:')     disk = psutil.disk_partitions()     diskuse = psutil.disk_usage('/')    #單位換算為GB     diskused = diskuse.used / 1024 / 1024 / 1024     disktotal = diskuse.total / 1024 / 1024 / 1024     diskbaifen = diskused / disktotal * 100     print('%.2fGB' % diskused)     print('%.2fGB' % disktotal)     print('%.2f' % diskbaifen)  memissue() print('*******************') cuplist()

 


統計nginx日志前十ip訪問量並以柱狀圖顯示

#!/usr/bin/env python3# -*- coding: utf-8 -*-# @Time    : 2018-12-18 15:49# @Author  : opsonly# @Site    : # @File    : nginx_ip.py# @Software: PyCharmimport matplotlib.pyplot as plt#nginx_file = 'nginx2018-12-18_07:45:26'ip = {}# 篩選nginx日志文件中的ipwith open(nginx_file) as f:    for i in f.readlines():         s = i.strip().split()[0]         lengh = len(ip.keys())        # 統計每個ip的訪問量以字典存儲         if s in ip.keys():             ip[s] = ip[s] + 1         else:             ip[s] = 1#以ip出現的次數排序返回對象為listip = sorted(ip.items(), key=lambda e:e[1], reverse=True)#取列表前十newip = ip[0:10:1] tu = dict(newip)  x = [] y = []for k in tu:     x.append(k)     y.append(tu[k]) plt.title('ip access') plt.xlabel('ip address') plt.ylabel('PV')#x軸項的翻轉角度plt.xticks(rotation=70)#顯示每個柱狀圖的值for a,b in zip(x,y):     plt.text(a, b, '%.0f' % b, ha='center', va= 'bottom',fontsize=7)  plt.bar(x,y) plt.legend() plt.show()

 

test.png



查看網段里有多少ip地址

#!/usr/bin/env python3#
-*- coding: utf-8 -*-# @Time : 2018-12-18 15:31# @Author : opsonly# @Site : # @File : ipTest.py# @Software: PyCharmimport IPy ip = IPy.IP('172.16.0.0/26') print(ip.len())for i in ip: print(i)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM