• <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++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(54)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            公司的交易系統(tǒng)bs架構(gòu),通過http方式訪問備份數(shù)據(jù)庫。開發(fā)公司不肯合作的態(tài)度,所以每一次必須人工的去登陸網(wǎng)站是手動(dòng)備份。
            每天安排6次備份,這種對(duì)于一個(gè)程序開發(fā)者來講的話真是一種痛苦和侮辱。

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

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

            python代碼:
             1 # -*- coding:utf-8 -*-
             2 #auto backup system database 
             3 #自動(dòng)登錄,http下載,壓縮之后通過網(wǎng)盤同步到服務(wù)器
             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 每天備份次數(shù)
            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 放屁阿狗 閱讀(1982) 評(píng)論(0)  編輯 收藏 引用 所屬分類: perl/python/php/lua/tcl
            亚洲精品蜜桃久久久久久| 久久免费精品视频| 久久精品久久久久观看99水蜜桃| 四虎影视久久久免费观看| 欧美喷潮久久久XXXXx| 91亚洲国产成人久久精品| 亚洲国产成人精品无码久久久久久综合 | 亚洲性久久久影院| 2021久久精品国产99国产精品| 91精品日韩人妻无码久久不卡| 看全色黄大色大片免费久久久 | 久久久精品日本一区二区三区 | 久久久久国产日韩精品网站| 亚洲精品乱码久久久久久蜜桃图片| 国产精品VIDEOSSEX久久发布| 中文字幕日本人妻久久久免费| 成人亚洲欧美久久久久| 99久久成人国产精品免费| 青青草原精品99久久精品66| 久久亚洲国产成人影院网站| 久久久久综合网久久| 久久精品国产亚洲AV无码偷窥| 亚洲国产小视频精品久久久三级 | 久久精品草草草| 99久久婷婷免费国产综合精品| 国产69精品久久久久9999APGF| 精品多毛少妇人妻AV免费久久| 久久91亚洲人成电影网站| 久久天堂AV综合合色蜜桃网| 久久精品成人欧美大片| 久久亚洲sm情趣捆绑调教| 午夜精品久久久久久中宇| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 日本免费久久久久久久网站| 久久午夜羞羞影院免费观看| 日韩精品无码久久久久久| 婷婷五月深深久久精品| 精品久久久久中文字幕日本| 国产精品久久久久影院嫩草| 91精品国产91久久久久久青草| 国产AⅤ精品一区二区三区久久 |