এই নিবন্ধে, আমরা দেখব কীভাবে উইন্ডোজ সার্ভারে ওয়েবসাইট, অ্যাপ্লিকেশন পুল, এবং IIS ওয়েব সার্ভার কনফিগারেশন ব্যাকআপ করা যায়। আপনি ইন্টারনেট ইনফরমেশন সার্ভিসেস ব্যাকআপ ব্যবহার করে হোস্ট সার্ভার ফেলিউর হলে একটি ওয়েবসাইট রিস্টোর করতে পারেন, বা যদি আপনি একটি ওয়েবসাইট (এবং/অথবা IIS কনফিগারেশন) অন্য সার্ভারে মাইগ্রেট/মুভ করতে চান।
উইন্ডোজ সার্ভারে IIS ব্যাকআপ করা
ইন্টারনেট ইনফরমেশন সার্ভিসেস ওয়েব সার্ভারে চলমান সাইটের ডেটা এবং কনফিগারেশন ব্যাকআপ করা দারুণ ধাপগুলো থেকে গঠিত:
- IIS ওয়েবসাইট ফাইল ব্যাকআপ করুন (ডিফল্টভাবে, IIS সাইট ফাইলগুলো
%SystemDrive%\inetpub\wwwroot-এ সংরক্ষিত থাকে)। এই ফোল্ডারটি ব্যাকআপ প্ল্যানে অন্তর্ভুক্ত করা উচিত। আপনার ব্যাকআপ টুল ব্যবহার করে সব ফাইল কপি করা যথেষ্ট (আপনি বিল্ট-ইন Windows Server Backup ব্যবহার করতে পারেন → 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 (Personal Information Exchange) ফরম্যাটে ব্যাকআপ করতে পারেন: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

এই ডিরেক্টরিটি ব্যাকআপ স্টোরেজ ডিভাইসে কপি করা বাকি।
উইন্ডোজ সার্ভার ২০১৯/২০১৬-এ, আপনি appcmd-এর বদলে বিল্ট-ইন পাওয়ারশেল কমান্ডলেট ব্যবহার করে IIS ব্যাকআপ করতে পারেন:
Backup-WebConfiguration -Name MyBackup202203
এই কমান্ডলেটও বর্তমান 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
"Restored configuration from backup 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 ৭+ তে আসে: IIS Manager-এর মাধ্যমে ApplicationHost.config-এ করা পরিবর্তনগুলো ট্র্যাক করা হয়, ১০টি লেটেস্ট ব্যাকআপ সংরক্ষিত থাকে, এবং ফাইলটি প্রতি ২ মিনিটে পরিবর্তনের জন্য চেক করা হয়।
পূর্বের ব্যাকআপ ডিলিট করতে কমান্ড রান করুন:
appcmd.exe delete backup BackupName
- উভয় সার্ভারে একই IIS সংস্করণ ব্যবহার করতে হবে। আপনি রেজিস্ট্রি ব্যবহার করে আপনার IIS সংস্করণ চেক করতে পারেন পাওয়ারশেল দিয়ে:
get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring,versionstringআমার কেসে, এটি IIS 10.0
- যদি IIS অ্যাপ্লিকেশন পুল বিল্ট-ইন অ্যাকাউন্ট থেকে না চালানো হয়, তবে সেগুলো টার্গেট IIS হোস্টে উপলব্ধ থাকতে হবে।
- IIS রিস্টোর করার আগে, আপনি যে SSL সার্টিফিকেটগুলো ব্যবহার করেন সেগুলো নতুন সার্ভারে ইম্পোর্ট করতে হবে।
আপনি msdeploy প্যাকেজ (Web Deployment Tool) ব্যবহার করেও আপনার IIS ওয়েব সার্ভার ব্যাকআপ করতে পারেন। আপনার IIS হোস্টে এবং টার্গেট ব্যাকআপ হোস্টে msdeploy প্যাকেজ ডাউনলোড এবং ইনস্টল করুন (https://www.microsoft.com/en-us/download/details.aspx?id=43717)।
একটি IIS ব্যাকআপ তৈরি করতে (সব সাইটসহ যদি একাধিক সাইট IIS-এ চলমান থাকে) রিমোট উইন্ডোজ হোস্ট 192.168.100.112-এ webdeploy ব্যবহার করে, নিচের কমান্ড ব্যবহার করা যেতে পারে:
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