ስክሪፕቶችን በመጠቀም በSecureCRT ውስጥ መግባትን በራስ-ሰር ማድረግ

የአውታረ መረብ መሐንዲሶች ብዙውን ጊዜ የተወሰኑ ቁርጥራጮችን ከማስታወሻ ደብተር ወደ ኮንሶል የመገልበጥ/የመለጠፍ ተግባር ያጋጥማቸዋል። ብዙ ጊዜ መገልበጥ አለብህ፡ የተጠቃሚ ስም/የይለፍ ቃል እና ሌላ ነገር። የስክሪፕቶች አጠቃቀም ይህን ሂደት ለማፋጠን ያስችልዎታል. ነገር ግን ስክሪፕቱን የመፃፍ እና ስክሪፕቱን የማስፈፀም ተግባራት በአጠቃላይ በእጅ ማዋቀር ያነሰ ጊዜ ሊወስዱ ይገባል, አለበለዚያ ስክሪፕቶቹ ምንም ፋይዳ የሌላቸው ናቸው.

ይህ ጽሑፍ ለምንድነው? ይህ መጣጥፍ ከፈጣን ጅምር ተከታታዮች የመጣ ነው እና መሳሪያዎችን (ነጠላ ተግባር) በበርካታ መሳሪያዎች ላይ ሲያቀናብር የኔትወርክ መሐንዲሶችን ጊዜ ለመቆጠብ ያለመ ነው። SecureCRT ሶፍትዌር እና አብሮ የተሰራ የስክሪፕት አፈጻጸም ተግባርን ይጠቀማል።

ይዘቶች

መግቢያ

የ SecureCRT ፕሮግራም ከሳጥኑ ውጭ አብሮ የተሰራ የስክሪፕት ማስፈጸሚያ ዘዴ አለው። ተርሚናል ስክሪፕቶች ለምንድነው?

  • አውቶሜትድ I/O፣ እና አነስተኛ የI/O ማረጋገጫ።
  • የመደበኛ ተግባራትን አፈፃፀም ያፋጥኑ - በመሣሪያ ቅንጅቶች መካከል ለአፍታ ማቆም። (በተመሳሳዩ ሃርድዌር ላይ 3 ወይም ከዚያ በላይ የትዕዛዝ ፍርስራሾችን በማዘጋጀት በጊዜ ሂደት የተከሰቱ የቆመዎች ቅነሳ።)

ይህ ሰነድ ተግባራትን ይሸፍናል፡-

  • ቀላል ስክሪፕቶች መፍጠር.
  • በSecureCRT ላይ ስክሪፕቶችን በማሄድ ላይ።
  • ቀላል እና የላቁ ስክሪፕቶችን የመጠቀም ምሳሌዎች። (ከእውነተኛ ህይወት ልምምድ አድርግ።)

ቀላል ስክሪፕቶች መፍጠር.

በጣም ቀላሉ ስክሪፕቶች ሁለት ትዕዛዞችን ብቻ ይጠቀማሉ, ላክ እና WaitForString. ይህ ተግባር ለተከናወኑት ተግባራት 90% (ወይም ከዚያ በላይ) በቂ ነው።

ስክሪፕቶች በ Python፣ JS፣ VBS (Visual Basic)፣ Perl፣ ወዘተ ሊሰሩ ይችላሉ።

ዘንዶ

# $language = "Python"
# $interface = "1.0"
def main():
  crt.Screen.Synchronous = True
  crt.Screen.Send("r")
  crt.Screen.WaitForString("name")
  crt.Screen.Send("adminr")
  crt.Screen.WaitForString("Password:")
  crt.Screen.Send("Password")
  crt.Screen.Synchronous = False
main()

ብዙውን ጊዜ "*.py" ቅጥያ ያለው ፋይል

VBS

# $language = "VBScript"
# $interface = "1.0"
Sub Main
  crt.Screen.Synchronous = True
  crt.Screen.Send vbcr
  crt.Screen.WaitForString "name"
  crt.Screen.Send "cisco" & vbcr
  crt.Screen.WaitForString "assword"
  crt.Screen.Send "cisco" & vbcr
  crt.Screen.Synchronous = False
End Sub

ብዙውን ጊዜ "*.vbs" ቅጥያ ያለው ፋይል

የስክሪፕት ግቤት በመጠቀም ስክሪፕት ይፍጠሩ።

ስክሪፕት የመጻፍ ሂደትን በራስ ሰር እንዲያዘጋጁ ይፈቅድልዎታል። ስክሪፕት መጻፍ ትጀምራለህ። SecureCRT ትእዛዞቹን እና ተከታዩን የሃርድዌር ምላሽ ይመዘግባል እና የተጠናቀቀውን ስክሪፕት ያሳየዎታል።

ሀ. ስክሪፕት መጻፍ ጀምር፡-
SecureCRT Menu => ስክሪፕት => ስክሪፕት መቅዳት ጀምር
ለ. ከኮንሶል ጋር እርምጃዎችን ያከናውኑ (በ CLI ውስጥ የማዋቀር እርምጃዎችን ያከናውኑ)።
ቪ. ስክሪፕቱን መፃፍ ጨርስ፡-
SecureCRT Menu => ስክሪፕት => ስክሪፕት መቅዳት አቁም…
የስክሪፕት ፋይሉን ያስቀምጡ.

የተፈጸሙ ትዕዛዞች እና የተቀመጠ ስክሪፕት ምሳሌ፡-

ስክሪፕቶችን በመጠቀም በSecureCRT ውስጥ መግባትን በራስ-ሰር ማድረግ

በSecureCRT ላይ ስክሪፕቶችን በማሄድ ላይ።

ስክሪፕቱን ከፈጠሩ/ከአርትዖት ካደረጉ በኋላ የተፈጥሮ ጥያቄ ይነሳል፡ ስክሪፕቱን እንዴት መተግበር ይቻላል?
በርካታ መንገዶች አሉ

  • ከስክሪፕት ሜኑ በእጅ በማሄድ ላይ
  • ከግንኙነት በኋላ በራስ-ሰር ጅምር (የመግቢያ ስክሪፕት)
  • ስክሪፕት ሳይጠቀሙ ልሾ-ሰር መለያ
  • በSecureCRT ውስጥ ባለው አዝራር በእጅ መቀስቀስ (አዝራሩ ገና ተፈጥሯል እና ወደ SecureCRT መታከል አለበት)

ከስክሪፕት ሜኑ በእጅ በማሄድ ላይ

SecureCRT Menu => ስክሪፕት => አሂድ…
- የመጨረሻዎቹ 10 ስክሪፕቶች ይታወሳሉ እና ለፈጣን ማስጀመሪያ ይገኛሉ፡-
SecureCRT ምናሌ => ስክሪፕት => 1 "የስክሪፕት ፋይል ስም"
SecureCRT ምናሌ => ስክሪፕት => 2 "የስክሪፕት ፋይል ስም"
SecureCRT ምናሌ => ስክሪፕት => 3 "የስክሪፕት ፋይል ስም"
SecureCRT ምናሌ => ስክሪፕት => 4 "የስክሪፕት ፋይል ስም"
SecureCRT ምናሌ => ስክሪፕት => 5 "የስክሪፕት ፋይል ስም"

ከግንኙነት በኋላ በራስ-ሰር ጅምር (የመግቢያ ስክሪፕት)

አውቶማቲክ የመግቢያ ስክሪፕት ቅንጅቶች ለተቀመጠው ክፍለ ጊዜ ተዋቅረዋል፡ ግንኙነት = የመግቢያ ድርጊቶች => የመግቢያ ስክሪፕት

ስክሪፕቶችን በመጠቀም በSecureCRT ውስጥ መግባትን በራስ-ሰር ማድረግ

ስክሪፕት ሳይጠቀሙ ራስ-ሰር መለያ

የ SecureCRT አብሮ የተሰራውን ተግባር ብቻ በመጠቀም ስክሪፕት ሳይጽፉ የይለፍ ቃሉን ተጠቃሚ ስም በራስ ሰር ማስገባት ይቻላል። በግንኙነት ቅንጅቶች ውስጥ "ግንኙነት" => የመግቢያ ድርጊቶች => ሎጎን ሰር - ብዙ ጥቅሎችን መሙላት ያስፈልግዎታል - ይህ ማለት ጥንዶቹን "የተጠበቀው ጽሑፍ" + "ወደዚህ ጽሑፍ የተላኩ ቁምፊዎች" ብዙ እንደዚህ ያሉ ጥንዶች ሊኖሩ ይችላሉ. (ለምሳሌ፡ 1ኛ ጥንድ የተጠቃሚ ስምን በመጠባበቅ ላይ፣ ሁለተኛ የይለፍ ቃል በመጠባበቅ ላይ፣ ሶስተኛ ልዩ ልዩ ሁነታን በመጠባበቅ ላይ፣ አራተኛው ጥንድ ለልዩ ሁኔታ የይለፍ ቃል።)

በሲስኮ ASA ላይ የራስ ሰር መለያ ምልክት ምሳሌ፡-

ስክሪፕቶችን በመጠቀም በSecureCRT ውስጥ መግባትን በራስ-ሰር ማድረግ

በSecureCRT ውስጥ ባለው አዝራር በእጅ መቀስቀስ (አዝራሩ ገና ተፈጥሯል እና ወደ SecureCRT መታከል አለበት)

በSecureCRT ውስጥ፣ ስክሪፕት ለአንድ አዝራር መመደብ ይችላሉ። አዝራሩ ለዚሁ ዓላማ በተለየ የተፈጠረ ፓነል ላይ ተጨምሯል.

ሀ. በይነገጹ ላይ ፓነል ማከል፡ SecureCRT Menu => ይመልከቱ => የአዝራር አሞሌ
ለ. ወደ ፓነሉ አንድ ቁልፍ ያክሉ እና ስክሪፕት ያክሉ። - በአውድ አሞሌው ላይ በቀኝ ጠቅ ያድርጉ እና ከአውድ ምናሌው ውስጥ “አዲስ ቁልፍ…” ን ይምረጡ።
ቪ. በ "ካርታ አዝራር" የንግግር ሳጥን ውስጥ, በ "ድርጊት" መስክ ውስጥ "Run Script" የሚለውን እርምጃ (ተግባር) ይምረጡ.
ለአዝራሩ መግለጫ ጽሑፍ ይግለጹ። የአዝራር አዶ ቀለም። እሺን ጠቅ በማድረግ ቅንብሮቹን ጨርስ።

ስክሪፕቶችን በመጠቀም በSecureCRT ውስጥ መግባትን በራስ-ሰር ማድረግ

ማስታወሻ:

አዝራሮች ያሉት ፓነል በጣም ጠቃሚ ተግባር ነው.

1. ወደ አንድ የተወሰነ ክፍለ ጊዜ ሲገቡ የትኛውን ፓነል በነባሪነት ወደዚህ ትር እንደሚከፍት ለመለየት ይቻላል.

2. ለመደበኛ እርምጃዎች ከመሳሪያዎች ጋር አስቀድመው የተገለጹ እርምጃዎችን ማዘጋጀት ይቻላል-ስሪትን አሳይ ፣ ሩጫ-ውቅርን አሳይ ፣ ውቅረትን ያስቀምጡ።

ስክሪፕቶችን በመጠቀም በSecureCRT ውስጥ መግባትን በራስ-ሰር ማድረግ
ከእነዚህ አዝራሮች ጋር ምንም ስክሪፕት አልተያያዘም። የድርጊት መስመር ብቻ፡-

ስክሪፕቶችን በመጠቀም በSecureCRT ውስጥ መግባትን በራስ-ሰር ማድረግ
ቅንብር - ወደ ክፍለ-ጊዜ ሲቀይሩ አስፈላጊው ፓነል በክፍለ-ጊዜው ቅንብሮች ውስጥ ይከፈታል-

ስክሪፕቶችን በመጠቀም በSecureCRT ውስጥ መግባትን በራስ-ሰር ማድረግ
ደንበኛው ለመግቢያ የግል ስክሪፕቶችን ማዘጋጀቱ እና ለአቅራቢው በተደጋጋሚ ትዕዛዞችን ወደ ፓነሉ መሄድ ምክንያታዊ ነው።

ስክሪፕቶችን በመጠቀም በSecureCRT ውስጥ መግባትን በራስ-ሰር ማድረግ
የ Go Cisco ቁልፍን ሲጫኑ ፓኔሉ ወደ ሲስኮ አዝራር ባር ይቀየራል።

ስክሪፕቶችን በመጠቀም በSecureCRT ውስጥ መግባትን በራስ-ሰር ማድረግ

ቀላል እና የላቁ ስክሪፕቶችን የመጠቀም ምሳሌዎች። (ከእውነተኛ ህይወት ልምምድ አድርግ።)

ቀላል ስክሪፕቶች ለሁሉም ማለት ይቻላል በቂ ናቸው። ግን አንዴ ስክሪፕቱን ትንሽ ማወሳሰብ ካስፈለገኝ - ስራውን ለማፋጠን። ይህ ውስብስብነት በቀላሉ ከተጠቃሚው ተጨማሪ መረጃን በውይይት ሳጥን ውስጥ ጠይቋል።

የንግግር ሳጥን በመጠቀም ከተጠቃሚው ውሂብን መጠየቅ

በዳታ ጥያቄ ስክሪፕት ውስጥ 2 ነበረኝ ይህ የአይፒ አድራሻው የአስተናጋጅ ስም እና 4ኛው ጥቅምት ነው። ይህንን ድርጊት ለመፈጸም - እንዴት ማድረግ እንዳለብኝ ጎግል አድርጌያለሁ እና በሴክዩር CRT (vandyke) ኦፊሴላዊ ድር ጣቢያ ላይ አገኘሁት። - ተግባራዊነቱ ፈጣን ተብሎ ይጠራል.

	crt.Screen.WaitForString("-Vlanif200]")
	hostnamestr = crt.Dialog.Prompt("Enter hostname:", "hostname", "", False)
	ipaddressstr = crt.Dialog.Prompt("Enter ip address:", "ip", "", False)
	crt.Screen.Send("ip address 10.10.10.")
	crt.Screen.Send(ipaddressstr)
	crt.Screen.Send(" 23r")
	crt.Screen.Send("quitr")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("r") 

ይህ የስክሪፕቱ ክፍል የአስተናጋጅ ስም እና ከመጨረሻው ጥቅምት ወር ጀምሮ ቁጥሮች ጠይቋል። 15 እቃዎች ስለነበሩ. እና ውሂቡ በሰንጠረዥ ውስጥ ቀርቧል ፣ ከዚያ እሴቶቹን ከጠረጴዛው ላይ ገልብጠው ወደ የንግግር ሳጥኖቹ ውስጥ ለጥፌዋለሁ። በተጨማሪ ስክሪፕቱ በተናጥል ሰርቷል።

ኤፍቲፒ ወደ አውታረ መረብ መሳሪያዎች መቅዳት።

ይህ ስክሪፕት የእኔን የትዕዛዝ መስኮት (ሼል) እና የተቀዳ ውሂብን በኤፍቲፒ በኩል አስጀምሯል። በመጨረሻ ፣ ክፍለ-ጊዜውን ይዝጉ። ለዚህ የማስታወሻ ደብተር ለመጠቀም የማይቻል ነው ፣ ምክንያቱም መቅዳት በጣም ረጅም ጊዜ ስለሚወስድ እና በኤፍቲፒ ቋት ውስጥ ያለው ውሂብ ለዚያ ጊዜ አይከማችም።

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("ftp 192.168.1.1r")
	crt.Screen.WaitForString("Name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("binaryr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("put S5720LI-V200R011SPH016.patr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("quitr")
	crt.Screen.Synchronous = False
main()

ስክሪፕት በመጠቀም የተጠቃሚ ስም/የይለፍ ቃል ማስገባት

በአንድ የደንበኞች የአውታረ መረብ መሳሪያዎች መዳረሻ በቀጥታ ተዘግቷል። በመጀመሪያ ወደ ነባሪው ጌትዌይ (Default Gateway) ጋር በማገናኘት ወደ መሳሪያው ውስጥ መግባት ተችሏል, እና ከዚያ ከእሱ ጋር ከተገናኙት መሳሪያዎች ጋር. በ IOS/ሃርድዌር ሶፍትዌር ውስጥ የተገነባው የssh ደንበኛ ለመገናኘት ስራ ላይ ውሏል። በዚህ መሠረት የተጠቃሚ ስም እና የይለፍ ቃል በኮንሶል ውስጥ ተጠይቀዋል. ከታች ባለው ስክሪፕት የተጠቃሚ ስም እና የይለፍ ቃል በራስ ሰር ገብተዋል፡-

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("snmpadminr")
	crt.Screen.WaitForString("assword:")
	crt.Screen.Send("Passwordr")
	crt.Screen.Synchronous = False
main()

ማስታወሻ፡- 2 ስክሪፕቶች ነበሩ።አንደኛው ለአስተዳዳሪ መለያ፣ ሁለተኛው ለ eSIGHT መለያ።

ስክሪፕት በስክሪፕት አፈጻጸም ጊዜ በቀጥታ ውሂብን የማያያዝ ችሎታ ያለው።

ስራው በሁሉም የኔትወርክ መሳሪያዎች ላይ የማይንቀሳቀስ መንገድ መጨመር ነበር. ነገር ግን በእያንዳንዱ መሳሪያዎች ላይ የበይነመረብ መግቢያው የተለየ ነበር (እና ከነባሪው መግቢያው ይለያል). የሚከተለው ስክሪፕት የማዞሪያ ሰንጠረዡን አሳይቷል, ወደ ውቅረት ሁነታ ገባ, ትዕዛዙን እስከመጨረሻው አልፃፈም (የበይነመረብ መግቢያ በር IP አድራሻ) - ይህን ክፍል ጨምሬያለሁ. አስገባን ከጫንኩ በኋላ ስክሪፕቱ ትዕዛዙን መፈጸሙን ቀጠለ።

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("Zdes-mogla-bit-vasha-reklamar")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("show run | inc ip router")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("conf tr")
	crt.Screen.WaitForString("(config)#")
	crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ")
	crt.Screen.WaitForString("(config)#")
	crt.Screen.Send("endr")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("copy run star")
	crt.Screen.WaitForString("[startup-config]?")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("exitr")
	crt.Screen.Synchronous = False
main()

በዚህ ስክሪፕት ውስጥ፣ በመስመሩ ውስጥ፡ crt.Screen.Send("ip route 10.10.10.8 255.255.255.252") የመግቢያ መንገዱ አይፒ አድራሻ አልተጨመረም እና የመጓጓዣ መመለሻ ቁምፊ የለም። ስክሪፕቱ የሚቀጥለውን መስመር በቁምፊዎች እየጠበቀ ነው "(config) #" እነዚህ ቁምፊዎች አይፒ አድራሻውን ከገባሁ በኋላ ታየ.

መደምደሚያ:

ስክሪፕት ሲጽፉ እና ሲሰሩት ህጉ መከተል አለበት፡ ስክሪፕት ለመፃፍ እና ስክሪፕት የሚተገበርበት ጊዜ በንድፈ ሀሳብ ተመሳሳይ ስራ በእጅ ለመስራት ከሚያጠፋው ጊዜ በላይ መሆን የለበትም (ከማስታወሻ ደብተር መቅዳት/መለጠፍ፣ መጻፍ እና ማረም) የፓይቶን ስክሪፕት ለመፃፍ እና ለማረም የመጫወቻ መጽሐፍ)። ያም ማለት የስክሪፕቱ አጠቃቀም ጊዜን መቆጠብ አለበት, እና የአንድ ጊዜ ሂደቶችን በራስ-ሰር (ማለትም, ስክሪፕቱ ልዩ በሚሆንበት ጊዜ እና ምንም ተጨማሪ ድግግሞሽ አይኖርም) ጊዜ አያባክን. ነገር ግን ስክሪፕቱ ልዩ ከሆነ እና ከስክሪፕቱ ጋር አውቶማቲክ ከሆነ እና ስክሪፕቱን መፃፍ/ማረም በሌላ መንገድ ከመስራቱ ያነሰ ጊዜ የሚወስድ ከሆነ (ሊቻል የሚችል ፣ የትዕዛዝ መስኮት) ስክሪፕቱ የተሻለው መፍትሄ ነው።
ስክሪፕት ማረም። ስክሪፕቱ ቀስ በቀስ ያድጋል ፣ ማረም የሚከናወነው በመጀመሪያ ፣ ሁለተኛ ፣ ሦስተኛው መሣሪያ ላይ በሩጫ ላይ ነው ፣ እና በአራተኛው ስክሪፕቱ ሙሉ በሙሉ ሊሰራ ይችላል።

ስክሪፕት (የተጠቃሚ ስም+ፓስወርድን በማስገባት) በመዳፊት ማሄድ ብዙ ጊዜ የተጠቃሚ ስም እና የይለፍ ቃል ከማስታወሻ ደብተር ከመቅዳት የበለጠ ፈጣን ነው። ነገር ግን ከደህንነት እይታ አንጻር ደህና አይደለም.
ሌላ (እውነተኛ) ምሳሌ ስክሪፕት ሲጠቀሙ፡ ወደ አውታረ መረብ መሳሪያዎች ቀጥተኛ መዳረሻ የለዎትም። ነገር ግን ሁሉንም የአውታረ መረብ መሳሪያዎችን ማዋቀር ያስፈልጋል (በክትትል ስርዓቱ ውስጥ ያስገቡት ፣ ተጨማሪ የተጠቃሚ ስም / የይለፍ ቃል / snmpv3 የተጠቃሚ ስም / የይለፍ ቃል ያዋቅሩ)። ወደ ኮር ማብሪያ / ማጥፊያ ሲሄዱ መዳረሻ አለ ፣ ከእሱ ኤስኤስኤች ወደ ሌሎች መሳሪያዎች ይከፍታሉ ። ለምን Asible መጠቀም አይችሉም. - በኔትወርክ መሳሪያዎች (መስመር vty 0 4, የተጠቃሚ-በይነገጽ vty 0 4) የሚፈቀዱ በአንድ ጊዜ ክፍለ ጊዜዎች ላይ ገደብ ላይ ስለሆንን (ሌላ ጥያቄ በተመሳሳዩ SSH የመጀመሪያ ሆፕ ውስጥ የተለያዩ መሳሪያዎችን እንዴት መጀመር እንደሚቻል ነው).

ስክሪፕቱ በረጅም ጊዜ ስራዎች ጊዜን ይቀንሳል - ለምሳሌ ፋይሎችን በኤፍቲፒ መቅዳት። መቅዳት ከተጠናቀቀ በኋላ, ስክሪፕቱ ወዲያውኑ መስራት ይጀምራል. አንድ ሰው የመቅዳት መጨረሻውን ማየት አለበት፣ ከዚያም የመቅዳት መጨረሻውን ይገነዘባል፣ ከዚያ ተገቢውን ትዕዛዞች ያስገቡ። ስክሪፕቱ በተጨባጭ በፍጥነት ያደርገዋል።

የጅምላ ውሂብ ማቅረቢያ መሳሪያዎችን መጠቀም በማይቻልበት ቦታ ስክሪፕቶች ተፈጻሚ ይሆናሉ፡ ኮንሶል። ወይም አንዳንድ የመሳሪያዎቹ ውሂብ ልዩ ሲሆኑ፡ የአስተናጋጅ ስም፣ የአስተዳደር አይፒ አድራሻ። ወይም ፕሮግራም ሲጽፉ እና ስክሪፕቱ በሚሰራበት ጊዜ ከመሳሪያው የተቀበለውን መረጃ ከመጨመር የበለጠ ከባድ ነው. - መንገድን ለማዘዝ ስክሪፕት ያለው ምሳሌ፣ እያንዳንዱ መሳሪያ የኢንተርኔት አቅራቢው የራሱ አይፒ አድራሻ ሲኖረው። (ባልደረቦቼ እንደዚህ አይነት ስክሪፕቶችን ጽፈዋል - DMVPN ሲናገር ከ 3 በላይ ነበር. የDMVPN ቅንብሮችን መለወጥ አስፈላጊ ነበር).

የጉዳይ ጥናት፡ የኮንሶል ወደቦችን በመጠቀም የመጀመሪያ ቅንብሮችን በአዲስ መቀየሪያ ላይ ማዋቀር፡-

ሀ. የኮንሶል ገመዱን ወደ መሳሪያው ሰካ።
ለ. ስክሪፕቱን ያሂዱ
ለ. የስክሪፕቱን አፈጻጸም ጠብቋል
መ. የኮንሶል ገመዱን በሚቀጥለው መሳሪያ ላይ ሰክቷል።
ሠ. ማብሪያው የመጨረሻው ካልሆነ ወደ ደረጃ B ይሂዱ።

በስክሪፕቱ ሥራ ምክንያት፡-

  • የመጀመሪያው የይለፍ ቃል በመሳሪያው ላይ ተቀምጧል.
  • የተጠቃሚ ስም ገብቷል።
  • የመሳሪያው ልዩ የአይፒ አድራሻ ገብቷል።

PS ክዋኔው መደገም ነበረበት። ምክንያቱም ነባሪ ssh አልተዋቀረም/አልተሰናከለም። (አዎ ይህ የእኔ ስህተት ነው።)

ያገለገሉ ምንጮች.

1. ስክሪፕቶችን ስለመፍጠር
2. የስክሪፕት ምሳሌዎች

አባሪ 1፡ የናሙና ስክሪፕቶች።


የረጅም ስክሪፕት ምሳሌ፣ ከሁለት ጥያቄዎች ጋር፡ የአስተናጋጅ ስም እና የአይፒ አድራሻ። በኮንሶል (9600 baud) በኩል መሳሪያዎችን ለማቀናበር ተፈጥሯል. እንዲሁም የመሳሪያዎችን ግንኙነት ከአውታረ መረቡ ጋር ለማዘጋጀት.

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("r")
	crt.Screen.WaitForString("name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.Send("sysr")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface Vlanif 1r")
	crt.Screen.WaitForString("Vlanif1]")
	crt.Screen.Send("undo ip addressr")
	crt.Screen.Send("shutdownr")
	crt.Screen.Send("vlan 100r")
	crt.Screen.Send(" description description1r")
	crt.Screen.Send(" name description1r")
	crt.Screen.Send("vlan 110r")
	crt.Screen.Send(" description description2r")
	crt.Screen.Send(" name description2r")
	crt.Screen.Send("vlan 120r")
	crt.Screen.Send(" description description3r")
	crt.Screen.Send(" name description3r")
	crt.Screen.Send("vlan 130r")
	crt.Screen.Send(" description description4r")
	crt.Screen.Send(" name description4r")
	crt.Screen.Send("vlan 140r")
	crt.Screen.Send(" description description5r")
	crt.Screen.Send(" name description5r")
	crt.Screen.Send("vlan 150r")
	crt.Screen.Send(" description description6r")
	crt.Screen.Send(" name description6r")
	crt.Screen.Send("vlan 160r")
	crt.Screen.Send(" description description7r")
	crt.Screen.Send(" name description7r")
	crt.Screen.Send("vlan 170r")
	crt.Screen.Send(" description description8r")
	crt.Screen.Send(" name description8r")               
	crt.Screen.Send("vlan 180r")
	crt.Screen.Send(" description description9r")
	crt.Screen.Send(" name description9r")
	crt.Screen.Send("vlan 200r")
	crt.Screen.Send(" description description10r")
	crt.Screen.Send(" name description10r")
	crt.Screen.Send("vlan 300r")
	crt.Screen.Send(" description description11r")
	crt.Screen.Send(" name description11r")
	crt.Screen.Send("quitr")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("stp region-configurationr")
	crt.Screen.Send("region-name descr")
	crt.Screen.Send("active region-configurationr")
	crt.Screen.WaitForString("mst-region]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("stp instance 0 priority 57344r")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface range GigabitEthernet 0/0/1 to GigabitEthernet 0/0/42r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Usersr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type hybridr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan 100 enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan legacy enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid pvid vlan 120r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid tagged vlan 100r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid untagged vlan 120r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021pr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("interface range GigabitEthernet 0/0/43 to GigabitEthernet 0/0/48r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Printersr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type accessr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port default vlan 130r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021pr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("interface range XGigabitEthernet 0/0/1 to XGigabitEthernet 0/0/2r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description uplinkr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type trunkr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 100 110 120 130 140 150 160 170 180 200r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 300r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.4r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.2r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.134r")
	crt.Screen.Send("ip route-static 0.0.0.0 0.0.0.0 10.10.10.254r")
	crt.Screen.Send("interface Vlanif 200r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
        hostnamestr = crt.Dialog.Prompt("Enter hostname:", "hostname", "", False)
        ipaddressstr = crt.Dialog.Prompt("Enter ip address:", "ip", "", False)
	crt.Screen.Send("ip address 10.10.10.")
	crt.Screen.Send(ipaddressstr)
	crt.Screen.Send(" 24r")
	crt.Screen.Send("quitr")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("r")
	crt.Screen.WaitForString("]")
	crt.Screen.Synchronous = False
main()

እንደነዚህ ዓይነቶቹ ስክሪፕቶች በአብዛኛው አያስፈልጉም, ነገር ግን የመሳሪያው መጠን 15 pcs ነው. ፈጣን ማዋቀር ተፈቅዷል። የ SecureCRT ትዕዛዝ መስኮትን በመጠቀም መሳሪያዎቹን ማዘጋጀት ፈጣን ነበር.

ለssh መለያ በማዘጋጀት ላይ።

ሌላ ምሳሌ። ማዋቀር እንዲሁ በኮንሶል በኩል ነው።

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("r")
	crt.Screen.WaitForString("name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.WaitForString(">")
	crt.Screen.Send("sysr")
	crt.Screen.Send("stelnet server enabler")
	crt.Screen.Send("aaar")
	crt.Screen.Send("local-user admin service-type terminal ftp http sshr")
	crt.Screen.Send("quitr")
	crt.Screen.Send("user-interface vty 0 4r")
	crt.Screen.Send("authentication-mode aaar")
	crt.Screen.Send("quitr")
	crt.Screen.Send("quitr")
	crt.Screen.Synchronous = False
main()


ስለ SecureCRT፡የሚከፈልበት ሶፍትዌር፡ ከ$99 (ትንሹ ዋጋ ለSecureCRT ለአንድ አመት ብቻ ነው)
ኦፊሴላዊ ድር ጣቢያ
የሶፍትዌር ፍቃድ አንድ ጊዜ ይገዛል፣ ከድጋፍ ጋር (ለማዘመን)፣ ከዚያ ሶፍትዌሩ ከዚህ ፍቃድ ጋር ላልተወሰነ ጊዜ ጥቅም ላይ ይውላል።

በ Mac OS X እና በዊንዶውስ ኦፐሬቲንግ ሲስተሞች ላይ ይሰራል።

የስክሪፕት ድጋፍ አለ (ይህ ጽሑፍ)
አሉ የትእዛዝ መስኮት
ተከታታይ/ቴሌኔት/SSH1/SSH2/ሼል ኦፐሬቲንግ ሲስተም

ምንጭ: hab.com