• <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
            99热成人精品热久久669| www.久久精品| 欧美激情精品久久久久久久| 国产精品99久久不卡| 亚洲国产精品无码久久青草 | 久久香蕉一级毛片| 久久人妻少妇嫩草AV蜜桃| 一97日本道伊人久久综合影院| 亚洲色欲久久久综合网| 欧美大战日韩91综合一区婷婷久久青草| 人妻中文久久久久| 久久成人国产精品二三区| 亚洲AV无码久久| 2021久久精品免费观看| 久久这里只精品国产99热| 久久亚洲精品无码aⅴ大香| 色偷偷888欧美精品久久久| 无码人妻精品一区二区三区久久 | 久久久久久久尹人综合网亚洲| 欧美伊人久久大香线蕉综合69| 99久久精品影院老鸭窝| 亚洲精品无码专区久久久| 久久综合亚洲色HEZYO国产 | 亚洲欧美伊人久久综合一区二区| 99久久国产主播综合精品 | 国产一区二区精品久久凹凸 | 7777精品伊人久久久大香线蕉| www亚洲欲色成人久久精品| 久久人人爽人人爽人人片AV不| 久久久无码精品亚洲日韩蜜臀浪潮 | 香蕉久久一区二区不卡无毒影院| 国产成人精品综合久久久久 | 99久久国产免费福利| 久久精品国产亚洲欧美| 久久精品国产亚洲AV麻豆网站| 亚洲精品第一综合99久久| 性做久久久久久久久浪潮| 性高朝久久久久久久久久| 久久成人小视频| 伊人久久大香线蕉AV色婷婷色| 久久亚洲私人国产精品vA|