免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: yestreenstars
打印 上一主题 下一主题

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

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

感谢黑哥支持~{:3_193:}
   

求职 : 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
52 [报告]
发表于 2014-11-25 14:02 |只看该作者
回复 42# yestreenstars
体会不深,维护级别的,不过觉得PYTHON真的很棒。当年关注它就是首先它是个真正的自由开源语言。这样不会被过度的商业化而失去科学该有的自由和开放。所以才觉得好好学学的。包括GO语言也是这样。我个人一直推崇使用真正的自由开源软件和系统。从用户安全的角度来看,自由开源软件和系统给用户提供了更高的安全级,因为代码的开放,我们可以反向工程出这些代码的作用,也知道了计算机系统所有的行为。这些在闭源系统中是没有的。


   

论坛徽章:
0
53 [报告]
发表于 2014-11-25 17:32 |只看该作者
1.你是如何学习Python的?看书?看视频?还是?
开始学习是由于任务紧急,报了个线上视频班,速度快但是学的不深入,后来就抱着《简明python教程》,看一些模块代码。
2.你工作中有用到Python吗?主要用来做什么?目的是把现有日常运维繁杂的工作释放出来,做了一套线上自动发布系统,把发布任务外发到测试部门
3.你觉得Python跟其他脚本语言比优势在哪?
比起shell优势是socket编程,大量现成模块可以用,可以方便地实现shell完成不了的事情
4.谈谈Python在自动化运维中的应用。
我们主要用在自动化发布系统中C/S通信
5.给出一个你自己写的Python脚本(最好有详细注释)。
#! /usr/bin/env python
'''
先拷贝需要备份的文件,再压缩文件
'''
import os
import os.path
import sys
import shutil
import time

### 需要备份的文件start
source = '/www'

config = ['.vimrc',
          '/etc/profile']

data = ['java',
        'web_server',
        'NFS']

all = config + data
### 需要备份的文件end
def copy_file(source, target_dir):
    '对比文件,如果目标文件不存在或者还是源文件新,则拷贝或覆盖文件。'

    # 如果路径有前缀 '/',则先将其去除。
    target = os.path.join(target_dir,
                          source[:1] == '/' and source[1:] or source)
    if not os.path.exists(target):
        dir, name = os.path.split(target)
        if not os.path.exists(dir):
            os.makedirs(dir)
        shutil.copy(source, target)
        print 'Backup', source
    elif os.path.getmtime(source) > os.path.getmtime(target):
        shutil.copy(source, target)
        print 'Backup', source

def copy_dir(top, target_dir):
    '递归地利用 copy_file 函数进行文件夹的拷贝。'

    for root, dirs, files in os.walk(top):
        for file in files:
            filepath = os.path.join(root, file)
            copy_file(filepath, target_dir)
if __name__ == '__main__':
    if (len(sys.argv) == 2 and sys.argv[1] != '-m') or len(sys.argv) > 2:
        print '''
Usage: backup.py [-m]
       加入 -m 参数则将 tar 文件移动到 /BACK_UP 分区中。'''
        sys.exit(1)

    # 临时存放需要备份的文件,便于打包。
    tmp_dir = 'backup'

    # 备份文件的保存路径。
    bkpath = '/BACK_UP'

    date = time.strftime('%y-%m-%d')
    os.chdir(source)
    for source in all:
        if os.path.isfile(source):
            copy_file(source, tmp_dir)
        else:
            copy_dir(source, tmp_dir)

    os.system('tar -czf %s.tar.gz %s' % (date, tmp_dir))
    if len(sys.argv) == 2 and sys.argv[1] == '-m':
        os.system('mv %s.tar.gz %s' % (date, bkpath))


   

论坛徽章:
0
54 [报告]
发表于 2014-11-25 17:40 |只看该作者
我还是个linux新手,系统管理还是十分生疏,对一些语言知之甚少

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
55 [报告]
发表于 2014-11-25 18:12 |只看该作者
表示不会python,但是也想学习学习python,感觉现在的python非常的火爆啊

论坛徽章:
0
56 [报告]
发表于 2014-11-25 19:58 |只看该作者
回复 45# yestreenstars

呵呵,套用之前跟别人夸python时候说过“玩得了linux,搞的定windows,写的了html,发的了数据包”, 鉴于我是python的脑残粉,星辰大神,赐神书于我吧。

   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
57 [报告]
发表于 2014-11-26 09:08 |只看该作者
回复 57# dc222222222
最后会综合考虑的~{:3_193:}

   

论坛徽章:
0
58 [报告]
发表于 2014-11-26 12:03 |只看该作者
1.你是如何学习Python的?看书?看视频?还是?
看书,看视频太慢了
2.你工作中有用到Python吗?主要用来做什么?
编写运维脚本
3.你觉得Python跟其他脚本语言比优势在哪?
比shell容易掌握,语法比较自然
4.谈谈Python在自动化运维中的应用。
主要编写监控脚本
5.给出一个你自己写的Python脚本(最好有详细注释)。
读取磁盘利用率的小函数
  1. def getDiskUsageByMountPoint(MountPoint):
  2.         try:
  3.                 cmd = "df -P | grep "+MountPoint
  4.                 res = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
  5.                 DiskInfo = res.communicate()[0].split("\n")
  6.                 for DiskLine in DiskInfo:
  7.                         if len(DiskLine) == 0 :
  8.                                 break
  9.                         DiskItem = DiskLine.split()
  10.                         if (DiskItem[0].strip() == "Filesystem"):
  11.                                 continue
  12.                         elif (DiskItem[5].strip() != MountPoint):
  13.                                 continue
  14.                         MountName = DiskItem[5].strip()
  15.                         MountUsage = DiskItem[4].strip()
  16.                         MountFree = DiskItem[3].strip()
  17.                         MountUsed = DiskItem[2].strip()
  18.                         MountSize = DiskItem[1].strip()
  19.                 return (MountName,MountSize,MountUsed,MountFree,MountUsage)
  20.         except Exception, e:
  21.                 #print e
  22.                 return ("ERROR","ERROR","ERROR","ERROR","ERROR")
复制代码

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
59 [报告]
发表于 2014-11-26 14:33 |只看该作者
回复 1# yestreenstars


    星辰也开始搞这些了啊,必须捧场。。


1.你是如何学习Python的?看书?看视频?还是?
在网上找几段现成的代码,各种乱查资料,基本理解以后,自己重写一遍
然后不停的尝试添加功能进去,以某几段功能代码为核心,慢慢扩展开来进行练习

2.你工作中有用到Python吗?主要用来做什么?
工作本身用不到python,只是纯粹个人兴趣
做一些CS版小工具,比如EXCEL解析,接口维护工具,自动化测试工具,数据库加固等
大部分是PYQT+SQLITE

3.你觉得Python跟其他脚本语言比优势在哪?
PYTHON的特性很好
强制缩进,对我这种强迫症患者来说特别舒服
一个问题只有一个解决方案,学习起来很方便
再就是python的语法不算太啰嗦,如果不考虑编码转换的话。。。

4.谈谈Python在自动化运维中的应用。
我做过的自动化测试、数据库加固脚本这些,只能算是对自动化运维的初步接触,不了解不敢乱说

5.给出一个你自己写的Python脚本(最好有详细注释)。
写的都是工作脚本,不太适合贴论坛上

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
60 [报告]
发表于 2014-11-26 14:39 |只看该作者
回复 60# bulletmarquis

牛逼啊!你也会python啊!
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP