运维常用的Python第三方模块及实例
在运维工作中,Python是一种非常流行的脚本语言,因为它具有简洁的语法、丰富的库和跨平台的能力。运维工程师经常使用Python来编写自动化脚本,以简化日常任务。以下是一些运维常用的Python第三方模块及其示例:
paramiko - 用于SSH连接和执行命令。
示例:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname', username='username', password='password')
stdin, stdout, stderr = ssh.exec_command('ls -l')
output = stdout.read().decode()
print(output)
ssh.close()
fabric - 基于paramiko的库,提供更高级的SSH命令执行和部署功能。
示例(需要fabric3,因为fabric2改变了API):
from fabric.api import env, run
env.hosts = ['hostname']
env.user = 'username'
env.password = 'password'
def list_files():
run('ls -l')
然后运行 fab list_files
来执行函数。
psutil - 获取系统和进程相关的信息。
示例:
import psutil
# 获取CPU信息
print('CPU percent:', psutil.cpu_percent())
# 获取内存信息
print('Memory info:', psutil.virtual_memory())
# 获取磁盘使用情况
print('Disk usage:', psutil.disk_usage('/'))
# 获取进程信息
for proc in psutil.process_iter(['pid', 'name']):
print(proc.info)
requests - 用于HTTP请求。
示例:
import requests
response = requests.get('https://www.example.com')
print(response.text)
jinja2 - 模板引擎,常用于生成配置文件。
示例:
from jinja2 import Template
template = Template('Hello, {{ name }}!')
result = template.render(name='World')
print(result) # 输出: Hello, World!
pyyaml - 用于解析和生成YAML格式的数据。
示例:
import yaml
data = {
'name': 'John',
'age': 30,
'city': 'New York'
}
with open('data.yaml', 'w') as file:
documents = yaml.dump(data, file)
with open('data.yaml', 'r') as file:
loaded_data = yaml.safe_load(file)
print(loaded_data)
configparser (内置模块) - 用于解析INI配置文件。
示例:
import configparser
config = configparser.ConfigParser()
config.read('example.ini')
# 访问配置文件中的值
section = 'database'
host = config.get(section, 'host')
port = config.getint(section, 'port')
print(f'Host: {host}, Port: {port}')
本文来自博客园,作者:dashery,转载请注明原文链接:https://www.cnblogs.com/ydswin/p/18071286