亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: yestreenstars
打印 上一主題 下一主題

[其他] 學習與分享——Python自動化運維 [復制鏈接]

論壇徽章:
4
獅子座
日期:2014-04-17 10:45:47雙魚座
日期:2014-08-21 17:16:41處女座
日期:2014-08-26 13:46:46水瓶座
日期:2014-10-28 14:08:50
51 [報告]
發(fā)表于 2014-11-25 13:38 |只看該作者
1.你是如何學習Python的?看書?看視頻?還是?
買了一本python學習手冊第4版,看了倆月,略有入門。其他就是根據(jù)自己的需求在網(wǎng)上搜相關的資源了。

2.你工作中有用到Python嗎?主要用來做什么?
python主要是抓取cacti的監(jiān)控圖,因為每周要把監(jiān)控圖匯總成文檔。

3.你覺得Python跟其他腳本語言比優(yōu)勢在哪?
python相對于shell來講,可用的庫更多,更加的靈活

4.談談Python在自動化運維中的應用。
可以利用python進行批處理,對大數(shù)據(jù)也有幫助

5.給出一個你自己寫的Python腳本(最好有詳細注釋)
當時為朋友寫的一個抓菜譜的程序,url可以改成批量,寫的不好,見諒,求星辰大神賜書!
  1. #encoding=utf-8
  2. import urllib2
  3. import re
  4. import smtplib
  5. from email.mime.text import MIMEText
  6. from email.mime.multipart import MIMEMultipart
  7. ''''A=[]
  8. B=[]
  9. page='您訪問的頁面不存在'''
  10. '''url='http://home.meishichina.com/recipe-192222.html'''

  11. def menu(url):
  12.     A=[]
  13.     B=[]
  14.     page='您訪問的頁面不存在'
  15.     try:
  16.         headers={'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
  17.         res=urllib2.Request(url,headers=headers)
  18.         response=urllib2.urlopen(res).read()
  19.         #print response
  20.         #Python正則匹配中文
  21.         ############################
  22.         context=re.search(ur"[\u4e00-\u9fa5]+",response.decode('utf-8'))#Python正則匹配中文
  23.    
  24.         #print context.group(0)
  25.         #############################
  26.         if context.group(0)==page:
  27.             print 'Page not found!'
  28.             #<h2 class="recipe_De_title"><a href="#" id="recipe_title">烤孜然排骨</a></h2>  
  29.         else :
  30.             resultname=re.findall(ur'<h2 class="recipe_De_title"><a href="#" id="recipe_title">([\u4e00-\u9fa5]+)</a></h2>',response.decode('utf-8'))
  31.             for i in resultname:
  32.                 name=i.encode('utf-8')
  33.                 name=name.encode('cp936')
  34.         
  35.         
  36.                 resultcontent=re.findall(ur'<li><span class="category_s1">([\u4e00-\u9fa5]+)</span><span class="category_s2">\(.*\)</span></li>',response.decode('utf-8'))
  37.                 for m in resultcontent:
  38.                     content=m.encode('utf-8')
  39.                     A.append(m.encode('utf-8'))
  40.       
  41.         
  42.                 resultcook=re.findall(ur'<li><span class="category_s1">([\u4e00-\u9fa5]+)</span></li>',response.decode('utf-8'))
  43.                 for v in resultcook:
  44.                     cook=v.encode('utf-8')
  45.             
  46.                 resultstep=re.findall(ur'<div class="recipeStep_word">(.*)</div>',response)
  47.                 for x in resultstep:
  48.                     B.append(x.encode('utf-8'))
  49.             
  50.         
  51.         
  52.                 file=open('D:\\Program\\menu\\'+name+'.txt','w')
  53.                 n=0
  54.                 file.write('食材\n'+'-'*10+'\n')
  55.                 while n<len(A):
  56.             
  57.                     file.write(A[n]+'\n')
  58.                     n+=1
  59.                 else:
  60.                     file.write("-"*10+"\n廚具\n")
  61.                     file.write(cook)
  62.                     file.write('\n'+'-'*10+'\n')
  63.                     #file.write("-"*10+"\n制作步驟\n")
  64.             
  65.         
  66.             
  67.             
  68.         
  69.                 m=0
  70.                 while m<len(resultstep):
  71.                     file.write(B[m]+'\n')
  72.                     m+=1
  73.                 else:
  74.                     file.close()
  75.     except urllib2.HTTPError as e:
  76.         print e.code
  77.         

  78. def sendmail(to_list,sub,result):
  79.     headers={'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
  80.     res=urllib2.Request(url,headers=headers)
  81.     response=urllib2.urlopen(res).read()      
  82.     resultname1=re.findall(ur'<h2 class="recipe_De_title"><a href="#" id="recipe_title">([\u4e00-\u9fa5]+)</a></h2>',response.decode('utf-8'))
  83.     for i in resultname1:
  84.         name=i.encode('utf-8')
  85.         name=name.encode('cp936')
  86.    

  87.     me=mail_user+"<"+mail_user+"@"+mail_postfix+">"

  88.     '''msg = MIMEText(result)'''
  89.     #創(chuàng)建一個帶附件的實例
  90.     msg = MIMEMultipart()

  91.     #構造附件1
  92.     att1 = MIMEText(open('D:\\Program\\menu\\'+name+'.txt', 'rb').read(), 'base64', 'gb2312')
  93.     att1["Content-Type"] = 'application/octet-stream'
  94.     #att1["Content-Disposition"] = 'attachment; filename="stock.txt"'#這里的filename可以任意寫,寫什么名字,郵件中顯示什么名字
  95.     att1["Content-Disposition"] = 'attachment; filename="menu.txt"'
  96.     msg.attach(att1)

  97.     msg['Subject'] = sub
  98.     msg['From'] = me
  99.     msg['To'] = ";".join(to_list)
  100.     try:
  101.         s = smtplib.SMTP()
  102.         s.connect(mail_host)
  103.         s.login(mail_user,mail_pass)
  104.         s.sendmail(me, to_list, msg.as_string())

  105.         s.close()
  106.         return True
  107.     except Exception, e:
  108.         print str(e)
  109.         return False

  110. if __name__=='__main__':
  111.     url='http://home.meishichina.com/recipe-192222.html'
  112.     result=menu(url)
  113.    
  114.     mailto_list=["。。。。@qq.com",'。。。。@qq.com']
  115.     #####################

  116.     mail_host="smtp.126.com"
  117.     mail_user="。。。"
  118.     mail_pass="。。。"
  119.     mail_postfix="126.com"
  120.     sendmail( mailto_list,"menu",result)
復制代碼

論壇徽章:
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程序設計版塊每日發(fā)帖之星
日期:2015-06-16 22:20:002015亞冠之塔什干火車頭
日期:2015-06-20 23:28:22
52 [報告]
發(fā)表于 2014-11-25 13:43 |只看該作者
回復 50# blackold

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

求職 : Linux運維
論壇徽章:
19
CU大;照
日期:2013-03-13 15:15:0815-16賽季CBA聯(lián)賽之山東
日期:2016-10-31 10:40:10綜合交流區(qū)版塊每日發(fā)帖之星
日期:2016-07-06 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-02-08 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-01-15 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-01-15 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-01-10 06:20:00黃金圣斗士
日期:2015-11-24 10:45:10IT運維版塊每日發(fā)帖之星
日期:2015-09-01 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-13 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-07-30 09:40:012015年亞洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
53 [報告]
發(fā)表于 2014-11-25 14:02 |只看該作者
回復 42# yestreenstars
體會不深,維護級別的,不過覺得PYTHON真的很棒。當年關注它就是首先它是個真正的自由開源語言。這樣不會被過度的商業(yè)化而失去科學該有的自由和開放。所以才覺得好好學學的。包括GO語言也是這樣。我個人一直推崇使用真正的自由開源軟件和系統(tǒng)。從用戶安全的角度來看,自由開源軟件和系統(tǒng)給用戶提供了更高的安全級,因為代碼的開放,我們可以反向工程出這些代碼的作用,也知道了計算機系統(tǒng)所有的行為。這些在閉源系統(tǒng)中是沒有的。


   

論壇徽章:
0
54 [報告]
發(fā)表于 2014-11-25 17:32 |只看該作者
1.你是如何學習Python的?看書?看視頻?還是?
開始學習是由于任務緊急,報了個線上視頻班,速度快但是學的不深入,后來就抱著《簡明python教程》,看一些模塊代碼。
2.你工作中有用到Python嗎?主要用來做什么?目的是把現(xiàn)有日常運維繁雜的工作釋放出來,做了一套線上自動發(fā)布系統(tǒng),把發(fā)布任務外發(fā)到測試部門
3.你覺得Python跟其他腳本語言比優(yōu)勢在哪?
比起shell優(yōu)勢是socket編程,大量現(xiàn)成模塊可以用,可以方便地實現(xiàn)shell完成不了的事情
4.談談Python在自動化運維中的應用。
我們主要用在自動化發(fā)布系統(tǒng)中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 函數(shù)進行文件夾的拷貝。'

    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 參數(shù)則將 tar 文件移動到 /BACK_UP 分區(qū)中。'''
        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
55 [報告]
發(fā)表于 2014-11-25 17:40 |只看該作者
我還是個linux新手,系統(tǒng)管理還是十分生疏,對一些語言知之甚少

求職 : 機器學習
論壇徽章:
79
2015年亞洲杯紀念徽章
日期:2015-05-06 19:18:572015七夕節(jié)徽章
日期:2015-08-21 11:06:172015亞冠之阿爾納斯爾
日期:2015-09-07 09:30:232015亞冠之薩濟拖拉機
日期:2015-10-21 08:26:3915-16賽季CBA聯(lián)賽之浙江
日期:2015-12-30 09:59:1815-16賽季CBA聯(lián)賽之浙江
日期:2016-01-10 12:35:21技術圖書徽章
日期:2016-01-15 11:07:2015-16賽季CBA聯(lián)賽之新疆
日期:2016-02-24 13:46:0215-16賽季CBA聯(lián)賽之吉林
日期:2016-06-26 01:07:172015-2016NBA季后賽紀念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16賽季CBA聯(lián)賽之浙江
日期:2017-07-18 13:41:54
56 [報告]
發(fā)表于 2014-11-25 18:12 |只看該作者
表示不會python,但是也想學習學習python,感覺現(xiàn)在的python非常的火爆啊

論壇徽章:
0
57 [報告]
發(fā)表于 2014-11-25 19:58 |只看該作者
回復 45# yestreenstars

呵呵,套用之前跟別人夸python時候說過“玩得了linux,搞的定windows,寫的了html,發(fā)的了數(shù)據(jù)包”, 鑒于我是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程序設計版塊每日發(fā)帖之星
日期:2015-06-16 22:20:002015亞冠之塔什干火車頭
日期:2015-06-20 23:28:22
58 [報告]
發(fā)表于 2014-11-26 09:08 |只看該作者
回復 57# dc222222222
最后會綜合考慮的~{:3_193:}

   

論壇徽章:
0
59 [報告]
發(fā)表于 2014-11-26 12:03 |只看該作者
1.你是如何學習Python的?看書?看視頻?還是?
看書,看視頻太慢了
2.你工作中有用到Python嗎?主要用來做什么?
編寫運維腳本
3.你覺得Python跟其他腳本語言比優(yōu)勢在哪?
比shell容易掌握,語法比較自然
4.談談Python在自動化運維中的應用。
主要編寫監(jiān)控腳本
5.給出一個你自己寫的Python腳本(最好有詳細注釋)。
讀取磁盤利用率的小函數(shù)
  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
60 [報告]
發(fā)表于 2014-11-26 14:33 |只看該作者
回復 1# yestreenstars


    星辰也開始搞這些了啊,必須捧場。。


1.你是如何學習Python的?看書?看視頻?還是?
在網(wǎng)上找?guī)锥维F(xiàn)成的代碼,各種亂查資料,基本理解以后,自己重寫一遍
然后不停的嘗試添加功能進去,以某幾段功能代碼為核心,慢慢擴展開來進行練習

2.你工作中有用到Python嗎?主要用來做什么?
工作本身用不到python,只是純粹個人興趣
做一些CS版小工具,比如EXCEL解析,接口維護工具,自動化測試工具,數(shù)據(jù)庫加固等
大部分是PYQT+SQLITE

3.你覺得Python跟其他腳本語言比優(yōu)勢在哪?
PYTHON的特性很好
強制縮進,對我這種強迫癥患者來說特別舒服
一個問題只有一個解決方案,學習起來很方便
再就是python的語法不算太啰嗦,如果不考慮編碼轉換的話。。。

4.談談Python在自動化運維中的應用。
我做過的自動化測試、數(shù)據(jù)庫加固腳本這些,只能算是對自動化運維的初步接觸,不了解不敢亂說

5.給出一個你自己寫的Python腳本(最好有詳細注釋)。
寫的都是工作腳本,不太適合貼論壇上

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP