亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

關于網站文件自動備份程序的一點思考

2020-07-27 13:21:02
字體:
來源:轉載
供稿:網友

摘要: 
本文提供了一種使用asp php腳本來實現網站文件備份的思路,可以實現指定文件的按天備份。 
個人網站往往在虛擬主機上,對主機的控制權限很小,因此不能使用諸如任務計劃來實現定時備份,我們需要換一種思路來實現相似的自動備份。 
我們可以利用用戶對網站的訪問來實現對指定文件的按天備份。 
基本思路是:用戶訪問網站 → 讀取最后備份日期、讀取當前日期然后比較,如果這兩個日期不一致則調用備份程序來實現對指定文件的備份,備份完成后再寫入新的日期標記,這時候用戶再訪問網站,日期已經是最新的了,就會跳過備份程序繼而執行其他程序。 
分析這個思路:備份程序會在每天的第一個用戶訪問網站的時候啟動,便可以達到按天備份的效果,然而如果這天沒有用戶訪問則不會備份,這個并無多大關系,因為如果沒有用戶訪問網站,則網站內容不會發生很大改變。因此可以忽略這個情況。 
需要注意的是,可能存在兩個人同時訪問網站,而同時啟動備份程序的情況,便可能會對備份內容造成覆蓋,對此我們可以在程序中添加判斷語句,如果文件已經存在則不去覆蓋它。 
如果是要備份的兩個文件的文件名也相同則也會造成覆蓋,我們假定文件是全不相同的。 
還有一個比較重要的問題是,在備份程序中必須采用的時期格式是    4位數年和2位數月、日,不足位數必須補零。  例如:2006-05-31只有這樣才能實現日期大小的比較,在asp中我們可以用一個小程序來實現,在php中已經有這樣的日期格式了。 
下面詳細說明程序的構造,以asp為例。 
===bak_set.asp=== 

復制代碼 代碼如下:
Dim root_dir  
root_dir = "/"  
Dim bak_set  
Set bak_set = Server.createobject("Scripting.Dictionary")  
bak_set.Add "last_bak" , "2006-05-30"  
bak_set.Add "file_list" , "data.mdb|system.mdb"  
bak_set.Add "file_path" , "database/|database/"  
bak_set.Add "bak_dir" , "backup/"  
bak_set.Add "bak_date" , "2006-05-27|2006-05-28|2006-05-29|2006-05-30"  
bak_set.Add "perfix" , "@"  
bak_set.Add "date_out" , "2"  
以上是備份設置文件,root_dir 是網站主目錄的路徑,是網站的一個全局設置,剩下的是備份設置,我們需要知道:要備份的文件名、路徑,備份在什么地方,備份保留幾天,備份文件的文件名前綴,兩個經常變化的設置是最后備份日期和備份過的日期的列表。在全部的路徑設置中都需要用“/”結束 
Iso標準日期函數:  
復制代碼 代碼如下:
Function IsoDate(str_date)     Dim temp  
    If IsDate(str_date) Then  
        temp = Year(str_date)&"-"& Right("0"&Month(str_date),2) & "-"& Right("0" & Day(str_date),2)  
    Else  
        temp = str_date  
    End If  
    IsoDate=temp  
End Function 
 
備份函數的思路: 
先將備份設置讀取出到函數中的變量中,并且得到網站的服務器路徑  
檢查備份主文件夾(例如:backup/)是否存在,當前備份文件夾(例如:backup/2006-05-30/)是否存在,然后將需要備份的文件保存到當前備份文件夾;  
計算出備份文件的保存期,讀取以前的備份日期列表,然后兩者相比較,如果日期小于保存期則將備份文件刪除,如果不需要刪除則將日期轉存到新變量中。  
生成新的備份設置并將之寫入原設置文件。  
具體程序如下: 
復制代碼 代碼如下:
'==================================  
' Function: 文件定時備份程序backup files  
' Need var: root_dir , bak_set , isodate()  
' Need file bak_set.asp  
' return : true / false  
'==================================  
Function bak_start()  
    '1  
    Dim perfix  
        perfix = bak_set("perfix")  
    Dim files  
        files = split(bak_set("file_list"),"|")  
    Dim paths  
        paths = split(bak_set("file_path"),"|")  
    Dim now_date  
        now_date = isodate(date)  
        'response.Write(now_date)  
    Dim sev_root   
        sev_root = Server.MapPath(root_dir)  
    Dim bak_root  
        bak_root = sev_root & "/" & bak_set("bak_dir")  
    Dim bak_dir  
        bak_dir = bak_root & "/" & now_date & "/"  
    '2 create backup  
    Dim fso  
    Set fso = Server.createobject("Scripting.FileSystemObject")  
    If Not fso.FolderExists(bak_root) Then fso.CreateFolder(bak_root)  
    If Not fso.FolderExists(bak_dir) Then fso.CreateFolder(bak_dir)  
    'response.Write(bak_dir)  
    If  Ubound(files) > Ubound(paths) Then  
        bak_start = false   
        Exit Function  
    End If   
    Dim i  
        'On Error Resume Next  
    For i = 0 To Ubound(files)  
            'response.Write(sev_root & "/" & paths(i) & files(i))  
        If fso.FileExists( sev_root & "/" & paths(i) & files(i) ) And Not fso.FileExists(bak_dir & perfix & files(i)) Then   
            fso.CopyFile sev_root & "/" & paths(i) & files(i) , bak_dir & perfix & files(i)  
        End If  
    Next  
    '3 Delete out of date backup  
    Dim date_out  
    date_out = isodate( date - Abs(bak_set("date_out")) )  
    'response.Write(date_out)  
    Dim dates  
    Dim bak_date  
    bak_date = ""  
    dates = split(bak_set("bak_date"),"|")  
    For i = 0 To Ubound(dates)  
        If dates(i) < date_out Then  
            'On Error Resume Next  
            If fso.FolderExists(bak_root & "/" & dates(i)) Then fso.DeleteFolder bak_root & "/" & dates(i)  
        Else  
            bak_date = bak_date & dates(i) & "|"  
        End If  
    Next  
    bak_date = bak_date & now_date  
    bak_set("bak_date") = bak_date  
    '4 update settings  
    Dim f  
    Set f = fso.OpenTextFile(Server.MapPath("bak_set.asp"),2,true)'2 寫  
    Dim temp ,keys  
    temp = "<%" &vbCrlf & _  
    "Dim root_dir"&vbCrlf & _  
    "root_dir = """& root_dir &"""" &vbCrlf & _   
    "Dim bak_set" &vbCrlf & _  
    "Set bak_set = Server.createobject(""Scripting.Dictionary"")"&vbCrlf  
    keys = bak_set.Keys  
    For i = 0 to Ubound(keys)  
        temp = temp & "bak_set.Add """&keys(i)&""" , """ & bak_set(keys(i)) & """" & vbCrlf  
    Next  
    temp = temp & "%" & ">"  
    f.write temp  
    f.Close  
    Set fso = Nothing  
    Set f = Nothing  
    bak_start = true  
End Function   
最后,也是最重要的,那就是安全問題,如果備份的文件能被瀏覽器打開,那后果可能是很嚴重的!所以應當謹慎選取備份文件夾,如果服務器允許訪問網站的外部目錄,那么應當把備份的路徑也指定到網站外部,例如:網站根目錄解析到了 XXX/htdoc/ 而你對此也有讀寫權限 xxx/ 那么就可以將備份文件加指定到 xxx/backup/ 這樣就比較安全。如果沒有這樣的權限,那么就必須保證,需要備份的文件本身就是安全的。 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人福利视频网| 国内免费精品永久在线视频| 高清欧美一区二区三区| 91欧美日韩一区| 国产精品wwwwww| 欧美日韩精品在线观看| 国产精品白丝av嫩草影院| 欧美最近摘花xxxx摘花| 日韩最新在线视频| 在线性视频日韩欧美| 国产97人人超碰caoprom| 在线看日韩欧美| 亚洲free性xxxx护士hd| 日产精品99久久久久久| 亚洲精品久久久久中文字幕二区| 欧美特黄级在线| 亚洲黄色片网站| 在线播放日韩av| 国产日韩换脸av一区在线观看| 久久久免费在线观看| 97激碰免费视频| 中文字幕亚洲图片| 北条麻妃在线一区二区| 正在播放亚洲1区| 国产欧美 在线欧美| 久久精品久久久久久| 精品国产一区二区在线| 欧美日韩国产中文精品字幕自在自线| 日韩国产精品一区| 日本在线精品视频| 欧美精品一区二区三区国产精品| 国产精品网红福利| 亚洲欧美日韩在线一区| 91九色在线视频| 九九热这里只有在线精品视| 日韩男女性生活视频| 成人免费视频97| 欧美在线视频一区二区| 日韩在线观看免费网站| 国产精品久久久久久久久免费| 国产精品久久久久久久久免费| 97色在线播放视频| 草民午夜欧美限制a级福利片| 久久精品国产久精国产思思| 亚洲视频国产视频| 日韩av片电影专区| 欧美xxxx综合视频| 国产综合视频在线观看| 精品色蜜蜜精品视频在线观看| 久久国产精品久久国产精品| 少妇高潮 亚洲精品| 成人网在线观看| 一区国产精品视频| 国产精品美女呻吟| 美女精品视频一区| 一区二区在线视频播放| 国外成人在线播放| 欧美午夜xxx| 另类专区欧美制服同性| 亚洲va欧美va国产综合剧情| 免费91在线视频| 色综合久久中文字幕综合网小说| 成人午夜激情免费视频| 亚洲欧美一区二区三区情侣bbw| 久久精品国产久精国产一老狼| 日韩免费精品视频| 中文字幕日韩精品有码视频| 国产精品一区久久| 91社区国产高清| 亚洲经典中文字幕| 亚洲三级黄色在线观看| 欧美贵妇videos办公室| 免费av在线一区| 久久久久久久久久久久久久久久久久av| 亚洲一区二区三区成人在线视频精品| 亚洲黄色在线观看| 668精品在线视频| 日韩中文字幕在线视频| 午夜精品久久17c| 一区二区欧美日韩视频| 91免费高清视频| 中文字幕日韩欧美在线| 精品久久久久久久久久久久久久| 欧美黄色片视频| 久久频这里精品99香蕉| 成人免费视频网址| 精品性高朝久久久久久久| 久久久精品在线观看| 成人a免费视频| 亚洲码在线观看| 国产婷婷97碰碰久久人人蜜臀| 色综合久久天天综线观看| 国产精品自拍偷拍视频| 欧美疯狂性受xxxxx另类| 精品久久久国产精品999| 日韩在线观看成人| 亚洲美女www午夜| 欧美性xxxx极品高清hd直播| 亚洲成人a级网| 国产精品久久久久久久9999| 亚洲欧美综合区自拍另类| 亚洲美腿欧美激情另类| 久久免费国产精品1| 亚洲视频在线观看视频| 97精品欧美一区二区三区| 久久久久久尹人网香蕉| 欧美视频在线观看 亚洲欧| 97视频在线观看成人| 在线日韩中文字幕| 久久av.com| 国内精品视频久久| 国产精品久久久久久久久久久久久| 日韩在线视频免费观看高清中文| 欧美激情啊啊啊| 欧美极品少妇xxxxx| 久久夜色撩人精品| 欧美日韩亚洲激情| 精品一区二区三区四区在线| 热久久视久久精品18亚洲精品| 亚洲性猛交xxxxwww| 久久久亚洲国产| 欧美日韩激情小视频| 九九久久国产精品| 久久影院免费观看| 亚洲一区制服诱惑| 亚洲国产精品视频在线观看| 国产成人avxxxxx在线看| 91精品国产高清久久久久久| 国产亚洲精品激情久久| 色狠狠av一区二区三区香蕉蜜桃| 91免费观看网站| 粉嫩av一区二区三区免费野| 日韩精品免费在线播放| 国产成人鲁鲁免费视频a| 九九热视频这里只有精品| 国产精品久久国产精品99gif| 97在线视频免费| 久久久精品国产一区二区| 中文字幕在线观看日韩| 亚洲欧美综合另类中字| 97视频在线观看播放| 97国产精品视频| 欧美在线视频在线播放完整版免费观看| 综合136福利视频在线| 欧美黄色成人网| 国产日韩欧美日韩大片| 国产成人精品视| 国产欧美日韩中文字幕在线| 久久久精品国产| 成人做爽爽免费视频| 国产精品自拍视频| 亚洲免费福利视频| 亚洲色图美腿丝袜| 成人午夜在线影院| 北条麻妃99精品青青久久| 欧美老女人在线视频| 久久亚洲春色中文字幕| 国产精品免费福利| 亚洲欧美日韩国产精品| 久久这里只有精品99| 国产一区视频在线播放| 日韩经典中文字幕在线观看| 色综合五月天导航| 欧美成人免费全部|