होम > डोमिनोज़ सर्वर , लोटस नोट्स ट्यूटोरियल , LotusScript > लोटस नोट्स Windows निर्देशिका बैकअप

लोटस नोट्स Windows निर्देशिका बैकअप है

यहाँ तोड़कर संसद में, हम एक बैकअप मशीन के लिए हमारे ग्राहक की सभी HTML फ़ाइलों की दैनिक बैकअप करते हैं. बैकअप एक Windows बैच फ़ाइल के माध्यम से किया गया था xcopy आदेश का उपयोग करने के लिए कि संशोधित किया गया था सभी फ़ाइलों की प्रतिलिपि. हम बहुत सोचा बिना एक लंबे समय के लिए किया गया है कर रहे हैं.

हाल ही में, हम निर्देशिका पर एक नज़र लिया और देखा कि वहाँ बैकअप उपनिर्देशिका में अतिरिक्त फ़ाइलों कि मुख्य निर्देशिका में मौजूद नहीं था. कुछ शोध के बाद, हम निर्धारित किया है कि मुख्य निर्देशिका में फ़ाइलें नष्ट कर दिया गया और subdirectory में नष्ट कर दिया कभी नहीं. एक छोटे से अनुसंधान के बाद, हम के लिए बाहर आंकड़ा कैसे एक सच्चे केवल Windows बैच फ़ाइलों का उपयोग कर बैकअप प्राप्त करने के लिए सक्षम थे.


इन सभी बयानों को एक विंडोज़ बैच फ़ाइल (. एक्सटेंशन बल्ले) है कि Windows अनुसूचक (आप भी विंडोज इस्तेमाल कर सकते हैं "" कमांड कार्य अनुसूची, लेकिन अनुसूचक अनुसूचित कार्यों के लिए एक ग्राफिकल इंटरफ़ेस प्रदान करता है) के माध्यम से निर्धारित है में जाना होगा. कार्यक्रम बैकअप सर्वर पर निर्धारित है.

पहले बयान एक नेटवर्क ड्राइव मानचित्रण द्वारा उत्पादन सर्वर को जोड़ता है.

नेट का प्रयोग पी: \ \ production_server \ data_share_name my_password /: उपयोगकर्ता प्रशासक / लगातार: नहीं

पी: ड्राइव पत्र है कि बैकअप सर्वर (बैच फ़ाइल कहाँ चल रहा हो) पर इस्तेमाल किया जाएगा इंगित करता है.
production_server उत्पादन सर्वर के मेजबान के नाम (एक आईपी पता इस्तेमाल किया जा सकता है) है.
data_share_name उत्पादन सर्वर पर डेटा निर्देशिका (जहां ग्राहक HTML फ़ाइलों को संग्रहित कर रहे हैं) के शेयर का नाम है. यह साझा करने के लिए नाम दिया है - आप डिफ़ॉल्ट शेयर ($ सी, आदि) है कि विंडोज के साथ आने का उपयोग नहीं करना चाहिए. इसके बजाय, अपनी खुद की हिस्सेदारी को परिभाषित करने और उपयोगकर्ताओं है कि है कि शेयर का उपयोग कर सकते हैं निर्दिष्ट.
my_password उपयोगकर्ता के लिए आवश्यक अंदर बहुत महत्वपूर्ण लॉग इन पासवर्ड - पासवर्ड बैच फ़ाइल में सूचीबद्ध है. यह हो सकता है या अपने परिवेश के लिए एक सुरक्षा मुद्दा नहीं हो सकता है.
/ उपयोगकर्ता: व्यवस्थापक उपयोगकर्ता नाम है कि शेयर तक पहुँचने होगा. यह एक आईडी होना चाहिए कि का उपयोग उत्पादन सर्वर पर HTML निर्देशिका में पढ़ा है. वास्तव में "प्रशासक" नाम के लिए कोई ज़रूरत नहीं है - वास्तव में, मैं कहूँगा कि आप इस प्रक्रिया के लिए व्यवस्थापक उपयोगकर्ता नाम का उपयोग नहीं (खासकर के बाद से पासवर्ड सादे दृष्टि में बैच फ़ाइल को देख किसी को है) . यदि आप एक आईडी है कि केवल पढ़ने के लिए HTML निर्देशिका करने के लिए उपयोग किया है का उपयोग करते हैं, तो वहाँ एक मुद्दे के रूप में ज्यादा नहीं है.
लगातार /: नहीं इंगित करता है कि प्रवेश पर ड्राइव reconnected स्वचालित रूप से नहीं होना चाहिए. इस ड्राइव केवल करने के लिए बैच फ़ाइल की अवधि के दौरान इस्तेमाल किया जा रहा है.

बाद ड्राइव मैप किया गया है, अगले कदम के लिए उत्पादन HTML बैकअप एचटीएमएल निर्देशिका निर्देशिका से सभी फ़ाइलों की प्रतिलिपि है.

Xcopy पी: \ html \ *.* ई: html \ \ / *.* ई / डी / सी क्यू / / Y

पी: html \ \ *.* स्रोत निर्देशिका (मैप ड्राइव पर निर्देशिका) है. हम सभी फाइल कॉपी जाएगा.
ई: \ html \ *.* गंतव्य निर्देशिका है.
/ ई इंगित करता है कि हम निर्देशिका और उपनिर्देशिकाओं को कॉपी किया जाएगा खाली उपनिर्देशिका सहित.
डी / एक निश्चित तारीख के बाद फ़ाइलों की प्रतिलिपि कहते हैं. चूंकि कोई वास्तविक तिथि निर्दिष्ट है, तो यह फाइलें जहां गंतव्य तारीख स्रोत तारीख से पुराना है प्रतियां. यह है कि वास्तव में क्या हम एक बैकअप के लिए चाहते हैं - केवल कि उत्पादन सर्वर पर संशोधित किया गया है फ़ाइलों की प्रतिलिपि.
सी / नकल भले ही त्रुटि होती जारी रखने के लिए कहते हैं.
क्यू / "शांत" मोड इंगित करता है - नकल के दौरान फ़ाइल नाम नहीं दिखाया जाएगा. बैच फ़ाइल के बाद से एक Windows शेड्यूल्ड कार्य के रूप में चल रहा है, वहाँ कोई फ़ाइल नामों को दिखाने की जरूरत है.
वाई / प्रतिलिपि बताता है करने के लिए संकेत है जब फ़ाइलें अधिलेखित नहीं किया जा रहा है.

अब मुश्किल हिस्सा आता है. हम फ़ाइलें और बैकअप सर्वर से निर्देशिका हैं कि अब उत्पादन सर्वर पर कोई हटा की जरूरत है. फाइलें पहली निर्देशिका और दूसरा यह दो चरणों में किया जाता है. प्रत्येक चरण में तीन चरणों:

dir ई: \ html \ *.* / एक: डी / बी / ओ: N / एस>> ई: \ filelist.txt

यह पहला कदम है. बैकअप एचटीएमएल निर्देशिका में सभी फ़ाइलों की एक निर्देशिका लिस्टिंग बनाओ.
/ एक: डी का कहना है कि निर्देशिकाओं को शामिल किया जाना नहीं कर रहे हैं. तो हम केवल फ़ाइलों सहित रहे हैं.
बी / केवल फ़ाइल नाम (बजाय एक नियमित निर्देशिका लिस्टिंग है कि फ़ाइल आकार और अन्य सामान की बहुत से पता चलता है) को सूची बद्ध करता है.
/ हे: एन प्रकार वर्णमाला क्रम में फ़ाइल नाम.
/ एस traverses उपनिर्देशिका.
>> E: \ filelist.txt एक ई नामक एक फाइल करने के लिए उत्पादन पुनर्निर्देश: \ filelist.txt.

यहाँ पहले चरण का दूसरा कदम है:

/ एफ के लिए "टोकन = 2 * delims = \"% में ई (ई: \ filelist.txt) पी अगर मौजूद नहीं: \ html \% च डेल ई: \ html \%% च

यह कथन सभी अभी बनाई गई फ़ाइल में सूचीबद्ध प्रविष्टियों के माध्यम से चला जाता है. यह पता चल गया है अगर फ़ाइल उत्पादन सर्वर पर मौजूद है. यदि फ़ाइल उत्पादन सर्वर पर मौजूद नहीं है, यह बैकअप सर्वर से हटा दिया जाता है.
/ एफ के लिए बैच प्रोग्रामिंग में पाशन बयान के एक विशेष प्रकार है. यह एक पाठ फ़ाइल में सभी लाइनें (कोष्ठकों में फ़ाइल नाम) के माध्यम से जाना जाएगा.
= 2 टोकन * निर्दिष्ट करता है जो टोकन (एक "टोकन" और बाद में विस्तार में समझाया जाएगा) पाठ फ़ाइल से पढ़ा जाएगा. 2 2 टोकन पढ़ने कहते हैं, और * 2 टोकन के बाद सब कुछ ले कहते हैं. उन 2 मान (2 और 2 टोकन के बाद सब कुछ टोकन) चर में रखा जाएगा.
delims = \ टोकन को परिभाषित करने के लिए परिसीमक निर्दिष्ट करता है. निर्देशिका से प्रविष्टियों ई की तरह कुछ होगा: \ html \ file1.htm या ई: \ html subdir1 \ \ file2.htm. "\" चरित्र स्ट्रिंग टोकन में अलग करने के लिए प्रयोग किया जाता है. तो 1 टोकन ई जाएगा: 2 टोकन html हो और सब कुछ 2 टोकन के बाद पहला और दूसरा उदाहरण में, उदाहरण के subdir1 \ file2.htm में file1.htm जाएगा. सूचना कैसे 2 उदाहरण में "\" है, जो पहले एक सीमांकक था अब स्ट्रिंग का हिस्सा है. वह क्योंकि * टोकन बयान में इस्तेमाल किया गया था.
% ई चर नाम निर्दिष्ट करता है. दो% संकेत क्योंकि यह एक बैच फ़ाइल के अंदर किया जाता है. यदि आप यह परीक्षण किया गया एक कमांड प्रॉम्प्ट विंडो में बाहर, तो आप केवल एक% पर हस्ताक्षर का उपयोग करना चाहिए. पहली% हस्ताक्षर "पलायन" वर्ण (जैसे नोट्स सूत्र भाषा में "\") है. चर जिस तरह से काम, इस पत्र के पहले चर ("टोकन =" का पहला भाग) निर्दिष्ट करता है और हर दूसरे चर sequentially नाम दिया जाएगा. तो 2 टोकन "% ई" चर और सब कुछ में जाने के बाद 2 टोकन "% च" नामक चर में जाना होगा.
(ई: \ filelist.txt / एफ के बयान के लिए) इन द्वारा करना आवश्यक है. फ़ाइलनाम कोष्ठकों के अंदर है.
पाठ फ़ाइल की प्रत्येक पंक्ति के लिए अगर मौजूद नहीं है, हम एक फ़ाइल नाम के अस्तित्व की जाँच करने के लिए जा रहे हैं. हम करने के लिए देखने के लिए यदि फ़ाइल मौजूद नहीं है की जाँच करना चाहते हैं.
पी: \ html \% च इस फ़ाइल के लिए हम देख रहे हैं. नोट: हम कैसे उपयोग कर रहे हैं "% च" चर ऊपर समझाया. यह भी ध्यान दें कि हम फिर से करने के लिए बैच फ़ाइल के अंदर "%" का उपयोग किया है. तो पहले ऊपर के उदाहरण में, हम पी के लिए जाँच हो जाएगा: \ html \ file1.htm और दूसरा उदाहरण में, हम पी के लिए जाँच हो जाएगा: \ html \ subdir1 \ file2.htm. यह वह जगह है जहां टोकन में "*" का उपयोग करने का लाभ वास्तव में पता चलता है. कोई फर्क नहीं पड़ता कि कितने उपनिर्देशिका गहरी फ़ाइल स्थित है, सभी स्लैश शामिल किया जाएगा. यदि हम सटीक टोकन निर्दिष्ट है, तो यह एक बहुत अधिक नेस्टेड उपनिर्देशिका के साथ जटिल हो जाएगा.
डेल ई: \ html \% च बैकअप सर्वर से फ़ाइल को नष्ट अगर यह उत्पादन सर्वर पर मौजूद नहीं है कहते हैं. फिर, "% च" उसी तरह काम करता है - चर का उपयोग किया जा रहा है.

पहले चरण के अंतिम चरण के लिए, हम अब अस्थायी फ़ाइल हटा कि यह संसाधित किया गया है:

डेल ई: \ filelist.txt

अगले चरण में ही तीन कदम उठा लेता है, लेकिन यह उपनिर्देशिका के लिए लागू होता है. मैं सिर्फ तीन बयान सूची करेंगे और (नीले में) बयान है कि अलग अलग हैं पर प्रकाश डाला:

dir ई: \ html \ / *.* एक: डी / बी / हे: N / एस>> ई: \ filelist.txt
/ एफ के लिए "टोकन = 2 * delims = \"% में ई (ई: \ filelist.txt) करते हैं अगर पी मौजूद नहीं: \ html \% च rmdir ई: \ html \%% च
डेल ई: \ filelist.txt

इस के माध्यम से समय, हम केवल उपनिर्देशिका (डी / ए) का एक पाठ फ़ाइल लिस्टिंग बनाते हैं. यदि उत्पादन सर्वर पर निर्देशिका मौजूद नहीं है, तो बैकअप सर्वर से निर्देशिका हटा दें.

अंत में, फ़ाइलों की प्रतिलिपि के बाद किया गया है और नष्ट कर दिया फ़ाइलों को बैकअप सर्वर से हटा दिया, बैच फ़ाइल के पिछले बयान मैप्ड नेटवर्क ड्राइव काट जाएगा:

नेट का प्रयोग p: / DELETE

वही ड्राइव पत्र है जो पहले निर्दिष्ट किया गया था और इस्तेमाल किया जाना चाहिए / DELETE बयान ड्राइव डिस्कनेक्ट करने के लिए कहते हैं.

तो है कि हमारे बैच फ़ाइल है. यह दैनिक बैकअप सर्वर (या अधिक बार, कितनी बार आप एक कार्यक्रम के माध्यम से बैच फ़ाइल को चलाने पर निर्भर करता है) की अनुमति देता है आपदा वसूली प्रयोजनों के लिए उत्पादन HTML निर्देशिका का एक डुप्लिकेट है.

2162 दर्शकों द्वारा 7402 बार देखी गयी

  1. 10 जून, 2010 13:19 पर | # 1

    बहुत खूब काम! इस प्रकार की जानकारी है कि वेब के आसपास साझा किया जाना चाहिए है. स्थिति उच्च नहीं इस पोस्ट के लिए खोज इंजन पर शर्म आनी चाहिए!

  2. जेम्स जी Despain
    25 दिसंबर, 2010 05:07 पर | # 2

    मैं वास्तव में अपनी पोस्ट प्यार करता हूँ. उम्मीद है कि इस blogpost अन्य लोगों की मदद करेंगे. संक्षिप्त समीक्षा के लिए माफ करना.

  1. अभी तक कोई trackbacks.
आवश्यकता