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

      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代碼發現,文本是從標簽

    開始的一直到結尾,這樣只要能夠匹配到第一個文本前的
    耽美肉文
  • <xmp id="cu88e"><object id="cu88e"></object>
  • <input id="cu88e"><s id="cu88e"></s></input>