服务器运维常用的python模块概述

最近开始复习python的使用,把服务器运维常用的模块的用法进行了实例化概述。

==========sort=========================
python 排序;
ls=[1,31,13,141,41]
ls.sort()
print ls

元组sort:
>>> lst=[(‘wyl‘,24),(‘hjj‘,25),(‘zs‘,22),(‘lisi‘,14)]
>>> sorted(lst,key=lambda lst:lst[1],reverse=True)
[(‘hjj‘, 25), (‘wyl‘, 24), (‘zs‘, 22), (‘lisi‘, 14)]

字典排序:
>>> print d
{‘a‘: 2, ‘e‘: 221, ‘d‘: 222, ‘f‘: 22, ‘age‘: 24, ‘name‘: ‘wyl‘}
>>> sorted(d.iteritems(),key= lambda d:d[1])
[(‘a‘, 2), (‘f‘, 22), (‘age‘, 24), (‘e‘, 221), (‘d‘, 222), (‘name‘, ‘wyl‘)]
==========paramiko=========================
python ssh模块:

import paramiko
def ssh(host,cmd):
         #host = ‘192.168.0.213‘
         user = ‘root‘
         s = paramiko.SSHClient()
         s.load_system_host_keys()
         s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
         privatekeyfile = os.path.expanduser(‘~/.ssh/id_rsa‘)
         mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)
         # mykey=paramiko.DSSKey.from_private_key_file(privatekeyfile,password=‘061128‘)   
         s.connect(host,22,user,pkey=mykey,timeout=5)
         #cmd=raw_input(‘cwd:‘)
         #cmd="ip a | grep inet | grep 192.168  | grep brd | awk -F/22 ‘{print $1}‘|awk ‘{print $2}‘"
         stdin,stdout,stderr = s.exec_command(cmd)
         cmd_result = stdout.read(),stderr.read()
         for line in cmd_result:
                         return line.strip("\n")
         s.close()
print ssh("192.168.0.2",‘ls /root‘)

==========multiprocessing=============
import multiprocessing
def bingfa(picmip):
        Srealmount=set(ssh(picmip,"mount|awk ‘$1~/192.168.0.7/{print $1}‘").rstrip().split("\n"))
        #print Srealmount
        shortlist=list(Slocalmountls - Srealmount)
        for sl in shortlist:
                print "mount-error-"+sl + time.ctime()

f=open(‘/share/yunwei/shell/mountip.txt‘)
pool=multiprocessing.Pool(processes=4)
for ips in f:
    pool.apply_async(bingfa,(ips,))
pool.close()
pool.join()
f.close()
========MySQLdb===============
python mysql模块:
import MySQLdb
def pyfmysql(*args):
                conn=MySQLdb.connect(host=‘10.0.0.24‘,user=‘root‘,passwd=‘xxxxx‘,db=‘mon‘,port=3306)
                cur=conn.cursor()
                conn.select_db(‘monitor‘)

                cur.execute("""insert into T_SYS_LOG (CONTENT,HOST_IP,MONITOR_TYPE,MONITOR_LEVEL,SMS_FLAG,GROUP_ID) values(%s,%s,%r,%r,%r,%r)""",args)
                #sqlcmd=‘insert into T_SYS_LOG(CONTENT, HOST_IP, MONITOR_TYPE, MONITOR_LEVEL, SMS_FLAG,GROUP_ID) values(%s,%s,%s,%d,%d,%d)‘
                sqlresult = cur.fetchall()
                print sqlresult
                conn.commit()
                cur.close()
                conn.close()
pyfmysql(‘test‘,‘127.0.0.1‘,1,2,0,6)
==========json=============
import json
newd={‘four‘: ‘192.168.0.10‘, ‘second‘: ‘192.168.0.5‘, ‘third‘: ‘192.168.0.7‘, ‘first‘: ‘192.168.0.2‘}
ojson=json.dumps(newd)
file=open(‘/tmp/jsonfile‘,‘w‘)
file.write(ojson)

f= open(r‘/tmp/jsonfile‘)
jsonobj = json.load(f)
oldd=eval(str(jsonobj))
f.close
=========shutil==================
import shutil
shutil.copy("1","2")
shutil.rmtree("42")
=========cStringIO===============
import cStringIO

输入:
s=cStringIO.StringIO()
s.write("you are a girl")

输出:
print s.getvalue()
或者
s.seek(0)
print s.read()
=============time=================
import time
passt = datetime.datetime.now() - datetime.timedelta(minutes=10)
curtime2 = passt.strftime(‘%Y%m%d%H‘)
==============urllib=================
import urllib
>>> ourl=urllib.urlopen(‘http://www.baidu.com‘)
>>> print  ourl.info()
>>> for line in ourl:
	print line,
>>> google.close()

import urllib
print urllib.urlopen(‘http://www.google.com‘).read()
============urllib2================
#!/bin/env python
import urllib2
# set up authentication info
authinfo = urllib2.HTTPBasicAuthHandler()
authinfo.add_password(realm=‘PDQ Application‘,
                      uri=‘http://10.0.0.1:8091/index.html‘,
                      user=‘admin‘,
                      passwd=‘admin‘)
#proxy_support = urllib2.ProxyHandler({"http" : "http://ahad-haam:3128"})
# build a new opener that adds authentication and caching FTP handlers
opener = urllib2.build_opener(authinfo,urllib2.CacheFTPHandler)

# install it
urllib2.install_opener(opener)
f = urllib2.urlopen(‘http://10.0.0.1:8091/index.html#sec=servers‘)
text=f.read()
print text
时间: 2024-12-19 17:12:25

服务器运维常用的python模块概述的相关文章

Python 运维常用模块

基础库:sys.os(os.path.os.stat).time.logging.prarmiko.re.random Python运维常用的20个库 1.psutil是一个跨平台库(https://github.com/giampaolo/psutil)能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的管理. 2.IPy(http://github.com/haypo/python-ipy),辅助IP规划. 3.dnspython(h

Python系统运维常用库

Python系统运维常用库 1.psutil是一个跨平台库(http://code.google.com/p/psutil/) 能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的管理. 2.IPy(http://github.com/haypo/python-ipy),辅助IP规划. 3.dnspython(http://dnspython.org)Python实现的一个DNS工具包. 4.difflib:difflib作为Python

Linux服务器运维安全策略经验分享

http://jxtm.jzu.cn/?p=3692 大家好,我是南非蚂蚁,今天跟大家分享的主题是:线上Linux服务器运维安全策略经验.安全是IT行业一个老生常谈的话题了,从之前的“棱镜门”事件中折射出了很多安全问题,处理好信息安全问题已变得刻不容缓.因此做为运维人员,就必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先要站在攻击者的角度思考问题,修补任何潜在的威胁和漏洞.今天,我为大家讲的,主要分五部分展开:账户和登录安全账户安全是系统安全的第一道屏障,也是系统安全的核心,保障登录

服务器运维的日常工作?

服务器运维顾名思义就是对于电脑服务器的日常运行和维护,服务器运维包括软件运维和硬件运维: 一.硬件运维: 就是电脑主机中显卡.内存条.cpu等等的运行和维护,电脑每天工作也是硬件在支持着,所以应该对服务器的硬件时常进行检测.更换.升级,最常见的是升级CPU.内存和增加磁盘.其中磁盘扩容是最常见的,因为服务运行的时间越长,产生的数据量就越大,就需要用更多的磁盘来储存. 二.软件维护: 1.负责操作系统的更新和升级 2.负责服务器的软件安装.配置和卸载等 3.负责网络监控及保护资源 4.负责脚本代码

Linux运维常用命令

Linux运维常用的150个命令 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) ls 全拼list,功能是列出目录的内容及其内容属性信息. cd 全拼change directory,功能是从当前工作目录切换到指定的工作目录. cp 全拼copy,其功能为复制文件或目录. find 查找的意思,用于查找目录及目录下的文件. mkdir 全拼mak

Linux运维常用知识(4)

linux命令无效-bash: ls: command not found 一次重启后开机,基本所有的命令都不可用,只有少数的命令可用 [[email protected] ~]# ll -bash: ls: command not found [[email protected] ~]# pwd /root [[email protected] ~]# shutdown -r now -bash: shutdown: command not found [[email protected] ~

MongoDB 运维常用操作

MongoDB 运维常用操作     分析方法:    1. 通过top.free.iostat.iftop等工具查看Linux服务器平均负载.CPU利用率.IO.内存.swap.网络流量等,先定位到压力源头. 2. 通过mongostat.mongotop等分析MongoDB读写压力.观察Page Faults.Connections.Queues等性能指标. 3. 日志中默认记录超过100ms的请求,过滤出Overflow查询,再使用Mtools跟踪分析MongoDB日志文件中的慢查询语句.

运维常用表格-干货分享

运维常用表格-干货分享 机房巡检记录单 机房 日期: 时间: 巡检人员: 1 检查项目 机房温度 机房湿度 空调状态 UPS状态 服务器状态 网络设备状态 存在问题 故障处理措施 保密自查情况登记表 负责人签字:                  填报人及电话: 检查项目 检查执行情况 检查结果 自查事项 1.单位是否留存涉密文件资料(包括复印件) 检查人签字: 有□没有□ 2.办公计算机是否存储涉密文件资料 检查人签字: 有□没有□ 3.单位网页是否发布涉密文件资料信息 检查人签字: 有□没有

写给自己看的Linux运维基础(四) - python环境

pip - Python包管理工具 https://pip.pypa.io/en/latest/installing.html wget https://bootstrap.pypa.io/get-pip.py python get-pip.py Redis (NoSQL) http://www.redis.io/download wget http://download.redis.io/releases/redis-2.8.13.tar.gz tar xzf redis-2.8.13.tar