GNU/Linux >> Znalost Linux >  >> Linux

automatizace relace telnet pomocí bash skriptů

Napište expect skript.

Zde je příklad:

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

Chcete-li spustit:

./myscript.expect name user password

I když bych doporučil použít expect , také pro neinteraktivní použití mohou stačit normální příkazy shellu. telnet přijímá svůj příkaz na stdin, takže do něj stačí příkazy přenést nebo zapsat přes heredoc:

telnet 10.1.1.1 <<EOF
remotecommand 1
remotecommand 2
EOF

(Upravit:Soudě podle komentářů potřebuje vzdálený příkaz nějaký čas na zpracování vstupů nebo časné SIGHUP telnet ho nebere elegantně . V těchto případech můžete zkusit krátký spánek na vstupu:)

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

V každém případě, pokud začíná být interaktivní nebo cokoli jiného, ​​použijte expect .


Telnet se často používá, když se učíte protokol HTTP. Používal jsem tento skript jako součást mého webového škrabáku:

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

řekněme, že název skriptu je get-page.sh, pak:

get-page.sh | telnet

vám poskytne html dokument.

Doufám, že to někomu pomůže;)


Linux
  1. Přidání argumentů a voleb do vašich Bash skriptů

  2. Použít rozšíření .sh nebo .bash pro skripty Bash?

  3. Použití příkazu Linux Basename ve skriptech Bash

  1. Jak zvýraznit Bash skripty ve Vimu?

  2. Jak nahradit mezery v názvech souborů pomocí bash skriptu

  3. Přeneste soubory pomocí lftp v bash skriptu

  1. Použití Bash pro automatizaci

  2. Jak zjistit, zda jsem v relaci Tmux ze skriptu Bash?

  3. Použití Linux Sleep Command ve skriptech Bash