Thursday, June 2, 2011

Copy ကူးတာကိုလည္း တစ္ခါတေလ backup လုပ္တယ္လို႕ေခၚတယ္

တစ္ခ်ိဳ႕ေတြေပါ့၊ လိုခ်င္ေတာ့ ၾကီးၾကီးက်ယ္က်ယ္ ။ Daily full backup ၊ one month cycle တဲ့။ Backup software ေတာ့မဝယ္ခ်င္ဘူး ၊ ဘယ္လိုပဲရရတဲ့ backup ျဖစ္ရင္ျပီးေရာတဲ့။ File ေတြမွားမွားဖ်က္ၾက overwrite ေတြ မွားမွားလုပ္ၾကလြန္းလို႕တဲ့။ ဒီလိုလား ၊ ရပါတယ္။ xcopy နဲ႕ပဲ လုပ္လို႕ရပါတယ္။ အဲဒါနဲ႕ပဲ ဒီေန႕ သုံးေၾကာင္း bat script ေလးတစ္ခုေရးျဖစ္တယ္။ အမွန္က ဘယ္မွာေတြ့ဖူးမွန္းမသိတာတစ္ခုကို မွီညမ္းျပီး ဟိုးအရင္တစ္ခါက ေရးထားတာပါ။ နည္းနည္းေလးပဲျပင္လိုက္ရတယ္။

@Echo off
rd /s /q E:\$Recycle.bin
xcopy D:\Company\* E:\Serverbackp\Company\%date:~4,2%\* /Y /Q /S


ဒုတိယ တစ္ေၾကာင္းက ပံုမွန္ဆိုမလိုပါဘူး။ ဒီ user ေတြက ဘာေတြလုပ္မွန္းမသိ မၾကာမၾကာ recycle bin corrupted error ျဖစ္တယ္။ ဘာလို႕ျဖစ္လည္း သူတို႕ဘာလုပ္လည္းဆိုတာ သူတို႕ကိုတိုင္လည္းမသိဘူး။ Recycle bin ကအေရးမၾကီးဘူး၊ ရတယ္တဲ့။ ဟုတ္တယ္ေလ မွားဖ်က္မိလို႕ ျပန္လိုခ်င္ရင္ backup ေတြရွိေနမွာပဲ။ အဲဒါနဲ႕ က်ေနာ့ script ထဲမွာ အဲ quickfix ေလးထဲ့ေရးလိုက္တာ။

ပထမလိုင္းကေတာ့ အလကား output ေတြေပၚေပၚလာရင္ မ်က္စိေနာက္လို႕ echo off လိုက္တာ ။ Bat ေရးဖူးတဲ့သူတိုင္း သိပါတယ္။
ဒုတစ္ယလိုင္းကေတာ့ recycle bin error ကို quickfix အေနနဲ႕ Empty recycle bin လုပ္လိုက္တာ။ အမွန္က Recycle.Bin directory ကို ဖ်က္လိုက္တာပါ။ ဒါေပမယ့္ တစ္ခုခု delete လုပ္ရင္ျဖစ္ျဖစ္၊ logout / login လုပ္ရင္ျဖစ္ျဖစ္ recycle.bin folder က ျပန္ create ျဖစ္ပါတယ္။ အဲေတာ့ ဒါ command line က empty recycle bin လုပ္လိုက္တာပဲလို႕ သေဘာထားပါတယ္။ :D

ေနာက္ဆုံးလိုင္းကေတာ့ Windows ရဲ့ အသုံးတည့္ command ေလးတစ္ခုျဖစ္တဲ့ xcopy နဲ႕ files ေတြကို ကူးဖို႕ပါ။ ဒီမွာ ျပသနာ နည္းနည္းရွိပါတယ္။ က်ေနာ္တို႕က one month cycle လိုခ်င္တာပါ။ ဆိုလိုတာက ေန႕စဥ္ overwrite မလုပ္ခ်င္ပါဘူး။ ေန႕စဥ္ new backup set ထားသြားျပီး တစ္လၾကာမွ ပထမေန႕က backup set ကို overwrite ခ်င္တာပါ။ အဲဒါေၾကာင့္ ေနာက္က destination မွာ %date~:4,2% ဆိုတာေလးပါေနတာပါ။ Windows မွာ %date% environmental variable က system date ကို ကိုယ္စားျပဳပါတယ္။ %date% ကမွ ေလးလုံးေျမာက္ကေန ငါးလုံးေျမာက္အထိ ( ႏွစ္လုံးထဲ) လိုခ်င္လို႕ %date~:4,2% လို႕ေရးတာပါ။ ကိုယ္ယူထားတယ့္ date / time format ေပၚမွာ မူတည္ပါလိမ့္မယ္။ mm-dd-yyyy ဆိုရင္ေတာ့ 7,2 လို႕ယူရပါလိမ့္မယ္။ အေနာက္က /Y ကေတာ့ overwrite ဖို႕ yes / no prompt ေတြမွာ အကုန္ yes လို႕သတ္မွတ္ျပီး overwrite သြားဖို႕၊ /Q ကေတာ့ process output မျပဖို႕နဲ႕ ၊ /S ကေတာ့ subdirectories ေတြပါ ကူးဖို႕ ထဲ့ထားတာပါ။

Diskspace ပိုးဆိုးပက္စက္တက္တာကလြဲရင္ သူတို႕လိုခ်င္သလိုျဖစ္ပါတယ္။ Diskspace ကေတာ့ အမွန္ဆို compress ေလးေလာက္လုပ္သင့္တာေပါ့ေနာ္။ ဒါေပမယ့္ user က ဒီတိုင္းက သူတို႕အတြက္ ပိုေကာင္းတယ္၊ ဘာမွမလုပ္ရပဲ backup file ေတြကို ျမင္ရတာ ပိုသေဘာက်တယ္ဆိုလို႕ ျဖစ္သလိုပဲ လုပ္ေပးလိုက္ပါတယ္။ အမွန္က backup လုပ္တာလို႕ ေျပာဖို႕ေတာင္ ခက္ပါတယ္၊ တစ္ျခားတစ္ေနရာရာကို copy ကူးထားလိုက္တာပါပဲ။ ကိုယ့္ဟာကို compression လုပ္ခ်င္ရင္ေတာ့ winrar command line tools ေလးနဲ႕ လုပ္လို႕ရပါတယ္။

Divinity

3 comments:

Zero Divided by Zero is Zero (Brahmagupta Rule) said...

recycle ပါ ကူးထားေပးလုိက္တာမဟုတ္ဘူး။ သူတုိ႕ပိုေပ်ာ္သြားေအာင္။ ငါထင္တာကေတာ႔ အခု diskspace က ေစ်းေပါလာျပီး data ကပိုေစ်းၾကီးလာလုိ႕ျဖစ္မယ္။

%date~:4,2% ဆိုတာ သိပ္မရွင္းဘူး။
အဲဒါဆို တစ္လၾကာမွကူးမွာလား၊ တစ္လၾကာမွ overwrite လုပ္မွာလား။ စမ္းၾကည္႕လုိက္ဦးမယ္။

Java နဲ႕ေတာ႔ archiving လုပ္တာေတြေရးဖူးတယ္။ Spring Batch မွာဆိုရင္ေတာ႔ configure လုပ္လုိက္ရံုပဲ။ အဲဒီ xcopy ကို deployment လုပ္ရင္သံုးတယ္။ exploded files ေတြအားလံုးကို web app ထဲထည္႕ခ်င္ရင္အဆင္ေျပတယ္။

Windows မွာဆိုရင္ service မွာ run တဲ႔ scheduler နဲ႕ခ်ိတ္လိုက္လည္း ေတာ္ေတာ္ေလးကို အသံုး၀င္သြားမယ္။

Divinity said...

ျပန္ေရာက္ျပီလားဗ်
windows မွာပဲ %date% ဆိုျပီး command line မွာ႐ိုက္ၾကည့္။ %date~:4,2% ကို႐ိုက္ၾကည့္။ %date% ရဲ့ output က လိုခ်င္တယ့္ စာလုံးကိုပဲ ျပန္ဖ်က္ယူလိုက္တာ။
Backup က ျပန္ျပန္ overwrite မသြားေစခ်င္လို႕ destination directory ကို 01 ၊ 02 ၊ 03 .... 30 ဆိုျပီး ေန႕အလိုက္ျဖစ္သြားေအာင္ ေပးထားတာ။ တစ္ခုေတာ့ရွိတာေပါ့၊ သုံးဆယ့္တစ္ရက္ ရွိတယ့္လဆို 31 အထိ folder create သြားမွာေပါ့။ 1st May တုန္းက လုပ္ခဲ့တယ့္ backup က 01 ဆိုတယ့္ folder ထဲေရာက္ျပီး ေနာက္ 1st June ၾကမွ အဲ folder က overwrite လုပ္ခံရမယ္ေလ ။
ဟုတ္တယ္ Scheduler နဲ႕ Daily လုပ္ရတာ၊ အဲဒါ ထဲ့ေရးဖို႕ ေမ့သြားတာ ဟဲဟဲ

Zero Divided by Zero is Zero (Brahmagupta Rule) said...

အင္း ... အဲဒါဆိုရွင္းျပီ။

တကယ္လို႕ မီးပ်က္လို႕ျဖစ္ျဖစ္၊ server resart က်သြားလုိ႕ျဖစ္ျဖစ္၊ တစ္ျခား အက္ဒမင္ႏွစ္ေယာက္သံုးေယာက္ရိွလုိ႕ restart ဘယ္သူလုပ္လုိက္မွန္းမသိရင္ျဖစ္ျဖစ္၊ scheduler က ဆက္ျပီး run ေအာင္လုပ္ထားတာလား။

window scheduler ကိုေတာ႔ သိပ္မေမွ်ာ္လင္႔ဘူး။ robinson datamining မွာတုန္းက Scheduler မ run လုိ႕ လူက ထထ run ရတယ္ေလ။ အဲဒီတုန္းကေတာ႔ ေနာက္ဆံုး service မွာ ခ်ိတ္တာတစ္ခု လုပ္ၾကတယ္။

restart က်သြားလည္း service ကေန auto start ျဖစ္တယ္။ Edwin ေပးတာပဲ။ အဲတုန္းက ငါက သူေပးတာေလး configure လုပ္ျပီး run ခ်င္တဲ႔ batch job ကိုပဲျပန္ခ်ိတ္ေပးလိုက္တယ္။

June 3, 2011 2:19 AM