• <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 放屁阿狗 閱讀(1969) 評論(0)  編輯 收藏 引用 所屬分類: perl/python/php/lua/tcl
            青青草原综合久久| 国产精品免费久久久久久久久| 欧美与黑人午夜性猛交久久久| 国产成人久久精品一区二区三区 | 99久久亚洲综合精品网站| 三级片免费观看久久| 久久久噜噜噜久久中文字幕色伊伊| 伊人久久大香线蕉精品| 日韩va亚洲va欧美va久久| 人妻无码中文久久久久专区| 青春久久| 老司机国内精品久久久久| 久久精品免费全国观看国产| 久久91这里精品国产2020| 国产成人综合久久久久久| 天天爽天天狠久久久综合麻豆| 狠狠色丁香久久婷婷综合图片| 久久久WWW成人免费精品| 激情五月综合综合久久69| 国产亚洲精品美女久久久| 97r久久精品国产99国产精| 久久精品嫩草影院| 久久精品无码一区二区日韩AV| 日本欧美久久久久免费播放网| 久久久国产亚洲精品| 久久精品成人一区二区三区| 精品久久久久久中文字幕| 久久99久久99精品免视看动漫| 武侠古典久久婷婷狼人伊人| 国产精品va久久久久久久| 狠狠色丁香久久综合五月| 97久久综合精品久久久综合| 久久婷婷五月综合97色| 亚洲av日韩精品久久久久久a| 久久精品国产清自在天天线| 国产精品久久久久久五月尺| 亚洲国产婷婷香蕉久久久久久| 男女久久久国产一区二区三区| 久久久久久精品免费看SSS | 欧洲精品久久久av无码电影| 日韩久久久久中文字幕人妻 |