现在很多人学Python就盯着Web开发,Django、Flask换着花样折腾。我不是说这不好,只是觉得有点可惜。Python的能力远不止做个网站,你要是只会写Web,等于手里有把好刀只用来削苹果。
我身边有个朋友,他在一家小公司负责运维。公司规模不大,服务器倒是不少。他之前也学Python做Web,后来发现真正帮他解决问题的,不是那些花哨的页面,而是几个自动化的脚本。比如每天要巡检几十台服务器的磁盘空间,手动登录一台台看,费时还容易漏。他花了一个下午写了个脚本,用paramiko库SSH到每台机器,读取磁盘信息,超过阈值就发邮件报警。现在早上喝着咖啡看邮件就知道状况,不用再手忙脚乱。
另一个例子是做网络自动化。很多公司的网络设备是思科、华为的,配置和升级需要手动敲命令。有人会写个模板用Netmiko库批量推送配置,哪怕设备型号不同,也能自动适配。几百行代码的事情,比重复劳动强太多。
有人说这些是运维和网络工程师该干的活,但你要是会这些,竞争力直接上两个台阶。你是搞Web开发的,懂点网络自动化,写API接口时就能考虑网络交互的细节,甚至能自己模拟网络设备测试。你是运维人员,写点Web页面把脚本结果可视化,领导看了也愿意多给预算。这年头,单一技能的人太多,能跨界的反而吃香。
学Python搞Web不是错,但别把自己钉死在那一个方向。网络自动化和运维脚本的门槛并不高,你不需要成为网络专家,会基本的套接字、异常处理、文件操作就行。很多工具库官方文档写得清楚,翻一翻就能上手。写个脚本解决一个小问题,比学完整本教程更有成就感。
你现在的技能树不该只是一条线,而应该是几张网。Web是其中一张,网络自动化和运维是另外几张。网织得越密,你掉下去的机会越小。去试试写个定时任务清理日志,或者用Netmiko批量改个交换机配置。可能第一次会报错,报错就报错,改改就跑通了。等你自己写的脚本真正帮你省下半天时间,那种感觉比学会一个框架更实在。