内容简介:github地址:
github地址: https://github.com/opsonly , 上面是一个基于 python3.7
和 django2.1
的多人博客系统,喜欢的可以给个star~
判断是否是一个目录
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : 2018-12-18 15:16 # @Author : opsonly # @Site : # @File : opsUse.py # @Software: PyCharm import 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: PyCharm import psutil def 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: PyCharm import matplotlib.pyplot as plt # nginx_file = 'nginx2018-12-18_07:45:26' ip = {} # 筛选nginx日志文件中的ip with 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出现的次数 排序 返回对象为list ip = 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()
查看网段里有多少ip地址
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : 2018-12-18 15:31 # @Author : opsonly # @Site : # @File : ipTest.py # @Software: PyCharm import IPy ip = IPy.IP('172.16.0.0/26') print(ip.len()) for i in ip: print(i)
gitlab钩子脚本,实现简单自动化操作
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : 2018-12-18 17:41 # @Author : opsonly # @Site : # @File : gitlabCi.py # @Software: PyCharm from flask import Flask,request,render_template,make_response,Response import json,os,re,requests import subprocess app = Flask(__name__) null = "" cmd = "/var/www/html/ladmin-devel/" @app.route('/test',methods=['POST']) def hello(): json_dict = json.loads(request.data) name = json_dict['event_name'] ref = json_dict['ref'][11:] project = json_dict['project']['name'] if name == 'push' and ref == 'master': os.chdir(cmd) s = subprocess.getoutput('sudo -u nginx composer install') return Response(s) else: return Response('none') if __name__ == '__main__': app.run(host='0.0.0.0',port=8080)
解析一组域名的ip地址
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : 2018-12-20 10:21 # @Author : opsonly # @Site : # @File : dnsReloves.py # @Software: PyCharm import dns.resolver from collections import defaultdict hosts = ['baidu.com','weibo.com'] s = defaultdict(list) def query(hosts): for host in hosts: ip = dns.resolver.query(host,"A") for i in ip: s[host].append(i) return s for i in query(hosts): print(i,s[i])
清除指定 redis 缓存
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : 2018-12-20 15:19 # @Author : opsonly # @Site : # @File : redisdel.py # @Software: PyCharm import redis #选择连接的数据库 db = input('输入数据库:') r = redis.Redis(host='127.0.0.1',port=6379,db=0) #输入要匹配的键名 id = input('请输入要执匹配的字段:') arg = '*' + id + '*' n = r.keys(arg) #查看匹配到键值 for i in n: print(i.decode('utf-8')) #确定清除的键名 delid = input('输入要删除的键:') print('清除缓存 %s 成功' % delid)
下载阿里云RDS二进制日志
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : 2018-12-12 13:52 # @Author : opsonly # @Site : # @File : rds_binlog.py # @Software: PyCharm ''' 查询阿里云rds binlog日志 ''' import base64,urllib.request import hashlib import hmac import uuid,time,json,wget class RDS_BINLOG_RELATE(object): def __init__(self): #阿里云的id和key self.access_id = '**********************' self.access_key = '**********************' #通过id和key来进行签名 def signed(self): timestamp = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) header = { 'Action': 'DescribeBinlogFiles', 'DBInstanceId': 'rm-wz9azm783q621n9', 'StartTime': '2018-07-11T15:00:00Z', 'EndTime': timestamp, 'Format': 'JSON', 'Version': '2014-08-15', 'AccessKeyId': self.access_id, 'SignatureVersion': '1.0', 'SignatureMethod': 'HMAC-SHA1', 'SignatureNonce': str(uuid.uuid1()), 'TimeStamp': timestamp, } #对请求头进行排序 sortedD = sorted(header.items(), key=lambda x: x[0]) url = 'https://rds.aliyuncs.com' canstring = '' #将请求参数以#连接 for k, v in sortedD: canstring += '&' + self.percentEncode(k) + '=' + self.percentEncode(v) #对请求连接进行阿里云要的编码规则进行编码 stiingToSign = 'GET&%2F&' + self.percentEncode(canstring[1:]) bs = self.access_key + '&' bs = bytes(bs, encoding='utf8') stiingToSign = bytes(stiingToSign, encoding='utf8') h = hmac.new(bs, stiingToSign, hashlib.sha1) stiingToSign = base64.b64encode(h.digest()).strip() #将签名加入到请求头 header['Signature'] = stiingToSign #返回url url = url + "/?" + urllib.parse.urlencode(header) return url #按照规则替换 def percentEncode(self,store): encodeStr = store res = urllib.request.quote(encodeStr) res = res.replace('+', '%20') res = res.replace('*', '%2A') res = res.replace('%7E', '~') return str(res) #筛选出链接下载二进制日志文件 def getBinLog(self): binlog_url = self.signed() req = urllib.request.urlopen(binlog_url) req = req.read().decode('utf8') res = json.loads(req) for i in res['Items']['BinLogFile']: wget.download(i['DownloadLink']) s = RDS_BINLOG_RELATE() s.getBinLog()
喜欢的可以关注一下,不断更新哦~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- ASP程序中常用的脚本语言
- VPS 中 Linux 常用一键脚本汇总
- Linux运维比较常用的一些脚本
- 10 个实战及面试常用 Shell 脚本编写
- Kafka 系列(八):一网打尽常用脚本及配置,宜收藏落灰
- 脚本文件里的 Hybrid Script(混合式脚本)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入Linux内核架构
Wolfgang Mauerer / 郭旭 / 人民邮电出版社 / 201005 / 149.00元
众所周知,Linux操作系统的源代码复杂、文档少,对程序员的要求高,要想看懂这些代码并不是一件容易事。本书结合内核版本2.6.24源代码中最关键的部分,深入讨论Linux内核的概念、结构和实现。具体包括进程管理和调度、虚拟内存、进程间通信、设备驱动程序、虚拟文件系统、网络、时间管理、数据同步等方面的内容。本书引导你阅读内核源代码,熟悉Linux所有的内在工作机理,充分展现Linux系统的魅力。 ......一起来看看 《深入Linux内核架构》 这本书的介绍吧!