2024年10月python运维(Python运维工程师是什么Python运维工程师工作职责及要求!)
⑴python运维(Python运维工程师是什么Python运维工程师工作职责及要求!
⑵Python运维工程师工作职责及要求!工作职责:、负责公司自动化运维管理工具开发;、利用Python开发,使得服务器物理数据或进程数据Web界面化;、根据需求编写SaltStack脚本完成相关软件部署、配置、管理;、提升运维工作自动化以及智能化程度;、日常运维相关脚本编写,本文目录Python运维工程师是什么Python运维工程师工作职责及要求!python运维常用脚本运维开发为什么要用PythonPython运维工程师是什么Python运维工程师工作职责及要求!很多人应该都听说过Python工程师、Linux运维工程师,Python运维工程师是什么?运维工程师最基本的职责是负责服务的稳定性,那么你知道什么是Python运维工程师吗?它的工作职责以及岗位要求是什么呢?我们一起来看看吧,继续进行转换datetime.datetime.fromtimestamp(psutil.boot_time()).strftime(’%Y-%m-%d%H:%M:%S’)Python生成一个随机密码importrandom,stringdefGenPassword(length):ifname==’main’:print(GenPassword())运维开发为什么要用Python对于运维而言,包含操作系统原理、常用系统命令、系统服务;、熟练掌握Python语言,python运维常用脚本Python批量遍历目录文件,并修改访问时间importospath=“D:/UASM/include/“dirs=os.listdir(path)temp=;forfileindirs:temp.append(os.path.join(path,file))forxintemp:os.utime(x,(,))Python实现的自动化服务器管理importsysimportosimportparamikossh=paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())defssh_cmd(user,passwd,port,userfile,cmd):defssh_put(user,passwd,source,target):whileTrue:try:shell=str(input(“#“))if(shell==““):continueelif(shell==“exit“):exit()elif(shell==“put“):ssh_put(“root“,““,“)elif(shell==“cron“):temp=input(“输入一个计划任务:“)temp=“(crontab-l;echo“+temp+“)|crontab“ssh_cmd(“root“,““,““,“)elif(shell==“uncron“):temp=input(“输入要删除的计划任务:“)temp=“crontab-l|grep-v““+temp+“|crontab“ssh_cmd(“root“,““,““,“)else:ssh_cmd(“lyshark“,““,““,“)遍历目录和文件importosdeflist_all_files(rootdir):importos_files=list=os.listdir(rootdir)#列出文件夹下所有的目录与文件foriinrange(,len(list)):path=os.path.join(rootdir,list)ifos.path.isdir(path):_files.extend(list_all_files(path))ifos.path.isfile(path):_files.append(path)return_filesa=list_all_files(“C:/Users/LyShark/Desktop/a“)print(a)python检测指定端口状态importsocketsk=socket.socket(socket.AF_I,socket.SOCK_STREAM)sk.settimeout()foripinrange(,):try:sk.connect((“...“+str(ip),))print(“...%dserveropen
⑶“%ip)exceptException:print(“...%dservernotopen“%ip)sk.close()python实现批量执行CMD命令importsysimportosimportparamikossh=paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())print(“------------------------------》
⑷“)print(“使用说明,在当前目录创建ip.txt写入ip地址“)print(“------------------------------》
⑸“)user=input(“输入用户名:“)passwd=input(“输入密码:“)port=input(“输入端口:“)cmd=input(“输入执行的命令:“)file=open(“)line=file.readlines()foriinraimportsysimportoslist=sum=str=os.popen(“psaux“,“r“).readlines()foriinstr:str=i.split()new_rss=strlist.append(new_rss)foriinlist:num=int(i)sum=sum+numprint(“%s---》%s“%(list,sum))关于Python命令行参数argvimportsysiflen(sys.argv)《:print(“没有输入任何参数“)sys.exit()ifsys.argv.startswith(“-“):option=sys.argv利用random生成位数字加字母随机验证码importsysimportrandomrand=forxinrange():y=random.randrange(,)ify==ory==:num=random.randrange(,)rand.append(str(num))else:temp=random.randrange(,)c=chr(temp)rand.append(c)result=““.join(rand)print(result)自动化-使用pexpect非交互登陆系统importpexpectimportsysssh=pexpect.spawn(’’)fout=file(’sshlog.txt’,’w’)ssh.logfile=foutssh.expect(“’spassword:“)ssh.sendline(“密码“)ssh.expect(’#’)ssh.sendline(’ls/home’)ssh.expect(’#’)Python-取系统时间importsysimporttimetime_str=time.strftime(“日期:%Y-%m-%d“,time.localtime())print(time_str)time_str=time.strftime(“时间:%H:%M“,time.localtime())print(time_str)psutil-获取内存使用情况importsysimportosimportpsutilmemory_convent=*mem=psutil.virtual_memory()print(“内存容量为:“+str(mem.total/(memory_convent))+“MB
⑹“)print(“已使用内存:“+str(mem.used/(memory_convent))+“MB
⑺“)print(“可用内存:“+str(mem.total/(memory_convent)-mem.used/(*))+“MB
⑻“)print(“buffer容量:“+str(mem.buffers/(memory_convent))+“MB
⑼“)print(“cache容量:“+str(mem.cached/(memory_convent))+“MB
⑽“)Python-通过SNMP协议监控CPU注意:被监控的机器上需要支持snmp协议yuminstall-y-snmp*importosdefgetAllitems(host,oid):sn=os.popen(’snmpwalk-vc-cpublic’+host+’’+oid+’|grepRaw|grepCpu|grep-vKernel’).read().split(’
⑾’)returnsndefgetDate(host):items=getAllitems(host,’........’)ifname==’main’:Python-通过SNMP协议监控系统负载注意:被监控的机器上需要支持snmp协议yuminstall-y-snmp*importosimportsysdefgetAllitems(host,oid):sn=os.popen(’snmpwalk-vc-cpublic’+host+’’+oid).read().split(’
⑿’)returnsndefgetload(host,loid):load_oids=’..........’+str(loid)returngetAllitems(host,load_oids)ifname==’main’:Python-通过SNMP协议监控内存注意:被监控的机器上需要支持snmp协议yuminstall-y-snmp*importosdefgetAllitems(host,oid):defgetSwapTotal(host):defgetSwapUsed(host):defgetMemTotal(host):defgetMemUsed(host):ifname==’main’:Python-通过SNMP协议监控磁盘注意:被监控的机器上需要支持snmp协议yuminstall-y-snmp*importreimportosdefgetAllitems(host,oid):defgetDate(source,newitem):defgetRealDate(item,item,listname):defcaculateDiskUsedRate(host):ifname==’main’:Python-通过SNMP协议监控网卡流量注意:被监控的机器上需要支持snmp协议yuminstall-y-snmp*importreimportosdefgetAllitems(host,oid):sn=os.popen(’snmpwalk-vc-cpublic’+host+’’+oid).read().split(’
⒀’)returnsndefgetDevices(host):device_mib=getAllitems(host,’RFC-MIB::ifDescr’)device_list=defgetDate(host,oid):date_mib=getAllitems(host,oid)date=ifname==’main’:Python-实现多级菜单importosimportsysps=“-》“ip=flage=whileTrue:ps=“-》“temp=input(ps)if(temp==“test“):print(“testpage!!!!“)elif(temp==“user“):while(flage==):ps=“-》“temp=input(ps)if(temp==“exit“):flage=breakelif(temp==“show“):foriinrange(len(ip)):print(i)Python实现一个没用的东西importsysps=“#“ip=whileTrue:temp=input(ps)temp=temp.split()检查各个进程读写的磁盘IOimportsysimportosimporttimeimportsignalimportreclassDiskIO:definit(self,pname=None,pid=None,reads=,writes=):self.pname=pnameself.pid=pidself.reads=self.writes=defmain():argc=len(sys.argv)ifargc!=:print(“usage:pleaserunthisscriptlike“)sys.exit()ifos.getuid()!=:print(“Error:Thisscriptmustberunasroot“)sys.exit()signal.signal(signal.SIGINT,signal_handler)os.system(’echo》/proc/sys/vm/block_dump’)print(“TASKPIDREADWRITE“)whileTrue:os.system(’dmesg-c》/tmp/diskio.log’)l=f=open(’/tmp/diskio.log’,’r’)line=f.readline()whileline:m=re.match(’^(S+)(d+)(d+):(READ|WRITE)block(d+)on(S+)’,line)ifm!=None:ifnotl:l.append(DiskIO(m.group(),m.group()))line=f.readline()continuefound=Falseforiteminl:ifitem.pid==m.group():found=Trueifm.group()==“READ“:item.reads=item.reads+elifm.group()==“WRITE“:item.writes=item.writes+ifnotfound:l.append(DiskIO(m.group(),m.group()))line=f.readline()time.sleep()foriteminl:print(“%-s%s%d%d“%(item.pname,item.pid,item.reads,item.writes))defsignal_handler(signal,frame):os.system(’echo》/proc/sys/vm/block_dump’)sys.exit()ifname==“main“:main()利用Pexpect实现自动非交互登陆linuximportpexpectimportsysssh=pexpect.spawn(’’)fout=file(’sshlog.log’,’w’)ssh.logfile=foutssh.expect(“’spassword:“)ssh.sendline(“密码“)ssh.expect(’#’)ssh.sendline(’ls/home’)ssh.expect(’#’)利用psutil模块获取系统的各种统计信息importsysimportpsutilimporttimeimportostime_str=time.strftime(“%Y-%m-%d“,time.localtime())file_name=“(file_name)==False:os.mknod(file_name)handle=open(file_name,“w“)else:handle=open(file_name,“a“)iflen(sys.argv)==:print_type=else:print_type=defisset(list_arr,name):ifnameinlist_arr:returnTrueelse:returnFalseprint_str=““;if(print_type==)orisset(sys.argv,“mem“):memory_convent=*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/(*))+“MB
⒄“print_str=print_str+“内存的buffer容量为:“+str(mem.buffers/(memory_convent))+“MB
⒅“print_str=print_str+“内存的cache容量为:“+str(mem.cached/(memory_convent))+“MB
⒆“if(print_type==)orisset(sys.argv,“cpu“):print_str+=“CPU状态如下:
⒇“cpu_status=psutil.cpu_times()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)+“
⒐“if(print_type==)orisset(sys.argv,“disk“):print_str+=“硬盘信息如下:
⒑“disk_status=psutil.disk_partitions()foritemindisk_status:print_str=print_str+““+str(item)+“
⒒“if(print_type==)orisset(sys.argv,“user“):print_str+=“登录用户信息如下:
⒓“user_status=psutil.users()foriteminuser_status:print_str=print_str+““+str(item)+“
⒔“print_str+=“---------------------------------------------------------------
⒕“print(print_str)handle.write(print_str)handle.close()importpsutilmem=psutil.virtual_memory()printmem.total,mem.used,memprintpsutil.swap_memory()#输出获取SWAP分区信息cpu=psutil.cpu_stats()printcpu.interrupts,cpu.ctx_switchespsutil.cpu_times(percpu=True)#输出每个核心的详细CPU信息psutil.cpu_times().user#获取CPU的单项数据psutil.cpu_count()#获取CPU逻辑核心数。
⒖Python运维工程师是什么Python运维工程师工作职责及要求!
⒗很多人应该都听说过Python工程师、Linux运维工程师,那么你知道什么是Python运维工程师吗?它的工作职责以及岗位要求是什么呢?我们一起来看看吧。Python运维工程师是什么?运维工程师最基本的职责是负责服务的稳定性,确保服务可以二十四小时不间断地为用户提供服务,这个岗位负责维护并确保整个服务的高可用性,同时不断优化系统架构、提升部署效率、优化资源利用率提高整体ROI。Python运维工程师工作职责及要求!工作职责:、负责公司自动化运维管理工具开发;、利用Python开发,使得服务器物理数据或进程数据Web界面化;、根据需求编写SaltStack脚本完成相关软件部署、配置、管理;、提升运维工作自动化以及智能化程度;、日常运维相关脚本编写。岗位要求:、熟悉Linux系统,包含操作系统原理、常用系统命令、系统服务;、熟练掌握Python语言,熟练使用Python常用模块和服务器技术相关模块;、至少熟悉一种PythonWeb框架,如Django、Tornado等;、至少一年以上Python项目开发经验,能够利用Python提取服务器物理数据或告警信息,达到界面可视化。
⒘python运维常用脚本
⒙Python批量遍历目录文件,并修改访问时间
⒚path=“D:/UASM/include/“dirs=os.listdir(path)temp=;
⒛forfileindirs:temp.append(os.path.join(path,file))forxintemp:os.utime(x,(,))Python实现的自动化服务器管理
importsysimportosimportparamiko
ssh=paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
defssh_cmd(user,passwd,port,userfile,cmd):
defssh_put(user,passwd,source,target):
whileTrue:try:shell=str(input(“#“))if(shell==““):continueelif(shell==“exit“):exit()elif(shell==“put“):ssh_put(“root“,““,“)elif(shell==“cron“):temp=input(“输入一个计划任务:“)temp=“(crontab-l;echo“+temp+“)|crontab“ssh_cmd(“root“,““,““,“)elif(shell==“uncron“):temp=input(“输入要删除的计划任务:“)temp=“crontab-l|grep-v““+temp+“|crontab“ssh_cmd(“root“,““,““,“)else:ssh_cmd(“lyshark“,““,““,“)
deflist_all_files(rootdir):importos_files=list=os.listdir(rootdir)#列出文件夹下所有的目录与文件foriinrange(,len(list)):path=os.path.join(rootdir,list)ifos.path.isdir(path):_files.extend(list_all_files(path))ifos.path.isfile(path):_files.append(path)return_files
a=list_all_files(“C:/Users/LyShark/Desktop/a“)print(a)python检测指定端口状态
importsocket
sk=socket.socket(socket.AF_I,socket.SOCK_STREAM)sk.settimeout()
foripinrange(,):try:sk.connect((“...“+str(ip),))print(“...%dserveropen
“%ip)exceptException:print(“...%dservernotopen“%ip)
sk.close()
python实现批量执行CMD命令
importsysimportosimportparamiko
ssh=paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print(“------------------------------》
“)print(“使用说明,在当前目录创建ip.txt写入ip地址“)print(“------------------------------》
user=input(“输入用户名:“)passwd=input(“输入密码:“)port=input(“输入端口:“)cmd=input(“输入执行的命令:“)
file=open(“)line=file.readlines()
importsysimportos
str=os.popen(“psaux“,“r“).readlines()
foriinstr:str=i.split()new_rss=strlist.append(new_rss)foriinlist:num=int(i)sum=sum+num
print(“%s---》%s“%(list,sum))
关于Python命令行参数argv
iflen(sys.argv)《:print(“没有输入任何参数“)sys.exit()
ifsys.argv.startswith(“-“):option=sys.argv
利用random生成位数字加字母随机验证码
importsysimportrandom
forxinrange():y=random.randrange(,)ify==ory==:num=random.randrange(,)rand.append(str(num))else:temp=random.randrange(,)c=chr(temp)rand.append(c)result=““.join(rand)print(result)
自动化-使用pexpect非交互登陆系统
importpexpectimportsys
ssh=pexpect.spawn(’’)fout=file(’sshlog.txt’,’w’)ssh.logfile=fout
ssh.expect(“’spassword:“)
ssh.sendline(“密码“)ssh.expect(’#’)
ssh.sendline(’ls/home’)ssh.expect(’#’)
Python-取系统时间
importsysimporttime
time_str=time.strftime(“日期:%Y-%m-%d“,time.localtime())print(time_str)
time_str=time.strftime(“时间:%H:%M“,time.localtime())print(time_str)
psutil-获取内存使用情况
importsysimportosimportpsutil
memory_convent=*mem=psutil.virtual_memory()
print(“内存容量为:“+str(mem.total/(memory_convent))+“MB
“)print(“已使用内存:“+str(mem.used/(memory_convent))+“MB
“)print(“可用内存:“+str(mem.total/(memory_convent)-mem.used/(*))+“MB
“)print(“buffer容量:“+str(mem.buffers/(memory_convent))+“MB
“)print(“cache容量:“+str(mem.cached/(memory_convent))+“MB
Python-通过SNMP协议监控CPU注意:被监控的机器上需要支持snmp协议yuminstall-y-snmp*
defgetAllitems(host,oid):sn=os.popen(’snmpwalk-vc-cpublic’+host+’’+oid+’|grepRaw|grepCpu|grep-vKernel’).read().split(’
’)returnsn
defgetDate(host):items=getAllitems(host,’........’)
ifname==’main’:
Python-通过SNMP协议监控系统负载注意:被监控的机器上需要支持snmp协议yuminstall-y-snmp*
importosimportsys
defgetAllitems(host,oid):sn=os.popen(’snmpwalk-vc-cpublic’+host+’’+oid).read().split(’
’)returnsn
defgetload(host,loid):load_oids=’..........’+str(loid)returngetAllitems(host,load_oids)
ifname==’main’:
Python-通过SNMP协议监控内存注意:被监控的机器上需要支持snmp协议yuminstall-y-snmp*
defgetAllitems(host,oid):
defgetSwapTotal(host):
defgetSwapUsed(host):
defgetMemTotal(host):
defgetMemUsed(host):
ifname==’main’:
Python-通过SNMP协议监控磁盘注意:被监控的机器上需要支持snmp协议yuminstall-y-snmp*
importreimportos
defgetAllitems(host,oid):
defgetDate(source,newitem):
defgetRealDate(item,item,listname):
defcaculateDiskUsedRate(host):
ifname==’main’:
Python-通过SNMP协议监控网卡流量注意:被监控的机器上需要支持snmp协议yuminstall-y-snmp*
importreimportos
defgetAllitems(host,oid):sn=os.popen(’snmpwalk-vc-cpublic’+host+’’+oid).read().split(’
’)returnsn
defgetDevices(host):device_mib=getAllitems(host,’RFC-MIB::ifDescr’)device_list=
defgetDate(host,oid):date_mib=getAllitems(host,oid)date=
ifname==’main’:
Python-实现多级菜单
importosimportsys
ps=“-》“ip=flage=
whileTrue:ps=“-》“temp=input(ps)if(temp==“test“):print(“testpage!!!!“)elif(temp==“user“):while(flage==):ps=“-》“temp=input(ps)if(temp==“exit“):flage=breakelif(temp==“show“):foriinrange(len(ip)):print(i)
Python实现一个没用的东西
whileTrue:temp=input(ps)temp=temp.split()
检查各个进程读写的磁盘IO
importsysimportosimporttimeimportsignalimportre
classDiskIO:definit(self,pname=None,pid=None,reads=,writes=):self.pname=pnameself.pid=pidself.reads=self.writes=
defmain():argc=len(sys.argv)ifargc!=:print(“usage:pleaserunthisscriptlike“)sys.exit()ifos.getuid()!=:print(“Error:Thisscriptmustberunasroot“)sys.exit()signal.signal(signal.SIGINT,signal_handler)os.system(’echo》/proc/sys/vm/block_dump’)print(“TASKPIDREADWRITE“)whileTrue:os.system(’dmesg-c》/tmp/diskio.log’)l=f=open(’/tmp/diskio.log’,’r’)line=f.readline()whileline:m=re.match(’^(S+)(d+)(d+):(READ|WRITE)block(d+)on(S+)’,line)ifm!=None:ifnotl:l.append(DiskIO(m.group(),m.group()))line=f.readline()continuefound=Falseforiteminl:ifitem.pid==m.group():found=Trueifm.group()==“READ“:item.reads=item.reads+elifm.group()==“WRITE“:item.writes=item.writes+ifnotfound:l.append(DiskIO(m.group(),m.group()))line=f.readline()time.sleep()foriteminl:print(“%-s%s%d%d“%(item.pname,item.pid,item.reads,item.writes))defsignal_handler(signal,frame):os.system(’echo》/proc/sys/vm/block_dump’)sys.exit()
ifname==“main“:main()
利用Pexpect实现自动非交互登陆linux
importpexpectimportsys
ssh=pexpect.spawn(’’)fout=file(’sshlog.log’,’w’)ssh.logfile=fout
ssh.expect(“’spassword:“)
ssh.sendline(“密码“)
ssh.expect(’#’)ssh.sendline(’ls/home’)ssh.expect(’#’)
利用psutil模块获取系统的各种统计信息
importsysimportpsutilimporttimeimportos
time_str=time.strftime(“%Y-%m-%d“,time.localtime())file_name=“
ifos.path.exists(file_name)==False:os.mknod(file_name)handle=open(file_name,“w“)else:handle=open(file_name,“a“)
iflen(sys.argv)==:print_type=else:print_type=
defisset(list_arr,name):ifnameinlist_arr:returnTrueelse:returnFalse
print_str=““;
if(print_type==)orisset(sys.argv,“mem“):memory_convent=*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/(*))+“MB
“print_str=print_str+“内存的buffer容量为:“+str(mem.buffers/(memory_convent))+“MB
“print_str=print_str+“内存的cache容量为:“+str(mem.cached/(memory_convent))+“MB
if(print_type==)orisset(sys.argv,“cpu“):print_str+=“CPU状态如下:
“cpu_status=psutil.cpu_times()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)+“
if(print_type==)orisset(sys.argv,“disk“):print_str+=“硬盘信息如下:
“disk_status=psutil.disk_partitions()foritemindisk_status:print_str=print_str+““+str(item)+“
if(print_type==)orisset(sys.argv,“user“):print_str+=“登录用户信息如下:
“user_status=psutil.users()foriteminuser_status:print_str=print_str+““+str(item)+“
print_str+=“---------------------------------------------------------------
“print(print_str)handle.write(print_str)handle.close()
importpsutil
mem=psutil.virtual_memory()printmem.total,mem.used,memprintpsutil.swap_memory()#输出获取SWAP分区信息
cpu=psutil.cpu_stats()printcpu.interrupts,cpu.ctx_switches
psutil.cpu_times(percpu=True)#输出每个核心的详细CPU信息psutil.cpu_times().user#获取CPU的单项数据psutil.cpu_count()#获取CPU逻辑核心数,默认logical=Truepsutil.cpu_count(logical=False)#获取CPU物理核心数
psutil.disk_partitions()#列出全部的分区信息psutil.disk_usage(’/’)#显示出指定的挂载点情况【字节为单位】psutil.disk_io_counters()#磁盘总的IO个数psutil.disk_io_counters(perdisk=True)#获取单个分区IO个数
psutil._io_counter()获取网络总的IO,默认参数pernic=Falsepsutil._io_counter(pernic=Ture)获取网络各个网卡的IO
psutil.pids()#列出所有进程的pid号p=psutil.Process()p.name()列出进程名称p.exe()列出进程bin路径p.cwd()列出进程工作目录的绝对路径p.status()进程当前状态p.create_time()进程创建的时间p.uids()p.gids()p.cputimes()【进程的CPU时间,包括用户态、内核态】p.cpu_affinity()#显示CPU亲缘关系p.memory_percent()进程内存利用率p.meminfo()进程的RSS、VMS信息p.io_counters()进程IO信息,包括读写IO数及字节数p.connections()返回打开进程socket的namedutples列表p.num_threads()进程打开的线程数
importpsutilfromsubprocessimportPIPEp=psutil.Popen(,stdout=PIPE)p.name()p.username()p.municate()p.cpu_times()
psutil.users()#显示当前登录的用户,和Linux的who命令差不多
psutil.boot_time()结果是个UNIX时间戳,下面我们来转换它为标准时间格式,如下:datetime.datetime.fromtimestamp(psutil.boot_time())#得出的结果不是str格式,继续进行转换datetime.datetime.fromtimestamp(psutil.boot_time()).strftime(’%Y-%m-%d%H:%M:%S’)
Python生成一个随机密码
importrandom,stringdefGenPassword(length):
ifname==’main’:print(GenPassword())
运维开发为什么要用Python
对于运维而言,系统运行过程中变化小,重复性非常高
Python是高层语言,只需要(-测试-调试过程,不需要编译,在每一次使用时直接调用库文件
开发速度Python是C、C的倍,甚至可以将C、C已经编好的程序直接附在python中使用,python就像胶水语言一样,所以python非常适合做测试,运维管理