[标签]: python运维常用模块 OS模块 Shutil块 Sys模块 Datetime模块 Psutil模块
问题详情的描述或方案目标的预期:
运维专用的模块其实不多,学一个少一个,就像最初你学习Linux命令一样,熟练越多的模块就像懂越多的shell命令,最后python你就非常熟练了,新东西也能触类旁通。
【解决方案】
整体思路:一个一个模块学,当你熟练掌握10个模块后,你会发现新的模块也很快上手。
1、OS模块
OS模块是运维工程师在运维工作过程中使用最为频繁的模块,其中提供了大量操作系统底层的接口,帮助运维工程师完成自己的运维工作。
os.getcwd()
获取当前工作目录,即当前Python脚本的目录路径
os.chdir("dirpath")
更改当前脚本工作目录,相当于在 Shell 下执行 cd 命令
os.curdir
返回当前目录路径
os.pardir
返回上一级目录路径
os.makedirs("dir1/dir2")
递归生成目录路径
os.removedirs('dirname1')
删除目录,如果其中有文件,则递归删除
os.mkdir("dir")
删除目录,若目录不为空则无法删除,报错;相当于 shell 中 rmdir。
os.listdir("dir")
列出特定目录下文件和子目录
os.remove()
删除某个特定文件
os.rename("old name","newname")
重命名某个文件
os.stat("filename")
获取某个文件/目录的信息
os.sep
输出目录路径分隔符,可以用于处理不同平台之间的差异
os.linesep
输出文件行终止符,可以用于处理不同平台之间的差异
os.pathsep
输出用于分隔文件路径的字符串,可以用于处理不同平台之间的差异
os.name
输出当前操作系统的名称,可以用于处理不同平台之间的差异
os.environ
获取当前系统的环境变量
os.access(path,mode)
判断是否有权限对文件进行读、写、执行等操作
os.chmod(path,mode)
修改文件的权限
os.chown(path,uid,gid)
修改文件的属主和属组
os.symlink(src,dst)
创建软连接
os.times()
获取系统进程运行时间
2、Shutil 模块
Shutil 模块提供了一系列的 Shell 功能,让运维工程师可以用更简单的方式完成 OS 模块无法完成的功能。
shutil.copyfile(src,dst)
复制源文件到目标路径
shutil.copymode(src,dst)
复制源文件权限到目标文件
shutil.copystat(src,dst)
复制源文件文件、最近修改时间、Flag 等到目标文件
shutil.copy(src,dst)
复制源文件到目标路径
shutil.copy2(src,dst)
复制源文件及相关元信息到目标路径
shutil.move(src,dst)
移动文件/目录
shutil.disk_usage(path)
返回对应路径的磁盘的使用统计情况
shutil.copytree(src,dst)
将 src 的整个目录树复制到 dst 目录
shutil.which
获取要执行的命令的路径
3、Sys模块
sys.exit(0)
退出当前进程。参数为 0 时表示正常退出;参数为 1 时表示异常退出
sys.version
获取 Python 版本
sys.path
获取模块的搜索路径
sys.platform
获取操作系统名称
sys.stdin
标准输入
sys.stdout
标准输出
sys.stderr
错误输出
4、Datetime模块
datetime.date(year,month,day)
构建一个 date 对象
datetime.date(year,month,day).today()
返回当前的本地日期
datetime.date(year,month,day).strftime(format)
对时间进行格式化后输出
datetime.now()
返回当前时间
datetime.timestamp()
返回当前时间戳
5、Psutil模块
psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统使用情况,包括CPU、内存、磁盘使用率、读写IO、网络等信息。
psutil模块非Python内置模块,需安装: pip install psutil
psutil.cpu_count()
获取 CPU 逻辑核心数
psutil.cpu_count(logical=False)
获取 CPU 物理核心数
psutil.cpu_times()
获取 CPU 的用户/系统/空闲时间
psutil.virtual_memory()
获取系统的内存信息
psutil.swap_memory()
获取系统交换内存的信息
psutil.disk_partitions()
获取磁盘分区信息
psutil.disk_usage('/')
获取磁盘使用情况
psutil.disk_io_counters()
获取磁盘 IO
psutil.net_io_counters()
获取网络读写包的情况
psutil.net_if_addrs()
获取网络接口信息
psutil.net_if_stats()
获取网络接口状态
psutil.pids()
获取所有进程信息
总结:坚持去搞才能搞明白,怕是没有用的。