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

  免費(fèi)注冊 查看新帖 |

Chinaunix

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

[其他] 學(xué)習(xí)與分享——Python自動化運(yùn)維 [復(fù)制鏈接]

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

最好能把書名也說一下,方便大家互相學(xué)習(xí)~
   

論壇徽章:
3
白羊座
日期:2014-08-25 15:04:112014年中國系統(tǒng)架構(gòu)師大會
日期:2014-10-14 15:59:002015元宵節(jié)徽章
日期:2015-03-06 15:52:30
12 [報告]
發(fā)表于 2014-11-22 09:39 來自手機(jī) |只看該作者
正在學(xué)習(xí)中。…:好想要書,可惜沒什么好分享的

求職 : Linux運(yùn)維
論壇徽章:
3
戌狗
日期:2015-01-11 13:27:532015年辭舊歲徽章
日期:2015-03-03 16:54:152015年亞洲杯紀(jì)念徽章
日期:2015-05-08 15:03:30
13 [報告]
發(fā)表于 2014-11-22 15:50 |只看該作者
本帖最后由 donalds2008 于 2014-12-03 11:26 編輯

1.你是如何學(xué)習(xí)Python的?看書?看視頻?還是?
主要是通過看電子書,所以希望樓主賞本紙質(zhì)書拜讀拜讀😊。看過python學(xué)習(xí)手冊,python cookbook。感覺py自帶的手冊不錯,很系統(tǒng),可惜沒時間翻,用到具體模塊時翻翻。

2.你工作中有用到Python嗎?主要用來做什么?
主要在網(wǎng)絡(luò)設(shè)備資源管理方面寫過一些腳本,py里的pexpect、re、mysqldb等模塊功能強(qiáng)大,可以實(shí)現(xiàn)設(shè)備交互、信息提取、結(jié)構(gòu)化存儲等功能,快速支撐業(yè)務(wù)需求。

3.你覺得Python跟其他腳本語言比優(yōu)勢在哪?
對bash,pl,py略懂,也都寫過一些工具。個人感覺,py的優(yōu)勢包括:
1)語法簡潔?s進(jìn)的編碼規(guī)則使得編碼可讀性比較高,輔以必要注釋,即使較久的腳本也能短時間內(nèi)進(jìn)入當(dāng)時的編碼邏輯,加以優(yōu)化擴(kuò)展。雖然好的編碼規(guī)范也能讓寫出可讀性好的pl腳本,但是在先天性方面顯然py更佳,也適合團(tuán)隊(duì)協(xié)作。
2)代碼執(zhí)行效率較高。與bash比,自然有優(yōu)勢。一般開始時侯,主體功能先用bash寫完,如果腳本超過100行或者有效率提升、擴(kuò)展要求,用py重構(gòu),特別是一些通用功能以類方式重新整理。
3)自帶模塊豐富。pl雖有強(qiáng)大的cpan,但是逐一安裝模塊較麻煩,py則自帶許多模塊,能省去不少時間。


4.談?wù)凱ython在自動化運(yùn)維中的應(yīng)用。
很多開源工具如ganglia,Hadoop都支持py,因此用處廣泛。在自動化運(yùn)維方面,如監(jiān)控項(xiàng)擴(kuò)展、報警通知方式、定制報表等方面,都大有發(fā)揮空間。

5.給出一個你自己寫的Python腳本(最好有詳細(xì)注釋)。
這是我寫的一個ETL模塊,比較簡單,主要用于分析網(wǎng)絡(luò)設(shè)備交互日志,提取關(guān)鍵數(shù)據(jù),并入庫。
最后面附有模塊測試的代碼。
  1. #!/usr/bin/python
  2. """
  3. Script File: port_etl.py                                                               
  4. Description: The file is a etl module, which used to analyse equiment information, and save this into      
  5.              Database.                                                                 
  6. Author: Donalds2008                                                            
  7. Last Update: 2014.5.16                                                                  
  8. """
  9. import re, sys, os
  10. import pexpect, MySQLdb

  11. class port_etl():
  12.              #構(gòu)造函數(shù)
  13.         def __init__(self, log_file, ip_re, port_re, vlan_re):
  14.                 self.log_file  = log_file
  15.                 if not self.check_file( self.log_file ):
  16.                         print( '%s does not exists!!\n' % self.log_file)
  17.                         sys.exit()
  18.                 #導(dǎo)入文件
  19.                 self.raw_file  = os.path.splitext( self.log_file )[0]
  20.                 self.vlan_file = '%s.vlan' % self.raw_file
  21.                
  22.                 #構(gòu)造正則式
  23.                 self.ip_rx     = re.compile(  ip_re  )
  24.                 self.port_rx   = re.compile( port_re )
  25.                 self.vlan_rx   = re.compile( vlan_re )
  26.              #檢查文件是否存在
  27.         def check_file( self, file ):
  28.                 return True if os.path.exists( file ) else False
  29.              #使用正則式匹配,并輸出
  30.         def match_write(self):
  31.                 print('matching...')
  32.                 self.vlan_fh      = open( self.vlan_file, 'w' )
  33.                 ( ip, port, vlan) = (None, None, None)
  34.                 for line in open( self.log_file, 'r' ):
  35.                         match = self.ip_rx.search( line )
  36.                         if match != None:
  37.                                 ip = match.group(1)
  38.                         match = self.port_rx.search( line )
  39.                         if match != None:
  40.                                 port = match.group(1).replace(',', ' ')
  41.                         match = self.vlan_rx.search( line )
  42.                         if match != None:
  43.                                 vlan = match.group(1)
  44.                                 self.vlan_fh.write( '%s,%s,%s\n' % ( ip, port, vlan ) )
  45.                 self.vlan_fh.close()
  46.                 print('match finished.')
  47.              #寫入數(shù)據(jù)庫
  48.         def db_write(self):
  49.                 host_db= '127.0.0.1'
  50.                 usr_db = 'usr'
  51.                 pwd_db = 'pwd'
  52.                 sel_db = 'mydb'
  53.                 print('loading...')

  54.                 con = MySQLdb.connect( host=host_db, user=usr_db, passwd=pwd_db, db=sel_db)
  55.                 cur = con.cursor()
  56.                 last_ip = None
  57.                 for line in open( self.vlan_file, 'r'):
  58.                         line = line.strip('\n')
  59.                         (ip, port, vlan) = line.split(',')
  60.                         if ip != last_ip:
  61.                                 cur.execute( "delete from t_ip where ip = '%s'" % ip )
  62.                                 last_ip = ip
  63.                         cur.execute( "insert into t_ip values('%s', '%s', '%s')" % (ip, port, vlan) )       
  64.                 con.commit()
  65.                 cur.close()
  66.                 con.close()
  67.                 self.vlan_fh.close()
  68.                 print('load finished.')
  69.         def __del__(self):
  70.                 self.vlan_fh.close()
  71. #模塊測試
  72. if __name__ == '__main__':
  73.         etl = port_etl( r'/log/a.txt',\
  74.                         r'Connected to ([\d\.]+)\.', \
  75.                         r'interface xx([\d\/]+)', \
  76.                         r'multipvc .+ vlan (\d+)')
  77.         etl.match_write()
  78.         etl.db_write()
  79.         del etl


復(fù)制代碼

論壇徽章:
7
2015年中國系統(tǒng)架構(gòu)師大會
日期:2015-06-26 14:01:38技術(shù)圖書徽章
日期:2015-12-15 16:42:2715-16賽季CBA聯(lián)賽之遼寧
日期:2015-12-16 11:01:33shanzhi
日期:2016-06-17 17:59:312017金雞報曉
日期:2017-01-10 15:19:562017金雞報曉
日期:2017-02-08 10:39:42
14 [報告]
發(fā)表于 2014-11-22 19:37 |只看該作者
1.你是如何學(xué)習(xí)Python的?看書?看視頻?還是?
    主要是看書(如python核心編程),其次,在實(shí)際工作中簡單應(yīng)用,邊學(xué)邊用,遇到問題,去網(wǎng)上找相關(guān)解決方式或找朋友討論。
2.你工作中有用到Python嗎?主要用來做什么?
   工作中會用到python,主要數(shù)據(jù)相關(guān)處理方面,項(xiàng)目偶爾會用到,另外,在運(yùn)維方面會有簡單應(yīng)用。

3.你覺得Python跟其他腳本語言比優(yōu)勢在哪?
  優(yōu)勢有幾方面:1,開源,可以免費(fèi)使用,和產(chǎn)品開發(fā)發(fā)布沒有其他限制。2,代碼簡潔,簡單易用,作為腳本語言,可隨意移植。3.可與其他開發(fā)語言混合使用,粘接性較強(qiáng)。

4.談?wù)凱ython在自動化運(yùn)維中的應(yīng)用。
   python在系統(tǒng)管理上的優(yōu)勢在與強(qiáng)大的開發(fā)能力和完整的工具鏈。python的工程開發(fā)能力強(qiáng)大,遠(yuǎn)強(qiáng)于各種shell和perl。易讀易寫,兼具面向?qū)ο蠛秃瘮?shù)式風(fēng)格,還有不錯元編程能力。通過系統(tǒng)化的將各種管理工具結(jié)合,對上述的各類工具進(jìn)行二次開發(fā),形成統(tǒng)一的服務(wù)器管理系統(tǒng),非常合適運(yùn)維人員編寫一些自動化的軟件程序。
  python在服務(wù)器管理工具上非常豐富,配置管理(saltstack) 批量執(zhí)行( fabric, saltstack) 監(jiān)控(Zenoss, nagios 插件) 虛擬化管理( python-libvirt) 進(jìn)程管理 (supervisor) 云計算(openstack) ...... 還有大部分系統(tǒng)C庫都有python綁定。
對于流程確定的事情,最終一定是納入系統(tǒng)管理的體系,寫成程序,成為系統(tǒng)的一部分。而不是無法復(fù)用游離與整體的各種腳本。

5.給出一個你自己寫的Python腳本(最好有詳細(xì)注釋)
  
  我曾在異構(gòu)數(shù)據(jù)同步項(xiàng)目,數(shù)據(jù)處理過程中應(yīng)用到python,

腳本如下:

# -*- coding: utf-8 -*-
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
import cx_Oracle
import pymongo
import sys
v_sdb=sys.argv[1]
v_stable=sys.argv[2]
v_tdb=sys.argv[3]
v_ttable=sys.argv[4]

#connection
Conn_mongo=pymongo.Connection('127.0.0.1',30001)
T_mongo='Conn_mongo.'+v_tdb+'.'+v_ttable
#user
Conn_orcl=cx_Oracle.Connection('data_main/yw_data@yewu_1')
cursor_orcl=Conn_orcl.cursor()

sql_2='select * from '+v_sdb+'.'+v_stable

rs2=cursor_orcl.execute(sql_2)
columns=[item[0] for item in rs2.description]
if eval(T_mongo+'.count()')==0:
    for item in rs2:
        data=dict(zip(columns,item))
        exec(T_mongo+".insert(data)")

cursor_orcl.close()
Conn_orcl.close()
Conn_mongo.close()

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
15 [報告]
發(fā)表于 2014-11-22 20:40 |只看該作者
本帖最后由 sohusina 于 2014-11-22 20:54 編輯

1.你是如何學(xué)習(xí)Python的?看書?看視頻?還是?
看書,一本老書!秔ython核心編程,第二版》。還是python2.6的。

2.你工作中有用到Python嗎?主要用來做什么?
沒有,只幫別人做著玩玩。

3.你覺得Python跟其他腳本語言比優(yōu)勢在哪?
簡單易學(xué),至少跟perl比要簡單些。但是優(yōu)勢很明顯,既可以搞web編程,還可以搞系統(tǒng)。哎,為什么php,perl當(dāng)初放棄了其中一條路呢?

4.談?wù)凱ython在自動化運(yùn)維中的應(yīng)用。
這幾年python很火,應(yīng)該能實(shí)現(xiàn)很多功能吧。

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
16 [報告]
發(fā)表于 2014-11-22 20:56 |只看該作者
本帖最后由 sohusina 于 2014-11-22 20:58 編輯

5.給出一個你自己寫的Python腳本(最好有詳細(xì)注釋)。
把前幾天剛學(xué)完python教程寫的腳本分享一下吧,注:windows下面要把腳本的相應(yīng)部分的代碼縮進(jìn)
改寫一下即可。

可以查看win32和linux redhat 5下的cpu型號,平臺是Python2.6+Django1.1.4

1、新建一個django項(xiàng)目,django-admin.py startproject mysite;
2、修改urls.py,加上

urlpatterns = patterns('',
    # Example:
    # (r'^mysite/', include('mysite.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    # (r'^admin/', include(admin.site.urls)),
    url(r'^$','mysite.views.look_page'),
)

3、建立一個views.py,代碼如下
  1. # -*- coding: utf-8 -*-
  2. import time
  3. import os,sys,platform
  4. from django.http import HttpResponse

  5. def first_page(request):
  6.     return HttpResponse('
  7. Hello World,你好
  8. ')

  9. def look_page(request):
  10.     return HttpResponse('
  11. cpu 型號是: '+ getcpu()+'
  12. ')

  13. def getcpu():
  14.     sysname=platform.system()
  15. # if sysname== 'Windows':
  16. # return getwincpu()
  17. # else:
  18.     return getlinuxcpu()
  19. # return

  20. #def getwincpu():
  21. # import win32com.client
  22. # s=""
  23. # com=win32com.client.Dispatch("WbemScripting.SWbemRefresher")
  24. # obj=win32com.client.GetObject("winmgmts:\\root\cimv2")
  25.            
  26. # processorItems=com.AddEnum(obj,"Win32_Processor").objectSet
  27.                
  28. # com.Refresh()
  29. # for item in processorItems:
  30. # s +=item.Name+"\r\n"
  31. # return s
  32.          

  33. def read_cpu():
  34.     try:
  35.         fd=open("/proc/cpuinfo",'r')
  36.         lines=fd.readlines()
  37.         s=""
  38.         k=0
  39.     finally:
  40.         if fd:
  41.             fd.close()
  42.     for line in lines:
  43.         
  44.         li=line.split(':')
  45.         if len(li) > 2:
  46.             continue
  47.         if li[0].startswith('model name'):
  48.             k+=1
  49.             s+="第"+ str(k) +"個cpu:"+ li[1]
  50.     return s

  51. def getlinuxcpu():
  52.     cpustr=read_cpu()
  53.     if not cpustr:
  54.         return "no cpu info"
  55.     else:
  56.         return cpustr
復(fù)制代碼
4、進(jìn)入django下的項(xiàng)目mysite,運(yùn)行 python manage.py runserver 8000
5、打開瀏覽器 http://127.0.0.1:8000 即可看到cpu 型號

論壇徽章:
10
CU大;照
日期:2013-05-20 10:44:54數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-06-09 22:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-06-05 22:20:00亥豬
日期:2014-08-23 14:52:27摩羯座
日期:2013-11-29 18:02:31CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34CU大;照
日期:2013-05-20 10:45:31CU大;照
日期:2013-05-20 10:45:24CU大牛徽章
日期:2013-05-20 10:45:13綜合交流區(qū)版塊每日發(fā)帖之星
日期:2016-02-12 06:20:00
17 [報告]
發(fā)表于 2014-11-22 21:53 |只看該作者
回復(fù) 1# yestreenstars 這個活動好,必須得頂一下!對于運(yùn)維人員來說學(xué)好一種運(yùn)維自動化腳本語言在以后的求職中絕對是一大亮點(diǎn),尤其是像python這種模塊化、可移植的語言~


   

論壇徽章:
93
2015年辭舊歲徽章
日期:2019-10-10 10:51:15CU大;照
日期:2014-02-21 14:21:56CU十二周年紀(jì)念徽章
日期:2020-10-15 16:55:55CU大;照
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大;照
日期:2019-10-10 10:55:38季節(jié)之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季節(jié)之章:冬
日期:2019-10-10 10:57:17CU大;照
日期:2014-02-21 14:22:52CU大;照
日期:2014-03-13 10:40:30CU大;照
日期:2014-02-21 14:23:15
18 [報告]
發(fā)表于 2014-11-23 00:18 |只看該作者
星辰開始實(shí)習(xí)啦,要頂一下!

論壇徽章:
0
19 [報告]
發(fā)表于 2014-11-23 13:10 |只看該作者
http://www.federmanagerquadri.it/fmq/woolrich.asp: I suoi oltre 7 mesi. Cosa posso fare. Come possono confermare che la sua ansia. Chiunque potrebbe farlo a nessuno. Hanno potuto fare questo a me. Vorrei aprire la porta di un agente della DEA.

http://www.fral.it/woolrich.asp: Una volta che si inizia a conoscere l'equipaggio è come avere la tua famiglia prendendo il mickey fuori you.What ti tiene sveglio la notte? Io vivo a Los Angeles così mi preoccupo miei figli non sono così collegati in Gran Bretagna, suppongo che non voglio loro di diventare i bambini americani. Cerchiamo di ottenere indietro tre o quattro volte l'anno. Quando vanno a scuola parlano con un accento americano britannico, ma quando tornano a casa da noi tornano al loro accento inglese, quindi posso fare con that.Do si ottiene detto off per ammorbidire il proprio accento? Sono stato sempre bastone su questo per anni, non è niente di nuovo.

http://www.blitzbovisa.com/shop/feed/woolrichparka.asp: Ho cercato su eBay e altrove per un trench, ma non solo io sono a buon mercato, io sono molto esigente credo quelli allacciati guardano bunchy e quelli non guardano con cintura informe, quindi voglio il genere in cui il nastro si trova proprio in. Si crea un bel look attrezzata. Ho visto questa chiamata cintura inserto sembra avere senso, giusto? Ma, come un termine di ricerca che non salta fuori risultati.

http://www.fsconsult.it/automezzi/woolrich.asp: Mi separai società con il mio medico di 17 anni che ho amato e rispettato. Era stato assolutamente meraviglioso fino ad agosto di allora era quasi come Dr. Jekyll e Mr.

http://www.democentersipe.it/Risorse/master.asp: Sono più facili da usare e rimuovere e l'effetto dura fino al prossimo shampoo. Il vantaggio principale è che assicurano la sicurezza da eventuali danni alla struttura dei capelli e texture. Abbiamo introdotto erbe Mascaras capelli striature per i capelli, per aggiungere glamour, o camuffare i capelli grigi.

論壇徽章:
1
摩羯座
日期:2013-11-29 18:02:31
20 [報告]
發(fā)表于 2014-11-23 13:43 |只看該作者
本帖最后由 CUTianrui007 于 2014-11-26 14:23 編輯

1.你是如何學(xué)習(xí)Python的?看書?看視頻?還是?
看書,這樣比較快,看視頻太浪費(fèi)時間了,且視頻 講得都太簡單了。
我愛問為什么,很少有視頻會講解為什么。所以看視頻也記不住。


2.你工作中有用到Python嗎?主要用來做什么?
Python太有用了,幾乎天天用,我是做汽車電子軟件開發(fā)的,

A:軟件發(fā)布時要用到ROM/RAM統(tǒng)計,我就是寫Python腳本實(shí)現(xiàn)的。
另外,
B:給客戶發(fā)布特殊的上位機(jī)程序時,也使用Python ctypes調(diào)用DLL
函數(shù),控制CANcase(汽車總線監(jiān)控工具),然后將Python腳本再通過
py2exe轉(zhuǎn)化為單獨(dú)的Exe文件發(fā)給客戶,這樣客戶就可以脫離Python環(huán)境運(yùn)行。

C:工作需要,要給另外一個供應(yīng)商提供二進(jìn)制BIN文件,此文件就客戶要求有特殊的格式,
要從生成的HEX或ELF文件中提取數(shù)據(jù)生成BIN文件,我也是用Python實(shí)現(xiàn)的。

Python很犀利的。

3.你覺得Python跟其他腳本語言比優(yōu)勢在哪?
以前學(xué)過Perl,后來公司來了新人用Python我也跟著用了。
記得特別清楚的一個區(qū)別是:Python的字符串可以直接做切片操作,而Perl不行,Perl要將字符串轉(zhuǎn)化為
序列才可以做切片。這一點(diǎn)很讓人不舒服。

Perl的安裝太麻煩了,也沒有好的調(diào)試工個,F(xiàn)在我用PyScripter來調(diào)試Python,強(qiáng)啊。

另外,Python類庫太強(qiáng)大了,可以直接操作WindowsAPI函數(shù),調(diào)用DLL,這一點(diǎn)Perl不能比。

Python在網(wǎng)絡(luò)方面應(yīng)用極多,語言簡單精煉。


4.談?wù)凱ython在自動化運(yùn)維中的應(yīng)用。
喜歡上一本書《編程狂人》,本書每周二發(fā)布一期,但是每次要手動下載,比較麻煩,就
寫了個Python腳本自動從網(wǎng)頁豐爬取書。


5.給出一個你自己寫的Python腳本(最好有詳細(xì)注釋)。

# -*- coding: utf-8-*-
#此腳本用于提取S19數(shù)據(jù),并生成到單獨(dú)文件中
import os, sys
#定義列表接收處理后的數(shù)據(jù)
gAllLineList = []
#生成文件
fOut = open("FlashDriver.c","w")
#打開文件
fS19 = open("ReleaseFlashDriver.s19",'r')
#遍歷文件每一行
for eachLine in fS19:
    #S19文件格式
    #S3 19 FEDE8000 01 32 20 3E 35 05 A6 39 00 00 E0 39 DA FD 7F 00 20 3E 01 00 12
    #將此行的數(shù)據(jù)部分存儲到列表中
    gAllLineList.append(eachLine[12:-3])

#將列表寫入到文件中,并在最后添加\表示換行
for eachItem in gAllLineList:
    fOut.write(eachItem +"\\")
    fOut.write("\n")
#關(guān)閉文件
fS19.close()
fOut.close()
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP