• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            學著站在巨人的肩膀上

            金融數(shù)學,InformationSearch,Compiler,OS,

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              12 隨筆 :: 0 文章 :: 8 評論 :: 0 Trackbacks

            前一陣花了點時間學習python,近段時間完成了一個監(jiān)控服務器基本信息的項目,都是為了滿足大家監(jiān)控的欲望,特殊日志并報警的分布式系統(tǒng),單臺服務器采集粒度為1次/1分鐘,一天大約1440條,目前監(jiān)控了20多臺服務器,一天大約31680條日志,現(xiàn)在單點監(jiān)控中心服務器在性能上還綽綽有余,有更多的服務器來測試就好了,估計可以支持到100臺以上服務器監(jiān)控的級別。

            現(xiàn)在遇到一個需求是發(fā)現(xiàn)報警時實時發(fā)送消息給相關人員,由于公司短信網(wǎng)關只買了上海電信用戶沒有上海電信的號碼,汗一個,只好通過發(fā)郵件來實施。

            支持發(fā)送GB18030編碼的文本內(nèi)容,任意編碼附件,可以做出適當修改支持群發(fā)。

             

            ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
            1. #coding=utf-8   
            2. #!/usr/lib/python2.5/bin/python   
            3. import os   
            4. import sys   
            5. from smtplib import SMTP   
            6. from email.MIMEMultipart import MIMEMultipart   
            7. from email.mime.application import MIMEApplication   
            8. from email.MIMEText import MIMEText   
            9. from email.MIMEBase import MIMEBase   
            10. from email import Utils,Encoders   
            11. import mimetypes   
            12. import time   
            13.   
            14. STMP_SERVER = "mail.×××.com"  
            15. STMP_PORT = "25"  
            16. USERNAME = "×××@×××.com"  
            17. USERPASSWORD = "×××"  
            18. FROM = "MonitorCenterWarning@×××.com"  
            19. TO = "×××@gmail.com"  
            20.   
            21. def sendFildByMail(config):   
            22.     print 'Preparing...'  
            23.     message = MIMEMultipart( )   
            24.     message['from'] = config['from']   
            25.     message['to'] = config['to']   
            26.     message['Reply-To'] = config['from']   
            27.     message['Subject'] = config['subject']   
            28.     message['Date'] = time.ctime(time.time())   
            29.     message['X-Priority'] =  '3'  
            30.     message['X-MSMail-Priority'] =  'Normal'  
            31.     message['X-Mailer'] =  'Microsoft Outlook Express 6.00.2900.2180'  
            32.     message['X-MimeOLE'] =  'Produced By Microsoft MimeOLE V6.00.2900.2180'  
            33.        
            34.     if 'file' in config:   
            35.         #添加附件   
            36.         f=open(config['file'], 'rb')   
            37.         file = MIMEApplication(f.read())   
            38.         f.close()   
            39.         file.add_header('Content-Disposition''attachment', filename= os.path.basename(config['file']))   
            40.         message.attach(file)   
            41.        
            42.     if 'content' in config:   
            43.         #添加文本內(nèi)容   
            44.         f=open(config['content'], 'rb')   
            45.         f.seek(0)   
            46.         content = f.read()   
            47.         body = MIMEText(content, 'base64''gb2312')   
            48.         message.attach(body)   
            49.   
            50.     print 'OKay'  
            51.     print 'Logging...'  
            52.     smtp = SMTP(config['server'], config['port'])   
            53.     #如果SMTP服務器發(fā)郵件時不需要驗證登錄則對下面這行加上注釋   
            54.     smtp.login(config['username'], config['password'])   
            55.     print 'OK'  
            56.        
            57.     print 'Sending...',   
            58.     smtp.sendmail (config['from'], [config['from'], config['to']], message.as_string())   
            59.     print 'OK'  
            60.     smtp.close()   
            61.     time.sleep(1)   
            62.   
            63. if __name__ == "__main__":   
            64.     if len(sys.argv) < 2:   
            65.         print 'Usage: python %s contentfilename' % os.path.basename(sys.argv[0])   
            66.         print 'OR Usage: python %s contentfilename attachfilename' % os.path.basename(sys.argv[0])   
            67.         wait=raw_input("quit.")   
            68.         sys.exit(-1)   
            69.     elif len(sys.argv) == 2:   
            70.         sendFildByMail({   
            71.             'from': FROM,   
            72.             'to': TO,   
            73.             'subject''[MonitorCenter]Send Msg %s' % sys.argv[1],   
            74.             'content': sys.argv[1],   
            75.             'server': STMP_SERVER,   
            76.             'port': STMP_PORT,   
            77.             'username': USERNAME,   
            78.             'password': USERPASSWORD})   
            79.     elif len(sys.argv) == 3:   
            80.         sendFildByMail({   
            81.             'from': FROM,   
            82.             'to': TO,   
            83.             'subject''[MonitorCenter]Send Msg and File %s %s' % (sys.argv[1], sys.argv[2]),   
            84.             'content': sys.argv[1],   
            85.             'file': sys.argv[2],   
            86.             'server': STMP_SERVER,   
            87.             'port': STMP_PORT,   
            88.             'username': USERNAME,   
            89.             'password': USERPASSWORD})   
            90.     wait=raw_input("end.")  

             

            windows xp下:

            例子

             linux ubuntu,suse下:

            1

            收到的結果:

            2

            posted on 2010-03-15 19:24 學者站在巨人的肩膀上 閱讀(670) 評論(0)  編輯 收藏 引用
            久久综合色之久久综合| 少妇精品久久久一区二区三区| 久久久精品人妻一区二区三区四 | 国产精品久久久99| 久久久不卡国产精品一区二区| 久久996热精品xxxx| 伊人久久成人成综合网222| 久久水蜜桃亚洲av无码精品麻豆 | 7777久久亚洲中文字幕| 久久国产精品一区| 97久久国产综合精品女不卡| 大蕉久久伊人中文字幕| 久久精品国产欧美日韩99热| 久久国产精品-国产精品| 亚洲国产视频久久| www亚洲欲色成人久久精品| 亚洲中文字幕无码久久综合网| 夜夜亚洲天天久久| 日韩精品无码久久久久久| 久久久久亚洲AV成人网人人软件| 久久精品人人槡人妻人人玩AV | 国产免费福利体检区久久| 亚洲国产高清精品线久久| 老司机国内精品久久久久| 久久99国产综合精品| 中文字幕无码av激情不卡久久| 91久久精品国产91性色也| 久久精品无码午夜福利理论片| 久久人人爽人人爽人人av东京热| 久久e热在这里只有国产中文精品99 | 精品综合久久久久久97超人| 色诱久久久久综合网ywww| 久久国内免费视频| 久久久久久国产精品无码下载 | 久久精品国产色蜜蜜麻豆| 久久久黄片| 色综合久久天天综线观看| 久久精品一区二区三区中文字幕| 久久亚洲高清观看| 久久国产精品免费一区二区三区 | 国产69精品久久久久APP下载 |