Shell-skripti telnetille ja komentokäskyille
Ongelma
Olen tehnyt shell-skriptin, joka voi telnetoida automaattisesti ja suorittaa komentoja toisella koneella ja lopettaa telnet-istunnon ilman käyttäjän välistä vuorovaikutusta; käyttäjä suorittaa vain komentosarjan tai kutsuu sitä toisesta käsikirjoituksesta.
Mutta sinun on asennettava EXPECT- ja TCL-paketit Unix-järjestelmään.
Skripti sisältää seuraavat ohjeet:
#! / usr / local / bin / wait -f #### / usr / local / bin / wait on hakemisto, johon odotettiin asennettuna
log_user 0 #### tätä komentoa käytetään piilottamaan komentosarjan ja toisen laitteen välinen keskustelu
asetettu osoite [lindex $ argv 0] ### määrittelee ensimmäisen ohjatun parametrin soittamalla komentosarjan $-osoitteeseen
asettaa käyttäjätunnus [lindex $ argv 1] ### määrittele 2. siirretyn parametrin samalla kun soitat komentosarjan $ -käyttäjälle
aseta salasana [lindex $ argv 2] ### määrittele kolmannen hyväksytyn parametrin soittaessasi komentosarjan $ salasanaan
spawn telnet $ {address} ### aloita telnet-istunto koneeseen IP-osoitteen avulla
### aloita keskustelu laitteen kanssa:
odottaa "kirjautumista:"
lähetä - "$ {username} \ t
odottaa "Salasana:"
lähetä - "$ {password}
odottaa "$"
lähetä - "#! / bin / ksh r" ### ilmoittaa käytettävän kuoren (valinnainen)
odottaa "$"
lähetä - "### kirjoita hänelle haluamasi komento"
odottaa "$"
send - "exit r" ### lopeta telnet-istunto ja sulje komentosarja
Voit suorittaa tämän komentosarjan kirjoittamalla:
$ wait_script "osoite" "käyttäjätunnus" "salasana" ### komentosarjan nimi on "odottaa_sisältöä"
Mutta ennen kuin kutsut odottavaa komentosarjaa, sinun pitäisi tehdä odotettavissa oleva komentosarja, ja tämä voidaan tehdä kirjoittamalla:
$ chmod + x wait_script
Ratkaisu
Kokeile tätä:
#! / usr / local / bin / odottaa spawn telnet odottaa "kirjaudu" "lähetä" n "odottaa" Salasana: "Lähetä" n "Lähetä" bash n "Lähetä" cd / opt n "Lähetä" ls - ltr n "? (jos et anna n, se odottaa vastausta tai sinun täytyy kirjoittaa kirjoitus manuaalisesti). olla vuorovaikutuksessa
"Odota" -komennon suorittaminen odottaa -f
Ex: odottaa -f. Odottaa
Huomautus
Kiitos ZooZoon tästä vinkistä foorumissa.