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 进行基本的运维任务。你可以根据实际需求添加更多功能,如日志记录、异常处理、邮件通知等。记得在部署到生产环境前进行充分的测试,并确保脚本的安全性
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/144752.html