Wednesday, November 21, 2018

Windows Script ဒုတိယပိုင္း........အပိုင္း(၂) -- CLI with some task

အပိုင္း(၁) ကိုဖတ္ျပီးသြားၾကျပီထင္ပါတယ္....အပိုင္း(၁) မွာက ကြ်န္ေတာ္က script ဆိုတာကိုမိတ္ဆက္ခဲ့ပါတယ္...script ဆိုတာ programmatic logic ေတြနဲ ့ပါ၀င္ဖဲြ ့စည္းထားေသာ instructional commands ေတြကို စနစ္တက်စုဖဲြ ့ထားျခင္း ဆိုတာကိုလည္း အပိုင္း(၁) ရဲ  ့script ကို ကိုယ္တိုင္ေရးတယ္...run ပါတယ္...ရလာတဲ့ရလဒ္ကို command prompt မွာျပတယ္




ဒုတိယပိုင္းအေနနဲ ့script ကိုဘာေၾကာင့္သံုးသင့္တယ္ဆိုတာေလးကိုနမူနာေလးနဲ ့ေလ့လာၾကစို ့ဗ်ာ...

ဟုိးအရင္ေခတ္ေတြတုန္းက windows 98 တို ့ကို installation လုပ္တဲ့အခ်ိန္မွာ command line နဲ ့ windows file system ေတြ( FAT 16 တို ့...FAT 32 တို ့) နဲ ့Format ရိုက္...partition ပိုင္းတာတို ့...( မွတ္မိေသးတယ္...သံုးခ်င္တဲ့ပမာဏကို MB unit နဲ ့သတ္မွတ္ရတာ..



ဆိုၾကပါစို ့ဗ်ာ.. 20 GB လိုခ်င္တယ္ဆိုရင္ 20000 MB ဆိုျပီးရိုက္ထည့္ရတယ္...အဲဒါေတြလုပ္ျပီးေတာ့မွ windows installer ( Floppy ျဖစ္ျဖစ္.. CD drive နဲ ့ပဲျဖစ္ျဖစ္..) ရိွတဲ့လမ္းေၾကာင္းကုိ၀င္ျပီး installer setup လုပ္ေပးရတယ္... fdisk.exe လို ့ေခၚပါတယ္ ( *CLI နဲ ့format ရိုက္...partition ပိုင္း....တာကိုေခၚတာပါ)

fdisk နဲ ့partition ပိုင္းတာ fat file system သတ္မွတ္တာ...windows 98 installation လုပ္တာကိုသင္ေပးတဲ့ senior ဆရာေတြကိုဂါရ၀ျပဳဦးညႊတ္လ်က္ပါ..

ေျပာခ်င္တာက cli နဲ ့partition ပိုင္းတာ file system ေဆာက္တာက linux မွာရယ္မွမဟုတ္ပါဘူး....windows xp တို ့windows 7 တို ့...windows server 2003 တို ့ရဲ  ့ေရွ ့မ်ိဳးဆက္ မွာကတည္းကရိွႏွင့္ျပီးသား...ရိွခဲ့ျပီးသား....administrator ေတြ အတြက္ easy manage ျဖစ္ေအာင္ GUI ေတြလုပ္ေပးခဲ့တယ္...ခုေနာက္ပိုငး္ CLI နဲ ့manage လုပ္ႏိုင္တဲ့ windows core server ေတြ....powershell script administration ေတြဟာ ခုမွ linux ကိုအတုယူျပီး မုိးက်ေရႊကိုယ္ထုတ္ထားတာမဟုတ္ဘူး..ဟုိးအရင္ windows old generation မွာရိွခဲ့သံုးခဲ့တဲ့ core ေတြကို upgrade လုပ္ထားျခင္းသာျဖစ္ပါတယ္ဆိုတာကို ခုေခတ္လူငယ္ေတြကိုသိေစ ခ်င္တာပါ

ကဲ...ထားေတာ့ဗ်ာ....ခုေျပာခ်င္တာက file ေလးတစ္ခုကိုကြ်န္ေတာ္က password-encrypted zipped ေလးလုပ္မယ္...ကြ်န္ေတာ္က 7zip CLI ကိုသံုးျပီး ကြ်န္ေတာ့္ရဲ  ့phyosithumaung ဆိုတဲ့ directory ထဲမွာ


လက္ေတြ ့စမ္းပါ့မယ္.... ကြ်န္ေတာ္ ရိုက္လိုက္တဲ့ command မွာ အစိတ္အပိုင္းေလးခုရိွပါတယ္...ပထမဆံုးက ကြ်န္ေတ္ာ့ရဲ ့7zip CLI exe ရိွတဲ့လမ္းေၾကာင္းကို a ဆိုတာကေတာ့ archive လုပ္မယ္ေပါ့ေလ..... ေနာက္တစ္ခုက output file name ေပါ့.(ကြ်န္ေတာ္က testing စမ္းေနတာမို ့လို ့test1.zip လို ့ေပးထားတာ...ကိုယ္ၾကိဳက္တဲ့နာမည္ေပးလို ့ရပါတယ္)....ေနာက္တစ္ပိုင္းက ကြ်န္ေတာ္တို ့zip လုပ္မယ့္္ file (သို ့) directory ကိုညႊန္းေပးရမယ္....-p(password) parameter ေလးက ကိုယ္ေပးမယ့္ password ကို သတ္မွတ္ပါတယ္....

ကဲ...အဲဒီ command ေလးကိုရိုက္လိုက္ရင္ password encrypted file ေလးရသြားပါျပီ....တစ္ခ်ိဳ ့task ေတြက GUI နဲ ့လုပ္တာထက္ဒီလိုေလး CLI based task ေလးလုပ္သင့္ပါတယ္...ဘာလို ့လဲဆိုေတာ့

* တစ္ခ်ိဳ ့task ေတြက GUI မွာ hang တာတုိ ့... not respond တို ့ျဖစ္တတ္ပါတယ္ ( ကြ်န္ေတာ္တို ့ေပးလိုက္တဲ့ instruction commands ေတြက system I/O devices ေတြလုပ္ရမယ္ process management ေကာင္းေကာင္းမလုပ္နိုင္တဲ့အခါ ဒါမ်ိဳးေတြျဖစ္တတ္ပါတယ္)

* CLI command-based scripts ေတြက သူတို့ကိုေပးလိုက္တဲ့ task အတြက္ လိုအပ္သေလာက္ပဲ system resource ေတြကိုသံုးပါတယ္...( မ်ားေသာအားျဖင့္ CLI နဲ ့run တဲ့ task ေတြက hang တာ...not respond ျဖစ္တာနည္းပါတယ္)

* OK with multi-task scripts -- tasks ေတြအမ်ားၾကီးပါတဲ့ scripts ေတြလိုမ်ိဳး...line-by-line process နဲ ့လုပ္ရတဲ့ scripts လိုမ်ိဳး....ဥပမာ...backup scripts ေတြေပါ့ဗ်ာ...ဒီလိုအခါမ်ိဳးမွာ CLI-command-based-scripts ေတြကိုသံုးတာပိုအဆင္ေျပတယ္...


ကြ်န္ေတာ့္ရဲ  ့backup script file ( backup server မွာ သံုးဖို ့ေပါ့)

line-3 က backup လုပ္မယ့္ server က shared ထားတဲ့ shared directory ကို "net use username & password " နဲ ့လွမ္းခ်ိတ္ပါတယ္...

line-5 ကေတာ့...line 3 ကခ်ိတ္ထားတဲ့ shared directory ထဲက backup လုပ္မယ့္ Microsoft SQL file ေတြကို "C:\DBBK" ဆိုတဲ့ destination directory ထဲကိုကူးခိုင္းတာပါ (xcopy)... /A /S /V parameter ေတြကေတာ့ Xcopy ကို enforce လုပ္တဲ့ parameter ေတြပါ....

line-7 ကေတာ့ CLI zipped command ကေန password-encrypted zipped file အျဖစ္ Administrator Desktop မွာသြားထားခိုင္းပါတယ္...

line-10 ကေတာ့ Administrator ရဲ  ့Desktop ကို windows shell ကိုသြားခုိင္းပါတယ္...(cd )

line-12 ကေတာ့ Admin Desktop ေပၚမွာရိွေနတဲ့ Daily.zip ဆိုတဲ့ password-encrypted zipped file ကို Daily-Date.zip အျဖစ္ေျပာင္းခိုင္းတာပါ ( ဥပမာ..ဒီေန ့က Nov-21-ဆိုရင္ Daily-Wed-Nov-21-2018.zip အျဖစ္ေျပာင္းေပးပါလိမ့္မယ္)

မူးသြားျပီလား....script file ေလးကတစ္ခုထဲပါဗ်ာ...ဒါေပမယ့္ဒီအထဲမွာ line-by-line process နဲ ့ကြ်န္ေတာ္လုပ္ခိုင္းတဲ့ task ေတြကအမ်ားၾကီး ....ဒီေတာ့ CLI ေလးနဲ ့ဆိုရင္ multi-task ေတြကို single script ေလးနဲ ့လုပ္ခုိင္းႏိုင္တယ္ဆိုတာကို ဒီ post ေလးကေန သင္တို ့ကို sharing လုပ္လိုက္ပါတယ္....

စကားမစပ္....ကြ်န္ေတာ္က microsoft certified မဟုတ္သလို...ကြ်န္ေတာ့္ဆီမွာ Microsoft လက္မွတ္လည္းတစ္ခုမွမရိွပါဘူး...ကြ်န္ေတာ့္ဆီမွာရိွတာကေတာ့ Red Hat Certified System Administrator ရယ္ပါ...ေျပာခ်င္တာကသင္က ဘာလက္မွတ္ပဲကိုင္ထား...ကိုင္ထား...( whatever linux (or) microsoft ) ကိုယ္လုပ္ေနတဲ ့လုပ္ငန္းခြင္ရဲ ့လိုအပ္ခ်က္နဲ ့ကိုက္ညီတ့ဲ နည္းပညာအတိုင္းလုပ္ႏိုင္ရင္ အဆင္ေျပပါလိမ့္မယ္...Red Hat မွလုပ္ႏိုင္မယ္...Microsoft မွာလုပ္ႏိုင္မယ္...မဟုတ္ပါဘူး...

အခုဆိုရင္ microsoft က ubuntu နဲ ့github ကို၀ယ္ထားလိုက္ျပီ..ေနာက္ပိုင္းဆို microsoft ဘက္မွာလည္း code ေတြ..script ေတြနဲ ့လုပ္ႏိုင္မယ့္ဟာေတြအမ်ားၾကီးလည္းထပ္ျဖစ္လာပါဦးမယ္...ခုေတာင္ microsoft ရဲ  ့powershell ကေန VMware Hypervisor ေတြကိုလွမ္းmanageလုပ္ႏိုင္တဲ့ powerCLI  ေတြလုပ္ေနတာပဲမဟုတ္လား....ေနာက္ဆို software data center ေတြကို Powershell ကေန manage လုပ္ႏို္င္ေတာ့မယ္ေလ....

ဆိုလိုတာက သိခ်င္တတ္ခ်င္စိတ္နဲ ့အလုပ္လုပ္ပါ.....linux သမားေတြ...microsoft ကိုင္ရလို ့စိတ္မညစ္ပါနဲ ့..သိေအာင္တတ္ေအာင္လုပ္ပါ....microsoft သမားေတြ...linux လုပ္ရလို ့စိတ္မပ်က္ပါနဲ ့...သိခ်င္တတ္ခ်င္တဲ့စိတ္နဲ ့လုပ္ရင္အဆင္ေျပသြားပါလိမ့္မယ္...ကိုယ့္ကိုကုိယ္ limit မလုပ္ပါနဲ ့( linux သမားမို ့လို့ linux ပဲလုပ္မယ့္လို ့ကိုယ့္ကိုကိုယ္မကန္ ့သတ္ပါနဲ ့)...နည္းပညာေလာကထဲမွာက်င္လည္ရတဲ့သူေတြအတြက္ မ်ားမ်ားတတ္သိေလေကာင္းေလေလပါပဲဆိုတာကို ဒီ Post ေလးနဲ ့မွ်ေ၀ေရးသားလိုက္ရပါတယ္....


ေလးစားစြာျဖင့္
Phyo Sithu 

Red Hat Certified System Administrator (RHCSA - 2017)
Qualysic Certified Professional (2018)
Ruckuss Network Associate (2018)
Digium Certified Asterisk Administrator (2018)
Engenius Network Associate (2017) 
Cisco CCNA- Routing & Switching (2015) 
Zyxel Certified Network Associate (2015)







No comments:

ping script ေလးနဲ့ အထာကျကျကိုယ့် server ေလးတွေအခြေအနေကိုစစ်ကြမယ်....

ပုံမှန်အားဖြင့်ကျွန်တော်တို့ဟာ ping command ကိုအသုံးပြုပြီးတော့ ကိုယ့်စက်ရယ်...ကိုယ့် network ထဲမှာ internet connection ရမရစစ်ဆေးလေ့ရှိကြပါတ...