首頁 > Domino服務器Lotus Notes的教程使用LotusScript的方法來備份Lotus Notes的Windows目錄

的方法來備份Lotus Notes的Windows目錄

在這裡,我們打破標準桿,使我們所有的客戶的HTML文件備份機的每日備份。 備份是通過Windows批處理文件使用XCOPY命令複製的所有文件已被修改。 我們已經做了很長一段時間沒有太多的思想。

最近,我們注意到在看目錄,並發現有額外的文件在備份的子目錄,在主目錄中不存在。 經過一番研究,我們決定,被刪除的文件在主目錄和子目錄中從未刪除。 一個小小的研究後,我們能夠找出如何得到真正的備份,使用只有Windows批處理文件。


所有這些語句將進入一個Windows批處理文件(擴展名。蝙蝠),計劃通過Windows調度程序(你也可以使用Windows的“計劃任務”命令,但計劃任務調度提供了一個圖形界面)。 該計劃預計在備份服務器上。

第一條語句,映射網絡驅動器連接到生產服務器。

淨使用p:\ \ production_server \ data_share_name my_password / USER:管理員/持久性:無

電話號碼:表示盤符,將用於在備份服務器上(將運行批處理文件)。
production_server是生產服務器的主機名(IP地址可以使用)。
data_share_name是在生產服務器上的數據目錄(如客戶的HTML文件存儲)共享名。 這是給共享的名字 - 你不應該使用與Windows的默認共享(C $等)。 相反,定義自己的份額,並指定用戶可以訪問該共享。
my_password是需要密碼的用戶登錄。非常重要的 - 在批處理文件中列出的密碼。 這可能會或可能不會為您的環境安全問題。
/ USER:管理員將訪問共享的用戶名。 這應該是一個已在生產服務器上讀取訪問HTML目錄的ID。 有沒有必要的名稱實際上是“管理員” - 事實上,我說,你不應該為這個過程中使用的管理員用戶名(尤其是因為在普通視圖中的密碼是任何人在批處理文件) 。 如果您使用具有只讀訪問HTML目錄的ID,然後沒有問題。
/持久:沒有表明該驅動器不應該是重新連接在登錄時自動。 僅此驅動器將被用於在批處理文件的時間。

已映射的驅動器後,下一步就是從生產HTML目錄備份的HTML目錄的所有文件複製。

XCOPY的電話號碼:\ HTML \ * E:。\ HTML \ * /英/ / /的Q /Ÿ

電話號碼:\ HTML \ *是源目錄(映射驅動器上的目錄)。 我們將複製的所有文件。
E:\ HTML \ *目標目錄。
/ E表示,我們將複製目錄和子目錄,包括空的子目錄。
/ D說某一特定日期後的文件複製。 由於沒有實際的指定日期,然後複製文件的目標日期是年紀比源日期。 這正是我們想要備份 - 只複製已在生產服務器上修改過的文件。
/ C說,即使出現錯誤繼續複製。
/ Q表示“安靜”模式 - 文件名,將不會被顯示在複製過程中。 由於批處理文件作為Windows的計劃任務運行,有沒有需要顯示的文件名。
/Ÿ告訴複製到不提示文件時被覆蓋。

現在到了棘手的部分。 我們需要刪除不再是在生產服務器上的文件和目錄從備份服務器。 這是在兩個階段 - 文件和目錄第二。 每個階段都有三個步驟:

目錄E:\ HTML \ * /。/ B / O的:N / S的>> E:\ Filelist.txt中

這是第一步。 做一個備份的HTML目錄中的所有文件的目錄清單。
/答:-D說,目錄沒有被列入。 所以我們只包括文件。
/ B列出了唯一的文件名(而不是一個普通的目錄列表,顯示文件大小和許多其他的東西)。
輸入/輸出:按字母順序排列的文件名排序。
/ S的遍歷子目錄。
>> E:\ Filelist.txt中重定向輸出到一個文件名為e:\ Filelist.txt中。

以下是第一階段的第二個步驟:

/ F“的令牌= 2 * delims = \”%%E(E:\ Filelist.txt中)如果不存在P級:\ HTML \%f DEL E:\ HTML \%%F

該聲明經過剛剛創建的文件中列出的所有條目。 研究發現,如果在生產服務器上的文件存在。 在生產服務器上,如果該文件不存在,它是從備份服務器中刪除。
FOR / F是一種特殊類型的循環語句在批處理編程。 它會通過一個文本文件中的所有行(括號中的文件名)。
令牌= 2 *指定將閱讀從文本文件中的標記(“令牌”,將在後面詳細解釋)。 2,說,讀第二個令牌,*說,採取一切後的第二個令牌。 將放入變量的值(第二個令牌和一切後的第二個令牌)。
delims = \指定定義令牌的分隔符。 從目錄中的條目將像電子的東西:\ HTML \ file1.htm或e:\ HTML \ subdir1 \ file2.htm。 “\”字符被用來分割成標記的字符串。 因此,第一令牌將是E:,第二個令牌將HTML和後的第二個令牌的一切都將是第一個例子中,並在第二個例子subdir1 \ file2.htm file1.htm。 請注意如何在第二個例子,這在以前是一個分隔符“\”,現在是字符串的一部分。 這是因為使用令牌中的聲明*。
%e指定變量的名稱。 使用兩個%的跡象,因為它是一個批處理文件內。 如果你測試一個命令提示符窗口,那麼你應該使用只有一%的跡象。 第一個%符號是一個“轉義”字符(就像在Notes公式語言“\”)。 變量的工作方式,這封信指定的第一個變量(“令牌=”第一部分)和所有其他變量將依次命名。 因此,將進入第二個令牌“%e”的變量,一切將進入一個變量稱為“%F”後的第二個令牌。
(E:\ Filelist.txt中)這些FOR / F聲明。 文件名是在括號內。
如果不存在的文本文件的每一行,我們要檢查文件名的存在。 我們要進行檢查,如果該文件不存在。
電話號碼:\ HTML \%%F,這是我們正在尋找的文件。 注意我們如何使用“%F”變量上面的解釋。 也注意到了,我們必須使用“%”裡面的批處理文件。 因此,在上述第一個例子中,我們將檢查的p:\ HTML \ file1.htm和第二個例子中,我們將檢查的p:\ HTML \ subdir1 \ file2.htm。 這是使用“*”令牌中的優勢真正體現。 不管有許多子目錄,該文件位於深,所有的斜線將包括在內。 如果我們指定了確切的標記,那麼它會得到很多複雜的嵌套子目錄。
德爾E:\ HTML \%%F說,刪除了備份服務器的文件,如果它不存在,在生產服務器上。 再次,“%f”的工作方式相同 - 正在使用的變量。

對於第一階段的最後一步,我們刪除臨時文件,現在,它已被處理:

DEL E:\ Filelist.txt中

下一階段採用相同的三個步驟,但它應用到子目錄。 我只列出了三個報表和突出不同的報表(藍色):

DIR E:\ HTML \ * /:D / B / O:N / S的>> E:\ Filelist.txt中
/ F“的令牌= 2 * delims = \”%%E(E:\ Filelist.txt中)如果不存在P級:\ HTML \%f RMDIR E:\ HTML \%%F
DEL E:\ Filelist.txt中

通過這一次,我們做的唯一的子目錄(/ d)的文本文件列表。 如果該目錄不存在,在生產服務器上,然後取出從備份服務器上的目錄。

最後,複製後的文件已被刪除的文件從備份服務器中刪除,該批處理文件的最後聲明將斷開映射的網絡驅動器:

淨使用p:/ DELETE

先前被指定驅動器號相同,必須使用/ DELETE語句說,斷開驅動器。

所以這是我們的批處理文件。 它允許備份服務器每天(或更經常的是,這取決於如何,往往你通過一個程序運行的批處理文件)有重複生產用於災難恢復目的的HTML目錄。

2201觀眾觀看了7532次

  1. 2010年6月10日13:19 | #1

    了不起的工作! 這是應各地的網絡共享的信息類型。 沒有更高的定位這篇文章的搜索引擎上的恥辱!

  2. 詹姆斯ĞDespain
    2010年12月25日,05:07 | #2

    我真的很喜歡您的文章。 希望這篇文章,將幫助其他人。 遺憾的簡短評論。

  1. 還沒有引用通告。