ஸ்கிரிப்ட்களைப் பயன்படுத்தி SecureCRT இல் உள்ளீட்டைத் தானியக்கமாக்குகிறது

நெட்வொர்க் பொறியாளர்கள் சில துண்டுகளை நோட்பேடில் இருந்து கன்சோலுக்கு நகலெடுக்க/ஒட்டுவதை அடிக்கடி எதிர்கொள்கின்றனர். நீங்கள் வழக்கமாக பல அளவுருக்களை நகலெடுக்க வேண்டும்: பயனர்பெயர்/கடவுச்சொல் மற்றும் வேறு ஏதாவது. ஸ்கிரிப்ட்களின் பயன்பாடு இந்த செயல்முறையை விரைவுபடுத்த உங்களை அனுமதிக்கிறது. ஆனால் ஸ்கிரிப்டை எழுதுதல் மற்றும் ஸ்கிரிப்டை செயல்படுத்துதல் ஆகியவை கையேடு உள்ளமைவைக் காட்டிலும் குறைவான நேரத்தை எடுத்துக் கொள்ள வேண்டும், இல்லையெனில் ஸ்கிரிப்டுகள் பயனற்றவை.

இந்தக் கட்டுரை எதற்காக? இந்தக் கட்டுரை ஃபாஸ்ட் ஸ்டார்ட் தொடரிலிருந்து வந்தது மற்றும் பல சாதனங்களில் உபகரணங்களை (ஒரே பணி) அமைக்கும் போது நெட்வொர்க் பொறியாளர்களின் நேரத்தைச் சேமிப்பதை நோக்கமாகக் கொண்டது. SecureCRT மென்பொருள் மற்றும் உள்ளமைக்கப்பட்ட ஸ்கிரிப்ட் செயல்படுத்தல் செயல்பாட்டைப் பயன்படுத்துகிறது.

உள்ளடக்கம்

அறிமுகம்

SecureCRT நிரல் பெட்டிக்கு வெளியே உள்ளமைக்கப்பட்ட ஸ்கிரிப்ட் செயல்படுத்தும் பொறிமுறையைக் கொண்டுள்ளது. டெர்மினல் ஸ்கிரிப்டுகள் எதற்காக?

  • தானியங்கு I/O, மற்றும் குறைந்தபட்ச I/O சரிபார்ப்பு.
  • வழக்கமான பணிகளைச் செயல்படுத்துவதை விரைவுபடுத்துதல் - உபகரண அமைப்புகளுக்கு இடையில் இடைநிறுத்தங்களைக் குறைத்தல். (3 அல்லது அதற்கு மேற்பட்ட கட்டளைத் துண்டுகள் வன்பொருளுக்குப் பயன்படுத்தப்பட வேண்டும், அதே வன்பொருளில் நகல்/கடந்த செயல்களைச் செய்ய நேரத்தால் ஏற்படும் இடைநிறுத்தங்களின் நடைமுறைக் குறைப்பு.)

இந்த ஆவணம் பணிகளை உள்ளடக்கியது:

  • எளிய ஸ்கிரிப்ட்களை உருவாக்குதல்.
  • SecureCRT இல் ஸ்கிரிப்ட்களை இயக்குகிறது.
  • எளிய மற்றும் மேம்பட்ட ஸ்கிரிப்ட்களைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள். (நிஜ வாழ்க்கையிலிருந்து பயிற்சி.)

எளிய ஸ்கிரிப்ட்களை உருவாக்குதல்.

எளிய ஸ்கிரிப்டுகள் அனுப்பு மற்றும் WaitForString ஆகிய இரண்டு கட்டளைகளை மட்டுமே பயன்படுத்துகின்றன. 90% (அல்லது அதற்கு மேற்பட்ட) பணிகளுக்கு இந்த செயல்பாடு போதுமானது.

பைதான், ஜேஎஸ், விபிஎஸ் (விஷுவல் பேசிக்), பெர்ல் போன்றவற்றில் ஸ்கிரிப்ட்கள் வேலை செய்ய முடியும்.

பைதான்

# $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 மெனு => ஸ்கிரிப்ட் => ரெக்கார்டிங் ஸ்கிரிப்டைத் தொடங்கவும்
பி. பணியகத்துடன் செயல்களைச் செய்யவும் (CLI இல் உள்ளமைவு படிகளைச் செய்யவும்).
வி. ஸ்கிரிப்டை எழுதி முடிக்கவும்:
SecureCRT மெனு => ஸ்கிரிப்ட் => ஸ்கிரிப்டைப் பதிவு செய்வதை நிறுத்து...
ஸ்கிரிப்ட் கோப்பை சேமிக்கவும்.

செயல்படுத்தப்பட்ட கட்டளைகள் மற்றும் சேமிக்கப்பட்ட ஸ்கிரிப்ட்டின் எடுத்துக்காட்டு:

ஸ்கிரிப்ட்களைப் பயன்படுத்தி SecureCRT இல் உள்ளீட்டைத் தானியக்கமாக்குகிறது

SecureCRT இல் ஸ்கிரிப்ட்களை இயக்குகிறது.

ஸ்கிரிப்டை உருவாக்க/திருத்த பிறகு, ஒரு இயல்பான கேள்வி எழுகிறது: ஸ்கிரிப்டை எவ்வாறு பயன்படுத்துவது?
பல வழிகள் உள்ளன:

  • ஸ்கிரிப்ட் மெனுவிலிருந்து கைமுறையாக இயங்குகிறது
  • இணைப்புக்குப் பிறகு தானியங்கி தொடக்கம் (உள்நுழைவு ஸ்கிரிப்ட்)
  • ஸ்கிரிப்டைப் பயன்படுத்தாமல் தானியங்கி உள்நுழைவு
  • SecureCRT இல் ஒரு பொத்தானைக் கொண்டு கைமுறையாகத் தூண்டுகிறது (ஒரு பொத்தான் இன்னும் உருவாக்கி SecureCRT இல் சேர்க்கப்படவில்லை)

ஸ்கிரிப்ட் மெனுவிலிருந்து கைமுறையாக இயங்குகிறது

SecureCRT மெனு => ஸ்கிரிப்ட் => இயக்கவும்...
- கடைசி 10 ஸ்கிரிப்ட்கள் நினைவில் உள்ளன மற்றும் விரைவாக தொடங்குவதற்கு கிடைக்கின்றன:
SecureCRT மெனு => ஸ்கிரிப்ட் => 1 "ஸ்கிரிப்ட் கோப்பு பெயர்"
SecureCRT மெனு => ஸ்கிரிப்ட் => 2 "ஸ்கிரிப்ட் கோப்பு பெயர்"
SecureCRT மெனு => ஸ்கிரிப்ட் => 3 "ஸ்கிரிப்ட் கோப்பு பெயர்"
SecureCRT மெனு => ஸ்கிரிப்ட் => 4 "ஸ்கிரிப்ட் கோப்பு பெயர்"
SecureCRT மெனு => ஸ்கிரிப்ட் => 5 "ஸ்கிரிப்ட் கோப்பு பெயர்"

இணைப்புக்குப் பிறகு தானியங்கி தொடக்கம் (உள்நுழைவு ஸ்கிரிப்ட்)

சேமித்த அமர்வுக்கு தானியங்கு லாக்கிங் ஸ்கிரிப்ட் அமைப்புகள் கட்டமைக்கப்பட்டுள்ளன: இணைப்பு => உள்நுழைவு செயல்கள் => உள்நுழைவு ஸ்கிரிப்ட்

ஸ்கிரிப்ட்களைப் பயன்படுத்தி SecureCRT இல் உள்ளீட்டைத் தானியக்கமாக்குகிறது

ஸ்கிரிப்டைப் பயன்படுத்தாமல் தானியங்கி உள்நுழைவு

SecureCRT இன் உள்ளமைக்கப்பட்ட செயல்பாட்டை மட்டும் பயன்படுத்தி, ஸ்கிரிப்ட் எழுதாமல் கடவுச்சொல்லின் பயனர்பெயரை தானாக உள்ளிட முடியும். இணைப்பு அமைப்புகளில் “இணைப்பு” => உள்நுழைவு செயல்கள் => உள்நுழைவை தானியங்குபடுத்துதல் - நீங்கள் பல மூட்டைகளை நிரப்ப வேண்டும் - அதாவது ஜோடிகள்: “எதிர்பார்க்கப்பட்ட உரை” + “இந்த உரைக்கு எழுத்துக்களை அனுப்பியது” இதுபோன்ற பல ஜோடிகள் இருக்கலாம். (எடுத்துக்காட்டு: 1 வது ஜோடி பயனர் பெயருக்காக காத்திருக்கிறது, இரண்டாவது கடவுச்சொல்லுக்காக காத்திருக்கிறது, மூன்றாவது சலுகை பெற்ற பயன்முறை வரியில் காத்திருக்கிறது, நான்காவது ஜோடி சலுகை பெற்ற பயன்முறை கடவுச்சொல்லுக்காக காத்திருக்கிறது.)

Cisco ASA இல் தானியங்கி உள்நுழைவுக்கான எடுத்துக்காட்டு:

ஸ்கிரிப்ட்களைப் பயன்படுத்தி SecureCRT இல் உள்ளீட்டைத் தானியக்கமாக்குகிறது

SecureCRT இல் ஒரு பொத்தானைக் கொண்டு கைமுறையாகத் தூண்டுகிறது (ஒரு பொத்தான் இன்னும் உருவாக்கி SecureCRT இல் சேர்க்கப்படவில்லை)

SecureCRT இல், நீங்கள் ஒரு பொத்தானுக்கு ஸ்கிரிப்டை ஒதுக்கலாம். இந்த நோக்கத்திற்காக பிரத்யேகமாக உருவாக்கப்பட்ட பேனலில் பொத்தான் சேர்க்கப்பட்டுள்ளது.

ஏ. இடைமுகத்தில் பேனலைச் சேர்த்தல்: SecureCRT மெனு => காட்சி => பொத்தான் பட்டை
பி. பேனலில் ஒரு பொத்தானைச் சேர்த்து, ஸ்கிரிப்டைச் சேர்க்கவும். - பொத்தான் பட்டியில் வலது கிளிக் செய்து சூழல் மெனுவிலிருந்து "புதிய பொத்தான்..." என்பதைத் தேர்ந்தெடுக்கவும்.
வி. "வரைபட பொத்தான்" உரையாடல் பெட்டியில், "செயல்" புலத்தில், "இயக்கு ஸ்கிரிப்ட்" செயலை (செயல்பாடு) தேர்ந்தெடுக்கவும்.
பொத்தானுக்கு ஒரு தலைப்பைக் குறிப்பிடவும். பொத்தான் ஐகானுக்கான நிறம். சரி என்பதைக் கிளிக் செய்வதன் மூலம் அமைப்புகளை முடிக்கவும்.

ஸ்கிரிப்ட்களைப் பயன்படுத்தி SecureCRT இல் உள்ளீட்டைத் தானியக்கமாக்குகிறது

குறிப்பு:

பொத்தான்கள் கொண்ட குழு மிகவும் பயனுள்ள செயல்பாடு.

1. ஒரு குறிப்பிட்ட அமர்வில் உள்நுழையும்போது, ​​இந்த டேப்பில் எந்த பேனலை இயல்புநிலையாகத் திறக்க வேண்டும் என்பதைக் குறிப்பிடுவது சாத்தியமாகும்.

2. உபகரணங்களுடன் நிலையான செயல்களுக்கு முன் வரையறுக்கப்பட்ட செயல்களை அமைக்க முடியும்: ஷோ ஷோ பதிப்பு, ஷோ ரன்னிங்-கட்டமைப்பு, உள்ளமைவைச் சேமிக்கவும்.

ஸ்கிரிப்ட்களைப் பயன்படுத்தி SecureCRT இல் உள்ளீட்டைத் தானியக்கமாக்குகிறது
இந்த பொத்தான்களில் ஸ்கிரிப்ட் இணைக்கப்படவில்லை. செயல் வரி மட்டும்:

ஸ்கிரிப்ட்களைப் பயன்படுத்தி SecureCRT இல் உள்ளீட்டைத் தானியக்கமாக்குகிறது
அமைப்பு - எனவே ஒரு அமர்வுக்கு மாறும்போது, ​​​​அமர்வு அமைப்புகளில் பொத்தான்களுடன் தேவையான பேனல் திறக்கும்:

ஸ்கிரிப்ட்களைப் பயன்படுத்தி SecureCRT இல் உள்ளீட்டைத் தானியக்கமாக்குகிறது
வாடிக்கையாளர் உள்நுழைவுக்கான தனிப்பட்ட ஸ்கிரிப்ட்களை அமைப்பது மற்றும் விற்பனையாளருக்கான அடிக்கடி கட்டளைகளுடன் பேனலுக்குச் செல்வது அர்த்தமுள்ளதாக இருக்கும்.

ஸ்கிரிப்ட்களைப் பயன்படுத்தி SecureCRT இல் உள்ளீட்டைத் தானியக்கமாக்குகிறது
Go Cisco பட்டனை அழுத்தினால், குழு Cisco பட்டன் பட்டைக்கு மாறுகிறது.

ஸ்கிரிப்ட்களைப் பயன்படுத்தி SecureCRT இல் உள்ளீட்டைத் தானியக்கமாக்குகிறது

எளிய மற்றும் மேம்பட்ட ஸ்கிரிப்ட்களைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள். (நிஜ வாழ்க்கையிலிருந்து பயிற்சி.)

எளிமையான ஸ்கிரிப்டுகள் எல்லா சந்தர்ப்பங்களுக்கும் போதுமானது. ஆனால் ஒருமுறை நான் ஸ்கிரிப்டை கொஞ்சம் சிக்கலாக்க வேண்டியிருந்தது - வேலையை விரைவுபடுத்த. இந்தச் சிக்கல் பயனரிடமிருந்து உரையாடல் பெட்டியில் கூடுதல் தரவைக் கோரியது.

உரையாடல் பெட்டியைப் பயன்படுத்தி பயனரிடமிருந்து தரவைக் கோருகிறது

தரவு கோரிக்கை ஸ்கிரிப்டில் என்னிடம் 2 இருந்தது. இது ஹோஸ்ட் பெயர் மற்றும் IP முகவரியின் 4வது எண். இந்தச் செயலைச் செய்ய - அதை எப்படிச் செய்வது என்று கூகுள் செய்து பார்த்தேன், அதை SecureCRT (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 உபகரணங்கள் இருந்ததால். தரவு ஒரு அட்டவணையில் வழங்கப்பட்டது, பின்னர் நான் அட்டவணையில் இருந்து மதிப்புகளை நகலெடுத்து உரையாடல் பெட்டிகளில் ஒட்டினேன். மேலும் ஸ்கிரிப்ட் சுயாதீனமாக வேலை செய்தது.

பிணைய உபகரணங்களுக்கு FTP நகலெடுக்கிறது.

இந்த ஸ்கிரிப்ட் எனது கட்டளை சாளரத்தை (ஷெல்) துவக்கியது மற்றும் FTP வழியாக தரவை நகலெடுத்தது. முடிவில், அமர்வை மூடு. இதற்கு நோட்பேடைப் பயன்படுத்துவது சாத்தியமற்றது, ஏனெனில் நகலெடுப்பது மிக நீண்ட நேரம் எடுக்கும் மற்றும் FTP இடையக தரவு நீண்ட காலத்திற்கு சேமிக்கப்படாது:

# $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()

ஸ்கிரிப்டைப் பயன்படுத்தி பயனர்பெயர்/கடவுச்சொல்லை உள்ளிடுதல்

ஒரு வாடிக்கையாளர் நெட்வொர்க் உபகரணங்களுக்கான அணுகல் நேரடியாக மூடப்பட்டது. முதலில் இயல்புநிலை நுழைவாயிலுடன் இணைப்பதன் மூலம் சாதனத்திற்குள் நுழைய முடிந்தது, அதிலிருந்து அதனுடன் இணைக்கப்பட்ட உபகரணங்களுக்கு. 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 கணக்கிற்கு.

ஸ்கிரிப்ட் செயல்படுத்தும் போது தரவை நேரடியாகச் சேர்க்கும் திறன் கொண்ட ஸ்கிரிப்ட்.

அனைத்து நெட்வொர்க் சாதனங்களிலும் நிலையான வழியைச் சேர்ப்பதே பணி. ஆனால் ஒவ்வொரு உபகரணத்திலும் இணையத்திற்கான நுழைவாயில் வேறுபட்டது (அது இயல்புநிலை நுழைவாயிலிலிருந்து வேறுபட்டது). பின்வரும் ஸ்கிரிப்ட் ரூட்டிங் அட்டவணையைக் காட்டியது, உள்ளமைவு பயன்முறையில் நுழைந்தது, கட்டளையை இறுதிவரை எழுதவில்லை (இணையத்திற்கான நுழைவாயிலின் ஐபி முகவரி) - நான் இந்த பகுதியைச் சேர்த்தேன். நான் Enter ஐ அழுத்திய பிறகு, ஸ்கிரிப்ட் தொடர்ந்து கட்டளையை இயக்குகிறது.

# $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 ") கேட்வேயின் IP முகவரி சேர்க்கப்படவில்லை மற்றும் வண்டி திரும்பும் எழுத்து இல்லை. ஸ்கிரிப்ட் "(config) #" எழுத்துக்களுடன் அடுத்த வரிக்காக காத்திருக்கிறது, நான் ஐபி முகவரியை உள்ளிட்டு உள்ளிட்ட பிறகு இந்த எழுத்துக்கள் தோன்றின.

முடிவு:

ஒரு ஸ்கிரிப்டை எழுதி அதை இயக்கும் போது, ​​விதியைப் பின்பற்ற வேண்டும்: ஒரு ஸ்கிரிப்டை எழுதுவதற்கும் ஸ்கிரிப்டை இயக்குவதற்குமான நேரம் கோட்பாட்டளவில் அதே வேலையை கைமுறையாகச் செய்வதற்கு (நோட்பேடில் இருந்து நகலெடுக்கவும் / ஒட்டவும், எழுதுதல் மற்றும் பிழைத்திருத்தம் செய்தல்) நேரத்தை விட அதிகமாக இருக்கக்கூடாது. பைதான் ஸ்கிரிப்ட் எழுதுதல் மற்றும் பிழைத்திருத்தம் செய்வதற்கான ஒரு விளையாட்டு புத்தகம்). அதாவது, ஸ்கிரிப்ட்டின் பயன்பாடு நேரத்தை மிச்சப்படுத்த வேண்டும், மேலும் செயல்முறைகளின் ஒரு முறை ஆட்டோமேஷனில் நேரத்தை வீணாக்காமல் இருக்க வேண்டும் (அதாவது, ஸ்கிரிப்ட் தனித்துவமாக இருக்கும் போது மேலும் மீண்டும் மீண்டும் வராது). ஆனால் ஸ்கிரிப்ட் தனித்துவமானது மற்றும் ஸ்கிரிப்டுடன் ஆட்டோமேஷன் மற்றும் ஸ்கிரிப்டை எழுதுதல் / பிழைத்திருத்தம் செய்வது வேறு எந்த வகையிலும் (ansible, கட்டளை சாளரம்) செய்வதை விட குறைவான நேரம் எடுக்கும் என்றால், ஸ்கிரிப்ட் சிறந்த தீர்வாகும்.
ஸ்கிரிப்ட் பிழைத்திருத்தம். ஸ்கிரிப்ட் படிப்படியாக வளர்கிறது, முதல், இரண்டாவது, மூன்றாவது சாதனத்தில் பிழைத்திருத்தம் நடைபெறுகிறது, மேலும் நான்காவது ஸ்கிரிப்ட் முழுமையாக செயல்படும்.

ஒரு ஸ்கிரிப்டை இயக்குவது (பயனர்பெயர்+கடவுச்சொல்லை உள்ளிடுவதன் மூலம்) பொதுவாக நோட்பேடில் இருந்து பயனர்பெயர் மற்றும் கடவுச்சொல்லை நகலெடுப்பதை விட வேகமானது. ஆனால் பாதுகாப்புக் கண்ணோட்டத்தில் பாதுகாப்பாக இல்லை.
ஸ்கிரிப்டைப் பயன்படுத்தும் போது மற்றொரு (உண்மையான) உதாரணம்: நெட்வொர்க் உபகரணங்களுக்கான நேரடி அணுகல் உங்களிடம் இல்லை. ஆனால் அனைத்து நெட்வொர்க் உபகரணங்களையும் உள்ளமைக்க வேண்டிய அவசியம் உள்ளது (கண்காணிப்பு அமைப்பிற்குள் கொண்டு வாருங்கள், கூடுதல் பயனர்பெயர்/கடவுச்சொல்/snmpv3username/password ஐ உள்ளமைக்கவும்). நீங்கள் கோர் சுவிட்ச் செல்லும்போது அணுகல் உள்ளது, அதிலிருந்து நீங்கள் மற்ற உபகரணங்களுக்கு SSH ஐ திறக்கிறீர்கள். நீங்கள் ஏன் Ansible ஐப் பயன்படுத்த முடியாது. - நெட்வொர்க் உபகரணங்களில் (வரி 0 4, பயனர் இடைமுகம் vty 0 4) அனுமதிக்கப்பட்ட ஒரே நேரத்தில் அமர்வுகளின் எண்ணிக்கையில் வரம்பிற்குள் வருகிறோம்.

ஸ்கிரிப்ட் நீண்ட செயல்பாடுகளின் போது நேரத்தை குறைக்கிறது - எடுத்துக்காட்டாக, FTP வழியாக கோப்புகளை நகலெடுக்கிறது. நகலெடுத்தல் முடிந்ததும், ஸ்கிரிப்ட் உடனடியாக வேலை செய்யத் தொடங்குகிறது. ஒரு நபர் நகலெடுப்பதன் முடிவைப் பார்க்க வேண்டும், பின்னர் நகலெடுக்கும் முடிவை உணர்ந்து, பின்னர் பொருத்தமான கட்டளைகளை உள்ளிடவும். ஸ்கிரிப்ட் அதை புறநிலையாக வேகமாக செய்கிறது.

வெகுஜன டேட்டா டெலிவரி கருவிகளைப் பயன்படுத்த முடியாத இடங்களில் ஸ்கிரிப்ட்கள் பொருந்தும்: கன்சோல். அல்லது உபகரணங்களுக்கான சில தரவு தனிப்பட்டதாக இருக்கும்போது: ஹோஸ்ட்பெயர், மேலாண்மை ஐபி முகவரி. அல்லது ஒரு நிரலை எழுதும் போது மற்றும் பிழைத்திருத்தம் செய்யும் போது ஸ்கிரிப்ட் இயங்கும் போது சாதனத்திலிருந்து பெறப்பட்ட தரவைச் சேர்ப்பதை விட கடினமாக உள்ளது. - ஒவ்வொரு சாதனமும் இணைய வழங்குநரின் சொந்த ஐபி முகவரியைக் கொண்டிருக்கும் போது, ​​ஒரு வழியை பரிந்துரைப்பதற்கான ஸ்கிரிப்ட் கொண்ட உதாரணம். (எனது சகாக்கள் அத்தகைய ஸ்கிரிப்ட்களை எழுதினார்கள் - DMVPN பேசியபோது 3 க்கு மேல் இருந்தது. DMVPN அமைப்புகளை மாற்ற வேண்டியது அவசியம்).

வழக்கு ஆய்வு: கன்சோல் போர்ட்களைப் பயன்படுத்தி புதிய சுவிட்சில் ஆரம்ப அமைப்புகளை உள்ளமைத்தல்:

A. கன்சோல் கேபிளை சாதனத்தில் செருகியது.
பி. ஸ்கிரிப்டை இயக்கவும்
பி. ஸ்கிரிப்ட்டின் செயல்பாட்டிற்காக காத்திருந்தார்
D. அடுத்த சாதனத்தில் கன்சோல் கேபிளைச் செருகியது.
E. சுவிட்ச் கடைசியாக இல்லாவிட்டால், படி B க்குச் செல்லவும்.

ஸ்கிரிப்ட்டின் வேலையின் விளைவாக:

  • ஆரம்ப கடவுச்சொல் சாதனத்தில் அமைக்கப்பட்டுள்ளது.
  • பயனர் பெயர் உள்ளிடப்பட்டது
  • சாதனத்தின் தனிப்பட்ட ஐபி முகவரி உள்ளிடப்பட்டுள்ளது.

PS அறுவை சிகிச்சை மீண்டும் செய்யப்பட வேண்டும். ஏனெனில் இயல்புநிலை ssh கட்டமைக்கப்படவில்லை/முடக்கப்படவில்லை. (ஆம், இது என் தவறு.)

பயன்படுத்திய ஆதாரங்கள்.

1. ஸ்கிரிப்ட்களை உருவாக்குவது பற்றி
2. ஸ்கிரிப்ட் எடுத்துக்காட்டுகள்

பின் இணைப்பு 1: மாதிரி ஸ்கிரிப்டுகள்.


இரண்டு வினவல்களைக் கொண்ட நீண்ட ஸ்கிரிப்ட்டின் உதாரணம்: ஹோஸ்ட்பெயர் மற்றும் ஐபி முகவரி. கன்சோல் (9600 பாட்) மூலம் உபகரணங்களை முன்னமைப்பதற்காக இது உருவாக்கப்பட்டது. மேலும் நெட்வொர்க்குடன் உபகரணங்களை இணைக்கவும்.

# $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 பிசிக்கள் ஆகும். விரைவான அமைவு அனுமதிக்கப்படுகிறது. 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 மற்றும் Windows இயங்குதளங்களில் வேலை செய்கிறது.

ஸ்கிரிப்ட் ஆதரவு உள்ளது (இந்த கட்டுரை)
உள்ளன கட்டளை சாளரம்
தொடர்/டெல்நெட்/SSH1/SSH2/ஷெல் இயக்க முறைமை

ஆதாரம்: www.habr.com