इस लेख में, हम देखेंगे कि विंडोज सर्वर पर वेबसाइट्स, एप्लिकेशन पूल, और IIS वेब सर्वर कॉन्फ़िगरेशन का बैकअप कैसे लें। आप होस्ट सर्वर विफलता की स्थिति में वेबसाइट को पुनर्स्थापित करने के लिए, या यदि आप किसी वेबसाइट (और/या IIS कॉन्फ़िगरेशन) को दूसरे सर्वर पर माइग्रेट/स्थानांतरित करते हैं, तो इंटरनेट इन्फॉर्मेशन सर्विसेज बैकअप का उपयोग कर सकते हैं।
विंडोज सर्वर पर IIS का बैकअप लेना
इंटरनेट इन्फॉर्मेशन सर्विस वेब सर्वर पर चल रही साइट्स के डेटा और कॉन्फ़िगरेशन का बैकअप लेने में कई चरण शामिल हैं:
- IIS वेबसाइट फ़ाइलों का बैकअप लें (डिफ़ॉल्ट रूप से, IIS साइट फ़ाइलें
%SystemDrive%\inetpub\wwwrootमें संग्रहीत होती हैं)। इस फ़ोल्डर को बैकअप योजना में शामिल किया जाना चाहिए। अपने बैकअप टूल का उपयोग करके सभी फ़ाइलों को कॉपी करना पर्याप्त है (आप बिल्ट-इन विंडोज सर्वर बैकअप -> inetpub निर्देशिका को बैकअप के लिए चुनें का उपयोग भी कर सकते हैं), या सरल BAT/पावरशेल स्क्रिप्ट्स। उदाहरण के लिए, WSB इंस्टॉल करने और inetpub\wwwroot निर्देशिका को शेयर्ड फ़ोल्डर में बैकअप करने के लिए, निम्न कमांड्स का उपयोग करें:# पावरशेल का उपयोग करके विंडोज सर्वर फीचर इंस्टॉल करें;
Install-WindowsFeature -Name Windows-Server-Backup
# IIS वेबसाइट स्टेटिक फ़ाइलों का बैकअप लें
wbadmin start backup –backupTarget:\\srv-backup1\backup -include:c:\inetpub\wwwroot -vsscopy - वर्तमान IIS सर्टिफिकेट्स का बैकअप लें (एक्सपोर्ट करें) (आप इस कमांड का उपयोग करके सर्वर पर SSL सर्टिफिकेट्स की सूची प्राप्त कर सकते हैं:
netsh http show sslcert) आप पावरशेल का उपयोग करके सर्टिफिकेट्स का PFX (पर्सनल इन्फॉर्मेशन एक्सचेंज) फॉर्मेट में शेयर्ड नेटवर्क फ़ोल्डर में बैकअप ले सकते हैं:dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | Foreach-Object { [system.IO.file]::WriteAllBytes("\\srv-backup1\backup\$($_.Subject).pfx",($_.Export('PFX', 'secret')) ) } - IIS कॉन्फ़िगरेशन (सेटिंग्स) का बैकअप लें।
आप बिल्ट-इन appcmd टूल का उपयोग करके IIS कॉन्फ़िगरेशन का बैकअप ले सकते हैं। एडमिनिस्ट्रेटर के रूप में कमांड प्रॉम्प्ट खोलें और निर्देशिका बदलें:
cd c:\Windows\system32\inetsrv
आइए IIS कॉन्फ़िगरेशन का बैकअप लें:
appcmd add backup srv1-iis-backup-2022_03_10
BACKUP object srv1-iis-backup-2022_03_10 added
Appcmd आपके बैकअप के नाम से c:\Windows\system32\inetsrv\backup निर्देशिका में एक फ़ोल्डर बनाता है। इसमें निम्न फ़ाइलें होती हैं:
- administration.config
- applicationHost.config
- MBSchema.xml
- MetaBase.xml
- redirection.config
इस निर्देशिका को बैकअप स्टोरेज डिवाइस पर कॉपी करना बाकी है।
विंडोज सर्वर 2019/2016 पर, आप appcmd के बजाय IIS का बैकअप लेने के लिए बिल्ट-इन पावरशेल cmdlet का उपयोग कर सकते हैं:
Backup-WebConfiguration -Name MyBackup202203
यह cmdlet वर्तमान IIS सेटिंग्स को $env:Windir\System32\inetsrv\backup में भी एक्सपोर्ट करता है।
IIS कॉन्फ़िगरेशन को अलग विंडोज सर्वर होस्ट पर पुनर्स्थापित करना
आप अपने IIS कॉन्फ़िगरेशन को बैकअप से उसी सर्वर पर या अलग होस्ट पर पुनर्स्थापित कर सकते हैं। मान लीजिए आपको अलग विंडोज सर्वर होस्ट पर IIS कॉन्फ़िगरेशन पुनर्स्थापित करने की आवश्यकता है।
IIS बैकअप निर्देशिका को लक्ष्य सर्वर पर उसी फ़ोल्डर (c:\windows\system32\backup) में कॉपी करें।
सभी उपलब्ध IIS कॉन्फ़िगरेशन बैकअप्स की सूची प्रदर्शित करने के लिए, कमांड चलाएं:
appcmd list backup
कॉपी किया गया बैकअप उपलब्ध बैकअप्स की सूची में दिखाई देना चाहिए। बैकअप से IIS कॉन्फ़िगरेशन पुनर्स्थापित करें:
appcmd restore backup /stop:true srv1-iis-backup-2022_03_10
"बैकअप srv1-iis-backup-2022_03_10 से कॉन्फ़िगरेशन पुनर्स्थापित" का अर्थ है कि IIS कॉन्फ़िगरेशन सफलतापूर्वक पुनर्स्थापित हो गया है।
/stop:true विकल्प पुनर्स्थापित करने से पहले IIS को रोकने के लिए मजबूर करता है।
Restore-WebConfiguration -Name srv1-iis-backup-2022_03_10
BACKUP “CFGHISTORY_0000000001” जैसी एंट्रीज होती हैं। ये IIS कॉन्फ़िगरेशन बैकअप्स हैं जो स्वचालित रूप से बनाए गए हैं और \inetpub\history निर्देशिका में स्थित हैं। स्वचालित बैकअप फीचर IIS 7+ में आया: IIS मैनेजर के माध्यम से ApplicationHost.config में किए गए परिवर्तनों को ट्रैक किया जाता है, 10 नवीनतम बैकअप्स संग्रहीत होते हैं, और फ़ाइल की जांच हर 2 मिनट में की जाती है।
पिछले बैकअप को हटाने के लिए, कमांड चलाएं:
appcmd.exe delete backup BackupName
- दोनों सर्वर्स पर समान IIS संस्करण का उपयोग किया जाना चाहिए। आप पावरशेल का उपयोग करके रजिस्ट्री में अपने IIS संस्करण की जांच कर सकते हैं:
get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring,versionstringमेरे मामले में, यह IIS 10.0 है। - यदि IIS एप्लिकेशन पूल बिल्ट-इन खातों से नहीं चलते हैं, तो वे लक्ष्य IIS होस्ट पर उपलब्ध होने चाहिए।
- IIS पुनर्स्थापित करने से पहले, आपको अपने द्वारा उपयोग किए जाने वाले किसी भी SSL सर्टिफिकेट को नए सर्वर पर इम्पोर्ट करना होगा।
आप msdeploy पैकेज (वेब डिप्लॉयमेंट टूल) का उपयोग करके अपने IIS वेब सर्वर का बैकअप भी ले सकते हैं। अपने IIS होस्ट और लक्ष्य बैकअप होस्ट पर msdeploy पैकेज डाउनलोड और इंस्टॉल करें (https://www.microsoft.com/en-us/download/details.aspx?id=43717)।
वेबडिप्लॉय के माध्यम से रिमोट विंडोज होस्ट 192.168.100.112 पर IIS बैकअप बनाने के लिए (यदि IIS पर कई साइट्स चल रही हैं तो सभी साइट्स के साथ), निम्न कमांड का उपयोग किया जा सकता है:
msdeploy -verb:sync -source:webServer,computername=192.168.100.112 dest:package=c:\Backup\IIS\server1_iis_backup.zip
आप व्यक्तिगत IIS वेबसाइट का बैकअप भी ले सकते हैं:
msdeploy –verb:sync -source:contentPath="site_name.com",computername=192.168.100.112 -dest:package=c:\Backup\IIS\site_name.zip
या निर्दिष्ट निर्देशिका से केवल स्टेटिक वेबसाइट फ़ाइलें कॉपी करें:
msdeploy –verb:sync –source:dirPath="c:\inetpub\wwwroot\site_name",computername=192.168.100.112 -dest:package=c:\Backup\IIS\site_name_static_files.zip