Shelli skript telneti ja käskude jaoks

On loodud shellskript, mis omab automaatset telneti omadusi ja täidab teiste masinate jaoks käskkäsklusi, lõpetades telneti seansi ilma kasutaja interaktsioonita. Kasutaja peab lihtsalt käivitama shelliskripti või helistama teisest skriptist. See on Linuxi jaoks laialdaselt rakendatav, kuid UNIX-i jaoks on vaja TCL- ja INSTALL-pakettide eelinstallimist. Expect käsu installimiseks on eraldi kataloog. Konkreetseid käske kasutatakse teise masina ja shelliskripti vahelise vestluse peitmiseks Linuxis. Aadress, kasutajanimi ja parool määratakse skriptile helistamisel. Koori deklareerimiseks on vaja IP-aadressi, mille järel saadetakse käivitatav käsk käsule telnetiseansi lõppu .

Probleem

Olen loonud shelliskripti, mis saab telnet automaatselt käivitada ja käske teisel masinal käivitada ning telnetiseansi lõpetada ilma kasutaja interaktsioonita; kasutaja lihtsalt käitab skripti või kutsub seda teisest skriptist.

Kuid peate oma Unixi süsteemi installima EXPECT ja TCL pakette.

Skript sisaldab järgmisi juhiseid:

#! / usr / local / bin / waiting -f #### / usr / local / bin / wait on kataloog, kuhu oodati,

log_user 0 #### seda käsku kasutatakse skripti ja teise masina vahelise vestluse peitmiseks

määratud aadress [lindex $ argv 0] ### määrab esimese läbitud parameetri skripti helistamisel $-aadressile

määrake kasutajanimi [lindex $ argv 1] ### määrake 2. läbitud parameeter, kutsudes skripti $ kasutajanimi

seadistage parool [lindex $ argv 2] ​​### määrake kolmas läbitud parameeter, kutsudes skripti $ paroolile

spawn telnet $ {address} ### alustage telnetiseanssi masinaga, mille IP aadress on $ =

### alustage masinaga vestlust:

oota "login"

saatke - "$ {kasutajanimi} \ t

oodata parooli:

saatke - "$ {password}

oodata "$"

saatke - "#! / bin / ksh r" ### kuulutab kasutatava kesta (valikuline)

oodata "$"

saatke - "### tippige talle käsk, mida soovite täita"

oodata "$"

send - "exit r" ### lõpetab telnetiseansi ja väljub skriptist

Selle skripti täitmiseks kirjutasin:

$ wait_script "aadress" "kasutajanimi" "parool" ### skripti nimi on "wait_script"

Aga enne, kui ootate skripti, peaksite tegema eeldatava skripti käivitatava ja seda saab teha kirjutades:

$ chmod + x wait_script

Lahendus

Proovi seda:

 #! / usr / local / bin / wait spawn telnet wait "logi sisse:" saatke "n" oodake "parool:" Saada "n" Saada "bash n" Saada "cd / opt \ t ltr n "? (kui sa ei anna, siis ootab see teie vastust või peate sisestama sisestuse käsitsi). suhelda 

"Ootuse" käsu täitmine ootab -f

Ex: oodata -f .expect

Märge

Täname ZooZoo selle foorumi vihje eest.

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited