Python自动化实战第一篇: 自动化备份100+台服务器Web 配置
大家好我是木木,现如今在运维工作中如果同时管理几十上百台Web应用程序,并且要每天进行系统的配置备份或者升级操作、按规则命名保存,是非常的耗时耗力,还容易因操作疏忽导致备份遗漏或命名混乱。
本次文章通过Python实现全自动化备份:从读取服务器配置、批量登录 Web 应用,到触发备份下载,只需要一键运行程序即可。
需求
由于我自己写的系统没有备份配置按钮,通过导出按钮做演示。
1、自动打开浏览器,点击右上角“登录”
2、调整登录页面,自动输入用户名和密码,进行登录
3、自动点击“流水页”,点击“导出CSV文件”,最后关闭浏览器,完成配置备份。
环境准备
安装对应依赖包:pip install selenium configparser
selenium:web自动化测试工具,可以模拟浏览器的各种操作,比如:鼠标点击、输入、提交等。
configparser:解析配置文件的库。
代码拆解
1、创建服务器的配置文件
里面包括需要做自动化的访问页面、端口、系统用户名、系统密码、系统页面的登录输入框、密码输入框、登录按钮以及登录页面后需要点击的几个按钮标签。
如上图需求我需要准备的内容如下:
ip:127.0.0.1
port:5000
username:业务系统登录用户名
password:业务系统登录密码
login_username_field:系统登录页面的登录输入框的值-需要通过F12查看对应值的属性值
login_password_field:系统登录页面的密码输入框的值-需要通过F12查看对应值的属性值
login_button:系统登录页面的登录按钮-需要通过F12查看对应值的属性值
login_link_xpath:系统右上角跳转到登录页面链接按钮-需要通过F12查看对应值的属性值
nav1_xpath:流水页
csv_button:导出CSV
有多少台服务器,就需要写多少个server_X的内容。比如右100台 就需要写100个,前期会比较费力 第一次过后就轻松直接一键运行自动化执行。
import configparser
import os
import threading
import timefrom selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait# 配置文件路径
CONFIG_FILE = 'servers.ini'# 创建配置文件信息
def create_config_file():if not os.path.exists(CONFIG_FILE):config = configparser.ConfigParser()config.add_section('server_1')config.set('server_1', 'ip', '127.0.0.1')config.set('server_1', 'port', '5000')config.set('server_1', 'username', '1')