• <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
            久久影院亚洲一区| 中文字幕久久欲求不满| 成人久久免费网站| 91性高湖久久久久| 久久婷婷五月综合成人D啪| 久久精品国产亚洲精品| 久久亚洲精品无码AV红樱桃| 久久影院午夜理论片无码| 2021国内精品久久久久久影院| 成人久久综合网| 亚洲精品乱码久久久久久蜜桃图片 | 久久久久综合国产欧美一区二区 | 久久久国产精华液| 国产激情久久久久影院老熟女免费 | 2021国产精品久久精品| 国内精品久久久久伊人av| 亚洲国产日韩综合久久精品| 一本大道加勒比久久综合| 午夜精品久久久久| 亚洲欧美精品伊人久久| 一本久久知道综合久久| 中文字幕亚洲综合久久2| 亚洲AV日韩精品久久久久| 久久精品国产99久久丝袜| 亚洲色欲久久久综合网| 香蕉久久久久久狠狠色| 国产福利电影一区二区三区,免费久久久久久久精 | 一本色道久久88综合日韩精品 | 久久黄色视频| 免费观看久久精彩视频| 久久91亚洲人成电影网站| 久久发布国产伦子伦精品| 2021久久国自产拍精品| 亚洲精品乱码久久久久久按摩 | 94久久国产乱子伦精品免费| 72种姿势欧美久久久久大黄蕉| 伊人久久大香线蕉亚洲| 久久亚洲熟女cc98cm| 久久99精品国产麻豆宅宅| 亚洲综合久久夜AV | 久久精品中文字幕大胸|