Python 运维脚本通常用于自动化服务器管理任务,如监控服务器状态、执行命令、管理服务等。下面是一些基本的 Python 运维脚本示例,你可以根据需要进行修改和扩展。
1. 获取外网 IP 地址
import requestsdef get_external_ip():response = requests.get('http://txt.go.sohu.com/ip/soip')ip = response.text.strip()return ipprint("本机外网 IP 地址:", get_external_ip())
2. 生成随机密码
import randomimport stringdef generate_password(length=8):characters = string.ascii_letters + string.digitsreturn ''.join(random.choice(characters) for i in range(length))print("生成的随机密码:", generate_password())
3. 连接远程服务器并执行命令
import paramikodef 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, errorhostname = '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 argparsefrom subprocess import calldef 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 shutilfrom datetime import datetimedef 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 psutilimport smtplibfrom email.message import EmailMessagedef monitor_resources():cpu_usage = psutil.cpu_percent()memory_usage = psutil.virtual_memory().percentmsg = 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/70545.html