技术文章 门禁与楼宇对讲

Python自动化运维脚本实战

管理员 2026-05-29 01:38 7 次阅读

Python自动化运维脚本实战

一、服务器批量操作脚本

import paramiko

def ssh_command(host, port, user, password, command):
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(host, port, user, password, timeout=10)
    stdin, stdout, stderr = ssh.exec_command(command)
    output = stdout.read().decode()
    ssh.close()
    return output

# 使用示例
result = ssh_command('192.168.1.100', 22, 'root', 'pass', 'uptime')
print(result)

二、日志分析脚本

import re
from collections import Counter

def analyze_nginx_log(log_file):
    ip_counter = Counter()
    with open(log_file, 'r') as f:
        for line in f:
            match = re.search(r'(\d+\.\d+\.\d+\.\d+)', line)
            if match:
                ip_counter[match.group(1)] += 1
    for ip, count in ip_counter.most_common(10):
        print(f"{ip}: {count}次")

三、自动备份脚本

import os
import shutil
from datetime import datetime

class BackupManager:
    def __init__(self):
        self.backup_dir = '/backup'
        self.date = datetime.now().strftime('%Y%m%d')

    def backup_files(self, source_dirs):
        for source_dir in source_dirs:
            backup_name = f"backup_{self.date}.tar.gz"
            os.system(f'tar -czvf {self.backup_dir}/{backup_name} {source_dir}')

四、系统监控脚本

import psutil

def get_system_info():
    cpu = psutil.cpu_percent(interval=1)
    mem = psutil.virtual_memory()
    disk = psutil.disk_usage('/')
    print(f"CPU: {cpu}%")
    print(f"Memory: {mem.percent}%")
    print(f"Disk: {disk.percent}%")

if __name__ == '__main__':
    get_system_info()