GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Automatisierung der Telnet-Sitzung mit Bash-Skripten

Schreiben Sie ein expect Skript.

Hier ist ein Beispiel:

#!/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

Ausführen:

./myscript.expect name user password

Während ich vorschlagen würde, expect zu verwenden Auch für die nicht-interaktive Verwendung können die normalen Shell-Befehle ausreichen. telnet akzeptiert seinen Befehl auf stdin, also müssen Sie die Befehle einfach über heredoc hineinleiten oder hineinschreiben:

telnet 10.1.1.1 <<EOF
remotecommand 1
remotecommand 2
EOF

(Edit:Den Kommentaren nach zu urteilen, braucht der Remote-Befehl etwas Zeit, um die Eingaben oder das frühe SIGHUP zu verarbeiten wird von telnet nicht ordnungsgemäß übernommen . In diesen Fällen können Sie versuchen, den Eingang kurz zu schlafen :)

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

Wenn es interaktiv wird oder so, verwenden Sie auf jeden Fall expect .


Telnet wird oft verwendet, wenn Sie das HTTP-Protokoll lernen. Ich habe dieses Skript früher als Teil meines Web-Scrapers verwendet:

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

Nehmen wir an, der Name des Skripts ist get-page.sh, dann:

get-page.sh | telnet

gibt Ihnen ein HTML-Dokument.

Hoffe, es wird jemandem helfen;)


Linux
  1. Verwenden von Bash für die Automatisierung

  2. Hinzufügen von Argumenten und Optionen zu Ihren Bash-Skripten

  3. Verwenden Sie die Erweiterung .sh oder .bash für Bash-Skripte?

  4. Verwenden des Linux-Sleep-Befehls in Bash-Skripten

  5. Verwenden des Linux-Basisnamenbefehls in Bash-Skripten

So zeigen Sie GUI-Dialoge in Bash-Skripten mit Zenity an

Bash-Skripting – Analysieren Sie Argumente in Bash-Skripten mithilfe von getopts

Verwenden des Linux-Dirname-Befehls in Bash-Skripten

Bash-Anfängerserie Nr. 3:Übergabe von Argumenten an Bash-Skripte

Verwenden von udev-Regeln zum Ausführen eines Skripts beim USB-Einstecken

Automatisieren der Texteingabe aus einem Bash-Skript ohne Verwendung von EOF