• <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>

            socketref,再見!高德

            https://github.com/adoggie

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(54)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            公司的交易系統bs架構,通過http方式訪問備份數據庫。開發公司不肯合作的態度,所以每一次必須人工的去登陸網站是手動備份。
            每天安排6次備份,這種對于一個程序開發者來講的話真是一種痛苦和侮辱。

            今天空下來就用python開始編寫自動備份方案:
            1.http自動登錄
            2.wget斷點下載
            3.7zip壓縮
            4.網盤 everbox的同步到服務器

            與http server的交互信息用wireshark抓包分析,還蠻靈光的

            python代碼:
             1 # -*- coding:utf-8 -*-
             2 #auto backup system database 
             3 #自動登錄,http下載,壓縮之后通過網盤同步到服務器
             4 
             5 import httplib, urllib,sys,os,re,datetime,time,os.path,gzip
             6 
             7 host="192.168.1.106"
             8 sys_user='anyuser'
             9 sys_pass='anypass'
            10 
            11 html = '''<body><h1>Object Moved</h1>This object may be found <a HREF="shuju.asp?err=
            12 ok!&amp;dizhi=../data_backup/zhk0432011-1-26.7055475.mdb">here</a>.</body>
            13 '''
            14 
            15 
            16 tasklet=[]
            17 backupTimes= 6# in day 每天備份次數
            18 
            19 
            20 
            21 def backup(outputfile):
            22     params = urllib.urlencode({'login_name':sys_user, 'login_pass': sys_pass, 'submit.x'9,'submit.y':9})
            23     conn = httplib.HTTPConnection(host)
            24     headers = {"Content-type""application/x-www-form-urlencoded",
            25                 "Accept""text/plain"}
            26     conn.request("POST","/asp/huiyuan/login_check_gl.asp",params,headers)
            27     resp = conn.getresponse()
            28     #print resp.status,resp.reason
            29     #print resp.getheaders()
            30     cookie = resp.getheader('set-cookie')
            31     #print resp.read()
            32     conn.close()
            33 
            34     #print 'retry GET /'
            35     conn = httplib.HTTPConnection(host)
            36     headers = {"Content-type""application/x-www-form-urlencoded",
            37                 "Accept""text/plain",'Cookie':cookie}
            38 
            39     conn.request("GET","/asp/admin/login_check001.asp",'',headers)
            40     resp = conn.getresponse()
            41 
            42     #sys.exit(0)
            43     conn = httplib.HTTPConnection(host)
            44     headers = {"Content-type""application/x-www-form-urlencoded",
            45                 "Accept""text/plain",'Cookie':cookie}
            46 
            47     conn.request("GET","/asp/admin/backup.asp",'',headers)
            48     resp = conn.getresponse()
            49     #print resp.status,resp.reason
            50     html=  resp.read()
            51 
            52     m = re.search(".*?/data_backup/(.*?\.mdb).*",html)
            53     backupfile = ''
            54     if len(m.groups()):
            55         backupfile = m.groups()[0]
            56         print backupfile
            57     else:
            58         print 'backup access failed!'
            59         return False
            60 # -o wget.log
            61     downloadurl= "http://%s/asp/data_backup/%s  -O %s "%(host,backupfile,outputfile)
            62     #print 'try get %s '%downloadurl
            63     cmd = "wget -c -t 0 %s"%downloadurl
            64     print cmd
            65     os.system(cmd)
            66     return True
            67 
            68 firsttime = datetime.datetime.now()
            69 if not os.path.exists('./backup'):
            70     os.mkdir('backup')
            71     
            72 if not os.path.exists('./sync'):
            73     os.mkdir('sync')
            74     
            75 while True:
            76     now = datetime.datetime.now()
            77     #filename = "backup/%s_%s-%s_%s_%s_%s.bak"%(now.year,now.month,now.day,now.hour,now.minute,now.second)    
            78     sync_hour= int(now.hour/int(24/backupTimes)) * int(24/backupTimes)
            79     filename = "%s_%s-%s_%s_%s_%s.bak"%(now.year,now.month,now.day,sync_hour,0,0)    
            80     try:
            81         if not os.path.exists("backup/"+filename):        
            82             backup("backup/"+filename)
            83             cmd = "7zip\\7z.exe a -t7z  sync\\%s.7z backup\\%s"%(filename,filename)
            84             print cmd
            85             os.system(cmd)    
            86     except:
            87         pass
            88     time.sleep(10#
            89 
            90 
            91 
            92 


            posted on 2011-01-25 16:20 放屁阿狗 閱讀(1974) 評論(0)  編輯 收藏 引用 所屬分類: perl/python/php/lua/tcl
            久久精品一区二区三区中文字幕| 91麻豆精品国产91久久久久久| 99久久99这里只有免费费精品| 欧美大战日韩91综合一区婷婷久久青草| 国内精品伊人久久久久影院对白| 一本一道久久精品综合| 精品久久久久久久无码| 久久精品亚洲一区二区三区浴池 | 亚洲综合伊人久久大杳蕉| 亚洲国产高清精品线久久 | 久久久久亚洲AV无码网站| 亚洲午夜久久久久久久久电影网| 国产L精品国产亚洲区久久| 国产精品丝袜久久久久久不卡| 国产午夜电影久久| 久久国产亚洲精品| 亚洲AV日韩精品久久久久久久 | 久久精品无码一区二区WWW| 国产免费久久精品99re丫y| 中文字幕无码免费久久| 丁香久久婷婷国产午夜视频| 久久综合伊人77777| 国内精品人妻无码久久久影院 | 亚洲综合伊人久久大杳蕉| 久久国产免费观看精品3| 少妇人妻综合久久中文字幕 | 久久精品国产精品亚洲毛片| 久久夜色精品国产亚洲| 亚洲国产精品一区二区三区久久| 怡红院日本一道日本久久| 久久99国产一区二区三区| 性欧美丰满熟妇XXXX性久久久 | 久久播电影网| 久久精品国产亚洲AV电影| 99久久国产综合精品五月天喷水| 久久一本综合| 日本久久久精品中文字幕| 国产精品久久久久久久久久影院 | 久久99热国产这有精品| 久久精品国产99久久久香蕉| 久久精品无码一区二区WWW|