GNU/Linux >> Tutoriels Linux >  >> Linux

automatiser la session telnet à l'aide de scripts bash

Écrivez un expect script.

Voici un exemple :

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

Pour exécuter :

./myscript.expect name user password

Alors que je suggérerais d'utiliser expect , aussi, pour une utilisation non interactive, les commandes shell normales peuvent suffire. telnet accepte sa commande sur stdin, il vous suffit donc de diriger ou d'écrire les commandes dedans via heredoc :

telnet 10.1.1.1 <<EOF
remotecommand 1
remotecommand 2
EOF

(Edit :à en juger par les commentaires, la commande à distance a besoin d'un certain temps pour traiter les entrées ou le premier SIGHUP n'est pas pris gracieusement par telnet . Dans ces cas, vous pouvez essayer un court sommeil sur l'entrée :)

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

Dans tous les cas, si cela devient interactif ou quoi que ce soit, utilisez expect .


Telnet est souvent utilisé lorsque vous apprenez le protocole HTTP. J'avais l'habitude d'utiliser ce script dans le cadre de mon 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

disons que le nom du script est get-page.sh alors :

get-page.sh | telnet

vous donnera un document html.

J'espère que cela sera utile à quelqu'un;)


Linux
  1. Utilisation de Bash pour l'automatisation

  2. Ajouter des arguments et des options à vos scripts Bash

  3. Transférer des fichiers en utilisant lftp dans un script bash

  4. Comment ajouter un travail crontab à crontab à l'aide d'un script bash ?

  5. Exécutez la commande bash sur le pipeline jenkins

Comment afficher les boîtes de dialogue de l'interface graphique dans le script bash à l'aide de Zenity

Bash Scripting - Analyser les arguments dans les scripts Bash à l'aide de getopts

Utilisation de la commande Linux Dirname dans les scripts Bash

Bash Beginner Series #3 :Passer des arguments aux scripts Bash

Utilisation des règles udev pour exécuter un script sur l'insertion USB

Automatisation de la saisie textuelle à partir d'un script bash sans utiliser EOF