GNU/Linux >> Belajar Linux >  >> Linux

mengotomatiskan sesi telnet menggunakan skrip bash

Tulis expect skrip.

Ini contohnya:

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

Untuk menjalankan:

./myscript.expect name user password

Sementara saya menyarankan menggunakan expect , juga, untuk penggunaan non-interaktif, perintah shell normal mungkin cukup. telnet menerima perintahnya di stdin, jadi Anda hanya perlu mem-pipe atau menulis perintah ke dalamnya melalui heredoc:

telnet 10.1.1.1 <<EOF
remotecommand 1
remotecommand 2
EOF

(Sunting:Menilai dari komentar, perintah jarak jauh memerlukan waktu untuk memproses input atau SIGHUP awal tidak dianggap baik oleh telnet . Dalam kasus ini, Anda dapat mencoba tidur sebentar pada masukan:)

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

Bagaimanapun, jika menjadi interaktif atau apa pun, gunakan expect .


Telnet sering digunakan saat Anda mempelajari protokol HTTP. Saya biasa menggunakan skrip itu sebagai bagian dari web-scraper saya:

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

katakanlah nama skripnya adalah get-page.sh lalu:

get-page.sh | telnet

akan memberi Anda dokumen html.

Semoga ini bisa membantu seseorang;)


Linux
  1. Menggunakan Bash untuk otomatisasi

  2. Menambahkan argumen dan opsi ke skrip Bash Anda

  3. Gunakan Ekstensi .sh Atau .bash Untuk Skrip Bash?

  1. Bagaimana Mengenalinya Jika Saya Dalam Sesi Tmux Dari Skrip Bash?

  2. Menggunakan Perintah Tidur Linux di Skrip Bash

  3. Menggunakan Perintah Nama Dasar Linux di Skrip Bash

  1. Bagaimana cara menyorot skrip Bash di Vim?

  2. Cara mengganti spasi pada nama file menggunakan skrip bash

  3. Bagaimana cara mengecek akses internet menggunakan skrip bash di linux?