Shell skript za ukaze telnet in run

Oblikovan je bil lupinski skript, ki ima funkcije avtomatskega telneta in izvaja ukaze za druge stroje, s čimer konča sejo telneta brez kakršne koli interakcije uporabnika. Uporabnik mora samo zagnati ukazno lupino ali poklicati funkcijo iz drugega skripta. To je široko uporabno za Linux, vendar je za sistem UNIX potrebno predhodno namestiti pakete TCL in INSTALL. Obstaja poseben imenik za namestitev ukaza Expect. Posebni ukazi se uporabljajo za skrivanje pogovora med drugim strojem in ukazno lupino v Linuxu. Naslov, uporabniško ime in geslo sta dodeljeni med klicanjem skripta. Za prijavo lupine je potreben naslov IP, po katerem se pošlje ukaz za izvajanje, ki ga je treba izvesti, označuje konec seje telnet.

Težava

Naredil sem lupinski skript, ki lahko samodejno telnetira in izvaja ukaze na drugem stroju in konča sejo telnet brez interakcije uporabnika; uporabnik samo zažene skript ali ga pokliče iz drugega skripta.

Vendar pa morate v svoj sistem Unix namestiti EXPECT in TCL pakete.

Skript vsebuje naslednja navodila:

#! / usr / local / bin / expect -f #### / usr / local / bin / expect je imenik, kjer je bilo nameščeno pričakovanje

log_user 0 #### Ta ukaz se uporablja za skrivanje pogovora med skriptom in drugim računalnikom

set address [lindex $ argv 0] ### dodeli prvi opravljeni parameter, medtem ko kliče skript na $ address

set username [lindex $ argv 1] ### dodeli drugi podani parameter, medtem ko kliče skript na $ username

set password [lindex $ argv 2] ​​### dodeli tretji opravljeni parameter, medtem ko kliče skript v $ password

spawn telnet $ {address} ### zaženite sejo telnet za stroj z naslovom IP = $

### začnite pogovor z napravo:

pričakujejo "prijavo:"

send - "$ {username}" \ t

Pričakujte »Geslo:«

send - "$ {password}" \ t

pričakujejo "$"

send - "#! / bin / ksh \ _" ### \ t

pričakujejo "$"

pošlji - "### vnesite kateri koli ukaz, ki ga želite izvesti"

pričakujejo "$"

send - "exit" ### konča sejo telnet in zapusti skript

Za izvedbo tega skripta sem vnesel:

$ expect_script "address" "username" "password" ### ime skripta je "expect_script"

Toda preden pokličete pričakovani scenarij, morate narediti izvedljivo skripto pričakovanj, to pa lahko storite z vnosom:

$ chmod + x expect_script

Rešitev

Poskusite to:

 #! / usr / local / bin / expect spawn telnet pričakuje "prijava:" pošlji "" pričakuje "geslo:" send "n" send "bash" pošlji "cd / opt ltr n "? (če ne podajate, bo počakalo na vaš odgovor ali boste morali ročno vnesti vnos). interakcijo 

Kako izvesti ukaz "pri? Akujte" pri? Akovati -f

Ex: pričakuj -f .expect

Opomba

Hvala za ZooZoo za ta nasvet na forumu.

Prejšnji Članek Naslednji Članek

Top Nasveti