OS模块
1、python中内置了一个操作系统相关的模块
os模块
这个模块提供了多数操作系统的功能接口函数。在不同系统执行时,os模块会自适应于不同的操作系统平台,调用不同的接口;
2、导入os模块:
import os
3、常用命令:
获取系统名称 os.name
获取当前工作目录 ;os.getCwd()
执行命令: os.system('命令行')文件和文件夹相关:
os.remove(path) 删除指定的文件
os.rename(src,dest) 重命名文件或目录
os.stat(path) 返回文件的所有属性
os.listdir(path) 返回path目录下的文件和目录列表
os.mkdir(path) 创建目录
os.makedirs(path1/path2/path3/.....) 创建多级目录
os.rmdir(path) 删除目录
os.removedirs(path1/path2/path3/...) 删除多级目录路径相关函数:
os.path.isabs(path) 判断path是否是绝对路径
os.path.isdir(path) 判断path是否为目录
os.path.isfile(path) 判断path是否为文件
os.path.exists(path) 判断指定路径的文件是否存在
os.path.getsize(filename) 返回文件大小
os.path.abspath(path) 返回绝对路径
platform模块
platform模块也是系统内置模块,给我们提供了很多方法去获取操作系统的信息
参考以下注释信息:
import platform
platform.platform() #获取操作系统名称及版本号,
platform.version() #获取操作系统版本号,
platform.architecture() #获取操作系统的位数
platform.machine() #计算机类型,
platform.node() #计算机的网络名称,
platform.processor() #计算机处理器信息,
platform.uname() #包含上面所有的信息汇总
扩展第三方库psutil
psutil是一个跨平台库能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。
官网地址: http://pythonhosted.org/psutil/
安装方式: pip install psutil
示例代码:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import psutil
import time
'''监控服务进程并重启'''
monitor_name = set(['httpd','keepalived']) # 用户指定监控的服务进程名称
monitor_map = {
'httpd': 'systemctl restart httpd',
'keepalived': 'systemctl restart keepalived' # 系统在进程down掉后,自动重启
}
proc_dict = {}
proc_name = set() # 系统检测的进程名称
while True:
for proc in psutil.process_iter(attrs=['pid','name']):
proc_dict[proc.info['pid']] = proc.info['name']
proc_name.add(proc.info['name'])
# 通过集合的形式来找出停掉的进程名,前者有但是后者没有的
proc_stop = monitor_name - proc_name
# 如果确实有监控的进程停掉了,需要自动重启功能
if proc_stop:
for p in proc_stop:
p_name = p
# 执行重启命令,然后判断是否重启成功
os.system(monitor_map[p_name])