Avatar billede morell Nybegynder
13. november 2001 - 14:59 Der er 4 kommentarer og
1 løsning

telnet fra et shell script.

Hvad er lige parameteren for at telnet fra et shell script? Problemet er at hvis jeg bruger:
telnet -l brugernavn ip
så bliver jeg promptet for password.

telnet 192.168.100.220<<TILHER
brugernavn
password
TILHER

virker heller ikke...

Hvordan gør jeg lige dette?

Mvh.

Asbjørn Morell
Avatar billede thomasledet Nybegynder
13. november 2001 - 17:54 #1
du kan ikke bare sende dit password med som parameter til telnet. Det skal indtastes manuel.

Du kan dog lave et wrapper omkring telnet med fx script-sproget expect.

eksempel:

#!/usr/bin/expect

spawn /usr/bin/telnet 127.0.0.1

expect -exact \"Login: \"
send \"brugernavn\\r\"
expect -exact \"Password: \"
send \"password\\r\"
send \"lir og andre ting\\r\"
expect -exact \"svar fra lir og andre ting\"
send \"quit\"
expect eof
Avatar billede morell Nybegynder
13. november 2001 - 18:20 #2
Hej Thomas

Jeg kunne vel ikke overtale dig til at liste et par få ord ind imellem hver linje? (lille forklaring om hvad du gør?)  Hvad skal undertegnede bruges til?:

send \"lir og andre ting\\r\"
expect -exact \"svar fra lir og andre ting\"

Hvad skal jeg ændre på (password og brugernavn).

Det vil alså sige at jeg kan sætte denne wrapper i starten af mit script.. hente 2 variabler, og derfra gå videre med min rutine.. til ftp jobbet?

Mvh.

Asbjørn Morell
Avatar billede thomasledet Nybegynder
13. november 2001 - 21:29 #3
send \"lir og andre ting\\r\"
-> sender \"lirt og andre ting\" direkte gennem telnet forbindelsen
expect -exact \"svar fra lir og andre ting\"
-> tester om det svar, der kommer tilbage er \"svar og andre ting\"

det kunne fx være ved en telnet forbindelse, at efter du har sendt passwordet, så vil du godt vide om login gik godt eller ej...
Avatar billede morell Nybegynder
14. november 2001 - 08:44 #4
ok Thomasledet.

Din wrapper fungere fremragende!! Men hvorfor kan jeg ikke gøre undertegnede.

#!/usr/bin/expect

spawn /usr/bin/telnet 192.168.x.x

expect -exact \"Login: \"
send \"atm\\r\"
expect -exact \"Password: \"
send \"atmpassword\\r\"

send \"su root\\r\"
expect -exact \"Password: \"
send \"rootpassword\\r\"

expect eof

#!/bin/sh
variable=`ls -rt /etc|tail -1`

Den køre hele wrapperen fint igennem... men når jeg prøver på at bruge en bash kommando så giver den fejl:

invalid command name \"variable=`ls\"
    while executing
\"variable=`ls -rt /etc|tail -1`\"
    (file \"./wrapper\" line 17)
[root@linux3 atm]#

Er det mig der griber det forkert an?

Mvh.

Asbjørn Morell
Avatar billede thomasledet Nybegynder
14. november 2001 - 17:47 #5
ja... et script kan kun benytte sig af een compiler... du kan ikke bare skrive #!/usr/bin/expect og så ti linier senere skrive #!/usr/bin/sh...

du bliver nødt til at gøre det af to omgange... først køre expect-scriptet og så lade en variablel derfra køre med som parameter i dit sh-script...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester