python 运维开发都需要掌握哪些_python自动化运维

python 运维开发都需要掌握哪些_python自动化运维Python 运维脚本通常用于自动化服务器管理任务 如监控服务器状态 执行命令 管理服务等 下面是一些基本的 Python 运维脚本示例 你可以根据需要进行修改和扩展 1 获取外网 IP 地址 pythonimport requests def get external ip response requests get http txt go sohu

Python 运维脚本通常用于自动化服务器管理任务,如监控服务器状态、执行命令、管理服务等。下面是一些基本的 Python 运维脚本示例,你可以根据需要进行修改和扩展。

1. 获取外网 IP 地址

 import requests def get_external_ip(): response = requests.get('http://txt.go.sohu.com/ip/soip') ip = response.text.strip() return ip print("本机外网 IP 地址:", get_external_ip()) 

2. 生成随机密码

 import random import string def generate_password(length=8): characters = string.ascii_letters + string.digits return ''.join(random.choice(characters) for i in range(length)) print("生成的随机密码:", generate_password()) 

3. 连接远程服务器并执行命令

 import paramiko def execute_remote_command(hostname, username, password, command): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname, username=username, password=password) stdin, stdout, stderr = ssh.exec_command(command) output = stdout.read().decode('utf-8') error = stderr.read().decode('utf-8') ssh.close() return output, error hostname = 'remote.server.com' username = 'user' password = 'password' command = 'ls' output, error = execute_remote_command(hostname, username, password, command) print("命令输出:", output) if error: print("命令错误:", error) 

4. 管理服务(启动、停止、重启)

 import argparse from subprocess import call def manage_service(service, action): if action == 'start': call(['systemctl', 'start', service]) elif action == 'stop': call(['systemctl', 'stop', service]) elif action == 'restart': call(['systemctl', 'restart', service]) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('service', help='服务名称') parser.add_argument('-s', '--start', help='启动服务', action='store_true') parser.add_argument('-k', '--stop', help='停止服务', action='store_true') parser.add_argument('-r', '--restart', help='重启服务', action='store_true') args = parser.parse_args() manage_service(args.service, args.action) 

5. 文件备份

 import shutil from datetime import datetime def backup_files(source_dir, backup_dir): now = datetime.now() backup_filename = f'backup_{now.strftime("%Y%m%d%H%M%S")}' shutil.copytree(source_dir, os.path.join(backup_dir, backup_filename)) print(f'备份完成:{source_dir} -> {backup_dir}/{backup_filename}') source_dir = '/path/to/source' backup_dir = '/path/to/backup' backup_files(source_dir, backup_dir) 

6. 监控系统资源使用情况

 import psutil import smtplib from email.message import EmailMessage def monitor_resources(): cpu_usage = psutil.cpu_percent() memory_usage = psutil.virtual_memory().percent msg = EmailMessage() msg.set_content(f'CPU 使用率:{cpu_usage}%,内存使用率:{memory_usage}%') with smtplib.SMTP('smtp.example.com', 587) as server: server.starttls() server.login('', 'your_password') server.send_message(msg) monitor_resources() 

这些脚本展示了如何使用 Python 进行基本的运维任务。你可以根据实际需求添加更多功能,如日志记录、异常处理、邮件通知等。记得在部署到生产环境前进行充分的测试,并确保脚本的安全性

编程小号
上一篇 2024-12-25 23:21
下一篇 2024-12-25 23:18

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/144752.html