Skrip Shell untuk telnet dan jalankan perintah
Isu
Saya telah membuat skrip shell yang boleh telnet secara automatik dan menjalankan arahan pada mesin lain dan menamatkan sesi telnet tanpa interaksi dari pengguna; pengguna hanya menjalankan skrip atau memanggilnya dari skrip lain.
Tetapi anda perlu memasang pakej EXPECT dan TCL pada sistem Unix anda.
Skrip mengandungi arahan berikut:
#! / usr / local / bin / expect -f #### / usr / local / bin / expect adalah directory where expect installed
log_user 0 #### perintah ini digunakan untuk menyembunyikan perbualan di antara skrip dan mesin yang lain
tetapkan alamat [lindex $ argv 0] ### tetapkan parameter berlalu pertama ketika memanggil skrip ke alamat $
tetapkan nama pengguna [lindex $ argv 1] ### tetapkan parameter berlalu ke-2 sambil memanggil skrip ke $ nama pengguna
tetapkan kata laluan [lindex $ argv 2] ### tetapkan parameter lulus ke-3 sambil memanggil skrip ke $ kata laluan
menelurkan telnet $ {address} ### mulailah sesi telnet ke mesin dengan IP = alamat $
### mulakan perbualan dengan mesin:
menjangkakan "log masuk:"
hantar - "$ {username} \ r"
menjangkakan "Kata Laluan:"
hantar - "$ {password} \ r"
mengharapkan "$"
hantar - "#! / bin / ksh \ r" ### mengisytiharkan shell untuk digunakan (pilihan)
mengharapkan "$"
hantar - "### taipkan arahannya yang anda hendak laksanakan"
mengharapkan "$"
hantar - "keluar" ### tamatkan sesi telnet dan keluar dari skrip
Untuk melaksanakan skrip ini, saya menaip:
$ expect_script "address" "username" "password" ### nama skrip adalah "expect_script"
Tetapi sebelum anda memanggil skrip yang dijangkakan, anda harus membuat skrip menjangka dapat dieksekusi, dan ini boleh dilakukan dengan menaip:
$ chmod + x expect_script
Penyelesaian
Cuba ini:
#! / usr / local / bin / mengharapkan telnet menjangkakan mengharapkan "log masuk:" hantar "\ n" mengharapkan "Kata laluan:" hantarkan " ltr \ n "? (jika anda tidak memberi \ n maka ia akan menunggu tindak balas anda atau anda perlu mengetik masuk secara manual). berinteraksi
Bagaimana untuk melaksanakan arahan "mengharapkan" mengharapkan -f
Ex: mengharapkan -f .expect
Catatan
Terima kasih kepada ZooZoo untuk tip ini di forum.