CentOS Python自动化运维可以通过多种方式实现,主要包括连接远程服务器、文件传输、监控与报警、定时任务执行等。以下是具体的实现方法:
1. 连接远程服务器并执行命令
使用Python的paramiko
库可以轻松实现SSH连接远程服务器并执行命令。
import paramikossh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect('hostname', port=22, username='your_username', password='your_password')stdin, stdout, stderr = ssh.exec_command('ls -l')output = stdout.read().decode()print(output)ssh.close()
2. 文件传输
paramiko
库还提供了SFTP文件传输协议,支持快速上传和下载文件。
import paramikossh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect('hostname', port=22, username='your_username', password='your_password')sftp = ssh.open_sftp()sftp.put('local_file.txt', '/remote/path/remote_file.txt')sftp.get('/remote/path/remote_file.txt', 'local_downloaded_file.txt')sftp.close()ssh.close()
3. 监控与报警
使用psutil
库可以实时监控服务器的CPU、内存等信息,并通过邮件或其他方式报警。
import psutilimport smtplibfrom email.mime.text import MIMETextcpu_usage = psutil.cpu_percent(interval=1)memory_info = psutil.virtual_memory()memory_usage = memory_info.percentif cpu_usage >80 or memory_usage >80: msg = MIMEText(f"警告!CPU使用率: { cpu_usage}%,内存使用率: { memory_usage}%") msg['Subject'] = '服务器性能警告' msg['From'] = 'your_email@example.com' msg['To'] = 'alert_recipient@example.com' server = smtplib.SMTP('smtp.example.com') server.login('user', 'password') server.sendmail('your_email@example.com', ['alert_recipient@example.com'], msg.as_string()) server.quit()
4. 定时任务执行
在CentOS中,可以使用crontab
来管理定时任务。通过crontab -e
命令编辑当前用户的定时任务列表。
*/1 * * * * /usr/bin/python3 /path/to/your/script.py
这条命令表示每小时执行一次/path/to/your/script.py
脚本。
5. Python自动化部署
使用PyInstaller
可以将Python脚本打包成可执行文件,便于部署到其他Linux系统上。
pip3 install pyinstallerpyinstaller --onefile your_script.py
生成的可执行文件将位于dist
目录下,可以复制到其他系统上直接运行。
6. 环境初始化与部署脚本
可以创建一系列的Shell脚本来自动化环境初始化、安装依赖、配置防火墙等任务。
#!/bin/bash# install_dependencies.shyum install -y python3 python3-pippip3 install virtualenv
通过这些步骤,你可以在CentOS上实现Python自动化运维,提高工作效率并减少人为错误。