刚入行那会儿,每天早上第一件事就是登录七八台服务器,手动检查日志、备份配置、看端口状态。碰上紧急变更,还得一条条敲命令,手一抖输错个字符,就得重来。那时候就想,这活能不能让电脑自己干?
为什么是Python
后来接触了Python,发现它特别适合做网络自动化。不是因为它多高大上,而是实在好上手。像paramiko、netmiko这些库,连华为、H3C的设备都能连,写几行代码就能批量执行命令。
比如要同时查看三台交换机的接口状态,以前得一个个登录,现在这样写就行:
from netmiko import ConnectHandler
switch1 = {
'device_type': 'huawei',
'host': '192.168.1.10',
'username': 'admin',
'password': 'pass123'
}
connection = ConnectHandler(**switch1)
output = connection.send_command('display ip interface brief')
print(output)
connection.disconnect()
实际场景更接地气
上周公司要做一次例行配置备份,总共40多台设备。我写了个脚本,读取Excel里的IP列表,自动登录、拉配置、存成txt文件,全程不到十分钟。以前这活两个人加班都得搞一下午。
还有次半夜告警,说是某台核心交换机端口异常。其实早几天的日志里就有征兆,但我哪记得住每天翻一遍?后来用Python加了个定时任务,每天早上7点自动抓日志关键词,发邮件提醒,问题提前发现了两次。
不光是“能用”,而是“好用”
有人问,Shell或者PowerShell不行吗?当然可以,但处理复杂逻辑时,Python结构清晰,调试方便。加上requests库调API、用openpyxl操作Excel、结合Flask做个简单网页界面,扩展性比纯脚本强太多。
现在我们部门的新人都从Python开始学自动化。不是赶时髦,是真能省时间。省下来的时间,够你喝杯咖啡,顺便想想怎么把下一个重复工作也给“干掉”。