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

ChinaUnix.net

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

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

求职 : Linux运维
论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:15:0815-16赛季CBA联赛之山东
日期:2016-10-31 10:40:10综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00IT运维版块每日发帖之星
日期:2016-02-08 06:20:00数据库技术版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-10 06:20:00黄金圣斗士
日期:2015-11-24 10:45:10IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:012015年亚洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
发表于 2014-11-23 17:15 |显示全部楼层
python语言在LINUX的上层系统里经常都能看到。很多的脚步也都是用PYTHON来编写的。并且这东西本身的自由和开源可以让我们很容易就知道代码的具体功能。很值得深入学习和研究。

论坛徽章:
0
发表于 2014-11-23 21:56 |显示全部楼层


1.你是如何学习Python的?看书?看视频?还是?

我都是在看书中学习的,主要刚开始的时候看了Python基础教程(第二版), 之后主要就是看Python学习手册, 这本书有点厚,很多人说这本书作者太啰嗦了,我看过之后确实觉得有点啰嗦,但是人家讲的都是真理啊,看过之后真的就可以说自己入门了。
视频最好是别看了,好的视频收费,免费的视频基本上就是在浪费时间。

2.你工作中有用到Python吗?主要用来做什么?

工作中也是最近才开始使用Python的,我们现在在搞云计算,大数据,现阶段也只是使用Python来搞自动化运维方面的东西,像用Python实现操作系统的自动化安装部署,应用程序的自动化安装部署等,更深入的应用还在进行中,相信Python一定可以再运维方面全面爆发,期待着那一天!

3.你觉得Python跟其他脚本语言比优势在哪?

Python简单易学,很容易入门,他不仅可以作为脚本语言,也可以作为编程语言存在,Python的面向对象编程完全不逊于其他面向对象的编译行语言,至于有些人说Python的运行速度不行,这点主要看你对Python的精通程度了,只要合理的运用并发和Cython技术,完全可以实现C一样的速度。同时Python的程序库特别丰富,使用起来也特别方便,总而言之,Python真的很好很好用。
4.谈谈Python在自动化运维中的应用。

Python在自动化运维方面不仅可以脚本语言存在,其提供的程序库也可以很方便的实现网络和图形编程,将自动化运维从复杂的命令行调用转变为简单的易懂的图像界面显示,实现更加人性化的运维。

5.给出一个你自己写的Python脚本(最好有详细注释)
平时工作中只是用Python实现简单的脚本功能,就不列举了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2014-11-24 09:38 |显示全部楼层
欢迎大家踊跃参加,发表自己的看法,

论坛徽章:
0
发表于 2014-11-24 10:09 |显示全部楼层
1.你是如何学习Python的?看书?看视频?还是?
主要是看电子书,有时候也找点视频看看。

2.你工作中有用到Python吗?主要用来做什么?
工作中用到的python也不多。主要是做系统管理,小工具之类的

3.你觉得Python跟其他脚本语言比优势在哪?
优势是系统库丰富。linux平台都默认安装python,方便。
4.谈谈Python在自动化运维中的应用。
正在研究自动化运维。向刘天斯学习。
5.给出一个你自己写的Python脚本(最好有详细注释)。
水平有限,见笑了。
  1. #!/usr/bin/env python
  2. #coding=UTF-8
  3. '''http://www.proxycn.cn/html_proxy/countryDX-1.html'''
  4. import urllib2
  5. import cookielib
  6. import re
  7. import threading
  8. import Queue
  9. import time
  10. lock = threading.Lock()
  11. que = Queue.Queue()

  12. proxy_list=[('10.10.61.4','3128','HTTP'),]
  13. p = re.compile(r'''document.write\("(.+?)"\);\r\ndocument.write\("(.+?)"\);\r\ndocument.write\("(.+?)"\);\r\ndocument.write\("(.+?)"\);
  14. \r\n//--></SCRIPT></TD><TD class="list">(.+?)</TD><TD class="list">(.+?)</TD><TD class="list">(.+?)</TD>''',re.M)
  15. def getProxyList(queue):
  16.    # req = urllib2.urlopen('http://www.proxycn.cn/html_proxy/countryDX-1.html')
  17.    for i in range(1,2):
  18.         req = urllib2.urlopen('http://www.proxycn.cn/html_proxy/http-%d.html'% (i))
  19.         content = req.read()

  20.         #print content
  21.         #m = p.findall(content.decode('cp936').encode('utf-8'))
  22.         m = p.findall(content)
  23.         for item in m:
  24.             n_set = (''.join(item[0:4]),item[4],item[5])
  25.             proxy_list.append(n_set)
  26.            # print n_set
  27.             queue.put(n_set)
  28. #    print proxy_list
  29. class checkProxy(threading.Thread):
  30.     def __init__(self,que,lock):
  31.         threading.Thread.__init__(self)
  32.         self.queue = que
  33.         self.test_url = 'http://www.baidu.com'
  34.         self.test_str = '030173'
  35.         self.timeout = 5
  36.         self.lock = lock
  37.     def run(self):
  38.         print 'aaa'
  39.         time.sleep(2)
  40.         while True:
  41.             self.lock.acquire()
  42.             if self.queue.empty():
  43.                 break
  44.             item = self.queue.get()
  45.             print item
  46.             self.testProxy(item)
  47.             self.queue.task_done()
  48.             self.lock.release()
  49.     def testProxy(self,proxy):
  50.         print 'in testProxy'
  51.         try:
  52.             cj = cookielib.CookieJar()
  53.             openser = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
  54.             proxy_handler = urllib2.ProxyHandler({"http": 'http://%s:%s' %(proxy[0],proxy[1])})
  55.             openser = urllib2.build_opener(proxy_handler)
  56.             urllib2.install_opener(openser)
  57.             request = urllib2.Request(self.test_url)
  58.             request.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; MDDCJS; rv:11.0) like Gecko')
  59.             resp = urllib2.urlopen(request,timeout=self.timeout)
  60.             print proxy
  61.             if resp.read().find(self.test_str):
  62.                 print 'ok'
  63.         except Exception,e:
  64.             print e.message
  65. if __name__== '__main__':
  66.    # getProxyList()
  67.    worker_thread = threading.Thread(target=getProxyList,args=(que,))
  68.    worker_thread.start()
  69.    lock = threading.Lock()
  70.    for i in range(10):
  71.        t = checkProxy(que,lock)
  72.        t.start()
复制代码

论坛徽章:
1
2017金鸡报晓
日期:2017-02-08 10:39:42
发表于 2014-11-24 10:23 |显示全部楼层
1.你是如何学习Python的?看书?看视频?还是?  看官方文档了,书呐 现在死贵 穷学生一只
2.你工作中有用到Python吗?主要用来做什么?有,批量完成一些机械运动。比如我博客的文章批量性转移和备份
3.你觉得Python跟其他脚本语言比优势在哪?语言松散,书写,记忆快速。使用方便
4.谈谈Python在自动化运维中的应用。 Sorry 不懂啥是自动化运维 2333
5.给出一个你自己写的Python脚本(最好有详细注释)。
脚本?我找找--至于注释 -- 没那习惯呐
https://github.com/BackTrackCRoot/cnblogs2wordpress/
代码在这

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之福建
日期:2016-08-08 13:37:03
发表于 2014-11-24 10:40 |显示全部楼层
1.你是如何学习Python的?看书?看视频?还是?

看书,语法简单看一下就行,主要了解一下python的特点和优势,
以及能做什么。然后就是实践了,编写一些小程序,遇到问题就
查书或baidu。


2.你工作中有用到Python吗?主要用来做什么?

编写一些运维方面的小工具,尤其在脚本比较弱的windows平台。
另外,很多流行的运维工具都是python写的,不得不学啊。


3.你觉得Python跟其他脚本语言比优势在哪?

我用过perl(但很少用CPAN),熟悉bash和js,会点儿vbs,相比之下,
我感觉python挺好学,容易上手,面向对象方面比perl更自然。
另外,一种语言是否流行,还要看库是否丰富。python内置了很多有用的库,
无需安装就能用,非常方便。
还有那个命令行交互模式,对调试很有用啊。


4.谈谈Python在自动化运维中的应用。

可以利用既有库方便的连接http,ssh,mail等服务器,实现远程管理。
利用进程管理,信号处理等功能实现系统监控。
利用文本处理功能进行日志分析。


5.给出一个你自己写的Python脚本(最好有详细注释)。

这个脚本用在管道中,把前面的输出加上时间戳。

例如,ping %IP% -t|python addTimestamp.py
目的是监视连通状况,记录下发生断网的时间。
  1. #!/usr/bin/env python
  2. import sys
  3. from datetime import datetime

  4. def getDateStr():
  5.     return datetime.now().strftime('%Y-%m-%d %H:%M:%S')

  6. try:
  7.     while True:
  8.             line=sys.stdin.readline()
  9.             if line:
  10.                     print '[' + getDateStr() + ']', line.strip()
  11.                     sys.stdout.flush()
  12.             else:
  13.                     break
  14. except KeyboardInterrupt:
  15.     print 'exit cause by SIGINT'
复制代码

论坛徽章:
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-24 10:43 |显示全部楼层
phpcool 发表于 2014-11-24 09:38
欢迎大家踊跃参加,发表自己的看法,


矮油~莫非是本书作者刘天斯先生?热烈欢迎~

论坛徽章:
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-24 10:47 |显示全部楼层
回复 26# shenyue_sam

Python在文本处理方面似乎没有awk、sed、perl强,我曾经将一些awk能处理的文本尝试用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-24 10:48 |显示全部楼层
回复 18# seesea2517

看海兄见笑了~哪里是什么实习~哈哈~
   

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之福建
日期:2016-08-08 13:37:03
发表于 2014-11-24 14:09 |显示全部楼层
回复 28# yestreenstars


    同感! 还是perl的正则捕获好用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP