Shell-script voor telnet- en run-opdrachten

Er is een shell-script ontworpen met de kenmerken van automatisch telnet en voert opdrachtopdrachten uit voor andere machines, waardoor de sessie van telnet wordt beëindigd zonder enige vorm van interactie van de gebruiker. De gebruiker hoeft alleen het shellscript uit te voeren of de functie vanuit een ander script aan te roepen. Dit is breed toepasbaar voor Linux, maar voor het UNIX- systeem is voorafgaande installatie van TCL- en INSTALL-pakketten vereist. Er is een aparte directory voor het installeren van de Expect-opdracht. Specifieke opdrachten worden gebruikt om de conversatie tussen de andere machine en het shellscript in Linux te verbergen. Adres, gebruikersnaam en wachtwoord worden toegewezen tijdens het aanroepen van het script. Het IP-adres is vereist voor het declareren van de shell, waarna het uit te voeren runcommando wordt verzonden dat het einde van de telnet-sessie markeert .

Kwestie

Ik heb een shellscript gemaakt dat automatisch kan telnetten en opdrachten kan uitvoeren op de andere machine en de telnet-sessie kan beëindigen zonder enige interactie van de gebruiker; de gebruiker voert alleen het script uit of roept het vanuit een ander script.

Maar u moet EXPECT- en TCL-pakketten op uw Unix-systeem installeren.

Het script bevat de volgende instructies:

#! / usr / local / bin / expect -f #### / usr / local / bin / expect is de directory waar verwacht werd geïnstalleerd

log_user 0 #### deze opdracht wordt gebruikt om de conversatie tussen het script en de andere machine te verbergen

adres instellen [lindex $ argv 0] ### wijs de eerst doorgegeven parameter toe terwijl het script naar $ address wordt aangeroepen

gebruikersnaam instellen [lindex $ argv 1] ### wijs de parameter 2nd passed toe terwijl het script wordt gebeld naar $ gebruikersnaam

set password [lindex $ argv 2] ​​### wijs de parameter 3rd passed toe terwijl het script naar $ password wordt gebeld

spawn telnet $ {address} ### start de telnet-sessie naar computer met IP = $ adres

### start gesprek met de machine:

verwacht "login:"

verzenden - "$ {gebruikersnaam} \ r"

verwacht "Wachtwoord:"

verzend - "$ {wachtwoord} \ r"

verwacht "$"

send - "#! / bin / ksh \ r" ### declare the shell to use (optioneel)

verwacht "$"

verzend - "### typ haar elke opdracht die u wilt uitvoeren"

verwacht "$"

verzend - "exit \ r" ### beëindig de telnet-sessie en verlaat het script

Om dit script uit te voeren, typte ik:

$ expect_script "adres" "gebruikersnaam" "wachtwoord" ### de scriptnaam is "expect_script"

Maar voordat u het expect-script belt, moet u het verwachte script uitvoerbaar maken, en dit kan gedaan worden door te typen:

$ chmod + x expect_script

Oplossing

Probeer dit:

 #! / usr / local / bin / verwachten dat spawn telnet verwacht "login:" send "\ n" verwacht "Password:" send "\ n" send "bash \ n" send "cd / opt \ n" send "ls - ltr \ n "? (als u niet geeft \ n dan zal het wachten op uw reactie of u moet handmatig typen). op elkaar inwerken 

Hoe het "verwacht" commando uit te voeren -f

Ex: verwacht -f. Verwacht

Notitie

Bedankt aan ZooZoo voor deze tip op het forum.

Vorige Artikel Volgende Artikel

Top Tips