ydswin

忘记背后,努力面前的,向着标杆直跑

导航

运维常用的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}')

posted on 2024-03-13 18:26  dashery  阅读(123)  评论(0编辑  收藏  举报