GNU/Linux >> Linux Esercitazione >  >> Linux

automatizzare la sessione telnet utilizzando gli script bash

Scrivi un expect script.

Ecco un esempio:

#!/usr/bin/expect

#If it all goes pear shaped the script will timeout after 20 seconds.
set timeout 20
#First argument is assigned to the variable name
set name [lindex $argv 0]
#Second argument is assigned to the variable user
set user [lindex $argv 1]
#Third argument is assigned to the variable password
set password [lindex $argv 2]
#This spawns the telnet program and connects it to the variable name
spawn telnet $name 
#The script expects login
expect "login:" 
#The script sends the user variable
send "$user "
#The script expects Password
expect "Password:"
#The script sends the password variable
send "$password "
#This hands control of the keyboard over to you (Nice expect feature!)
interact

Per eseguire:

./myscript.expect name user password

Mentre suggerirei di usare expect anche per un uso non interattivo potrebbero bastare i normali comandi della shell. telnet accetta il suo comando su stdin, quindi devi solo reindirizzare o scrivere i comandi in esso tramite heredoc:

telnet 10.1.1.1 <<EOF
remotecommand 1
remotecommand 2
EOF

(Modifica:a giudicare dai commenti, il comando remoto ha bisogno di un po' di tempo per elaborare gli input o il primo SIGHUP non è preso con garbo da telnet . In questi casi, potresti provare a sospendere brevemente l'input:)

{ echo "remotecommand 1"; echo "remotecommand 2"; sleep 1; } | telnet 10.1.1.1

In ogni caso, se sta diventando interattivo o altro, usa expect .


Telnet viene spesso utilizzato quando impari il protocollo HTTP. Usavo quello script come parte del mio web-scraper:

echo "open www.example.com 80" 
sleep 2 
echo "GET /index.html HTTP/1.1" 
echo "Host: www.example.com" 
echo 
echo 
sleep 2

diciamo che il nome dello script è get-page.sh quindi:

get-page.sh | telnet

ti darà un documento html.

Spero che possa essere utile a qualcuno;)


Linux
  1. Utilizzo di Bash per l'automazione

  2. Utilizzare l'estensione .sh o .bash per gli script Bash?

  3. Utilizzo del comando Linux Basename negli script Bash

  4. Trasferisci i file usando lftp nello script bash

  5. Esegui il comando bash sulla pipeline jenkins

Come visualizzare le finestre di dialogo della GUI nello script bash usando Zenity

Bash Scripting – Analizza gli argomenti negli script Bash usando getopts

Utilizzo del comando Linux Dirname negli script Bash

Bash Beginner Series #3:Passare argomenti agli script Bash

Utilizzo delle regole udev per eseguire uno script all'inserimento USB

Automatizzazione dell'input testuale da uno script bash senza utilizzare EOF