忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
楼主: yestreenstars

[其他] 学习与分享——Python自动化运维 [复制链接]

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-11-25 09:27 |显示全部楼层
回复 40# dc222222222

将shell脚本用python来改写,这种学习方法不错,能否给出一个实例?
   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-11-25 09:43 |显示全部楼层
回复 35# niao5929

想要书得好好参与讨论哦~
   

论坛徽章:
0
发表于 2014-11-25 11:16 |显示全部楼层
本帖最后由 dc222222222 于 2014-11-25 11:18 编辑

回复 41# yestreenstars

其实刚开始的时候基本上都是用system或者popen这样的函数去调用shell命令,说白了就是在shell的外面包了一层python的壳而已,后来发现python有自己的方法可以实现shell的大部分功能,比如抓性能数据的psutil, 处理网络请求的socket模块, shell中的awk也可用用python中更灵活的语法以及函数替代实现:

如下是一个检测服务器端口是否存活的zabbix监控脚本。
  1. #!/bin/env python
  2. #Author: sixther
  3. #comment: check port status on linux server.usage:   ./check_port_status.py 80:httpd  3306:mysql 22:sshd
  4. import socket,sys,os

  5. del sys.argv[0]
  6. down_process=[]
  7. ip_list=[]
  8. #这块应该是纯包装,呵呵。
  9. get_iplist_cmd="/sbin/ifconfig | grep 'inet addr' | awk '{print $2}' | awk -F: '{print $2}'"
  10. for i in os.popen(get_iplist_cmd):
  11.                 ip_list.append(i.strip())

  12. #采用socket的方式代替之前过滤netstat -lntp的输出。
  13. def check_port(addr,port):
  14.         sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  15.         result=sock.connect_ex((addr,port))
  16.         sock.close()
  17.         if result == 0:
  18.                 return 0
  19.         else:
  20.                 return 1
  21. if __name__ ==  '__main__':
  22.         for i in sys.argv:
  23.                 for j in ip_list:
  24.                         return_num=check_port(j,int(i.split(":")[0]))
  25.                         if return_num == 0:
  26.                                 code=''
  27.                                 break
  28.                         else:
  29.                                 code='down'
  30.                 if code == 'down':
  31.                         down_process.append(i.split(":")[1])
  32.                 code=''
  33.         if len(down_process):
  34.                 print str(down_process) + " down!"
  35.         else:
  36.                 print 0
复制代码

论坛徽章:
51
CU十四周年纪念徽章
日期:2017-07-31 15:08:46CU十四周年纪念徽章
日期:2015-11-25 15:35:40白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:532015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之大阪钢巴
日期:2015-06-25 17:30:04黄金圣斗士
日期:2015-12-02 11:44:35程序设计版块每日发帖之星
日期:2015-12-22 06:20:00
发表于 2014-11-25 11:27 |显示全部楼层
yestreenstars 发表于 2014-11-24 14:50
回复 30# shenyue_sam

还有一点就是用python来做文本处理时似乎没有发现可以用来记录行号的变量


fileinput 模块有提供记录行号, 文件名等函数哦

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-11-25 11:33 |显示全部楼层
回复 43# dc222222222

学习了,我以为你是将一个shell脚本改成了python脚本呢~
   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-11-25 11:33 |显示全部楼层
回复 44# reyleon

噢,谢谢,我研究研究~
   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-11-25 11:56 |显示全部楼层
回复 44# reyleon

不错!这个模块很好用~
   

论坛徽章:
51
CU十四周年纪念徽章
日期:2017-07-31 15:08:46CU十四周年纪念徽章
日期:2015-11-25 15:35:40白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:532015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之大阪钢巴
日期:2015-06-25 17:30:04黄金圣斗士
日期:2015-12-02 11:44:35程序设计版块每日发帖之星
日期:2015-12-22 06:20:00
发表于 2014-11-25 12:02 |显示全部楼层
回复 47# yestreenstars


    我从发神那儿学来的 @李满满

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-11-25 12:07 |显示全部楼层
回复 48# reyleon

牛掰的发神~
   

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
发表于 2014-11-25 13:17 |显示全部楼层
回复 1# yestreenstars


    顶! 支持 yestreenstars!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

SACC2017购票7.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月2日前

活动链接>>
  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP