• 貝溫微信機器人是由貝溫開發的第三方免費微信智能機器人,通過微信機器人,可以管理微信群及個人好友的相關事務,解放您的雙手,就用貝溫微信機器人!
              • 聯系電話:

                400-6688-1193

              • 郵箱:

                Support@bewiner.cn

              Author:大叔@運維部

              0x00 關于運維

              1.何為運維?

              ? ? ? ?運維(Operation and maintenance)一般是指對大型組織已經建立好的網絡軟硬件的維護,其中傳統的運維是指信息技術運維(IT運維)。所謂IT運維管理,是指單位 IT 部門采用相關的方法、手段、技術、制度、流程和文檔 等,對IT 運行環境(如軟硬件環境、網絡環境等)、IT 業務系統和 IT 運維人員進行的綜合管理。

              ? ? ? 以上是網上關于運維的一些概念。

              ? ? ? 個人的理解運維就是為了最求一種穩定的結果,穩定又成為運維一切開始的基石。運維的一切工作都是圍繞著穩定為努力的。無論你是搞網絡還是搞系統,搞服務器硬件還是搞各種軟件的,我們都在追求一種持續性的,高性能,可用的狀態,這是我心中的運維。

              運維者,高可用也。

              2.運維都做什么工作?

              ? ? ? ?運維的工作太多太多,做的了水晶頭,裝的了系統,扛得動服務器,正所謂文能調優寫腳本,武能布網修機器。

              ? ? ? ?說實話,接觸運維沒有多久,不過比較幸運的是從一個IDC的基礎建設最后跟到了云服務的上線,這段經歷也讓自己能夠接觸運維的方面更加全面。

              ? ? ? ?從時間的順序來講,運維最早的工作是在機房建設方面,這方面主要集中在物理層面包括機房的整體建設,綜合部署網線與電線,ups設計等等。機房建設之后屬于部署階段,這期間包括安裝操作系統,數據庫和各種軟件,網絡交換機,路由器的調試等等。部署結束之后就是管理期,管理一個復雜而且不斷持續和迭代的過程。

              3. 如何成為一個好的運維?

              劉邦說:運籌帷幄之中,決勝千里之外。說的是張良子房。

              我要說:運行維護之中,穩定千年之外。說的是每個運維。

              ? ? ? ?隨著科技的不斷發展,對我們運維也提高了要求,從最早運維界提出的DevOps再到最近半年Google提出的SRE。

              ? ? ? ?隨著云的落地和docker的迅猛崛起,批量部署等自動化運維成為了運維的主流方向。

              ? ? ? ?DevOps無論逼格多高,其實它歸根結底就是一套工具鏈,它代表了開發、運維、測試等環節之間的協作。

              ? ? ? ?常用的工具有Docker(容器化)、Jenkins(持續集成)、Vagrant(虛擬化平臺)、Zabbix、Nagios、cacti和小米開源的OpenFalcon(監控工具)、OneAPM (性能分析)、ELK(日志分析)等等

              ? ? ? ?如果把DevOps看成是一串項鏈,上面的工具是項鏈上的珍珠,那么自動化就是在這一串串珍珠串接起來的一根線。

              0x02 監控的自動化

              ? ? ? ?監控就想我們的眼睛,一個沒有監控的運維就像一個身懷絕世武功的瞎子。功夫再高也怕飛刀。知己知彼不僅僅是運用在軍事上,對于運維項目上也是需要知己知彼,才能立于不敗之地。

              ? ? ? ?這是我工作中經常要用的一款監控工具,是一款態勢感知的優秀平臺。也是我日常工作中的得力助手。像大多數普通的監控一下該監控也支持郵件報警功能。但這個郵件報警功能還不是特智能。

              ? ? ? ?前段時間,看到了一篇有的文章,關于使用hubot和slack制作運維機器人的故事,突發奇想,搞個微信機器人來接受報警的系統是不是會更有意思?

              1. 通過郵件協議獲取郵箱里的郵件。

              既然這樣,說干就干。

              0x03 獲取郵件內容

              ? ? ? ?根據郵件協議從郵件服務器上獲取郵件可以通過pop3和imap兩種方法實現,最開始用的是poplib這個模塊,不過后來發現imaplib這個模塊功能更多。

              首先導入imaplib。

              import imaplib

              使用IMAP4協議和用戶名密碼登錄郵箱。

              conn = imaplib.IMAP4(imapserver,143)

              conn.login(username, password)

              select選擇郵箱INBOX是默認的收件箱。

              conn.select("INBOX")

              search搜索郵箱里的郵件 (None, ‘ALL’)表示全部。

              state, data = conn.search(None, 'ALL')

              設定兩個變量分別獲取state和data。

              state 是從郵箱中返回的狀態嗎OK,代表已經獲取成功。

              data 返回的是一個數組,里面的數字對應著郵箱的郵件編號。

              通過split()函數將data轉變成list。

              elist = data[0].split()

              通過fetch獲取郵件的內容。RFC822表示郵件按照RFC822的格式。

              state,data=conn.fetch(elist[len(elist)-1],'(RFC822)')

              得到一封MIME標準的郵件,只要對python的email模塊其進行解析就可以。

              首先導入email模塊

              import email

              然后通過email.message_from_string將郵件內容轉化成message對象。

              msg=email.message_from_string(data[0][1])

              通過get_payload(decode=True)獲取郵件的內容。

              msg_content=msg.get_payload(decode=True).decode('utf-8')

              打印一下內容。

              已經變成html格式啦。

              0x04 解析出郵件文本內容

              html獲取文本主要有三種方式:

              1. 正則表達式

              2. Beautiful Soup 4

              3. HTMLParser模塊

              分析html結構發現獲取文本非常簡單,使用python自帶的HTMLParser模塊即可。

              from HTMLParser import HTMLParser

              handle_starttag(tag, attrs) ,處理開始標簽,比如

              handle_data(data) ,處理數據,標簽之間的文本

              classMyHTMLParser(HTMLParser): ?

              def__init__(self):

              ????pass ?

              defhandle_starttag(self, tag, attrs):

              ????pass

              defhandle_data(self,data):

              ????pass

              通過分析前面的html代碼發現,文本是從標簽

              開始的一直到結尾,這樣只要能夠匹配到第一個文本前的
              欧美亚洲日本国产黑白配_特级高清牲交生活片_亚洲一本一道一区二区三区_小男生自慰gv网站_强玩乡下丰满少妇_中国极品美軳人人体bt