我試圖在後臺運行多個使用shell腳本的expect實例,但實際發生的情況是,當shell腳本甚至終止時在運行shell腳本並期望在後臺運行腳本之後。下面是兩個腳本 -在後臺通過shell腳本運行多個expect實例來收集日誌
shell腳本 - shell_script.sh
#!/bin/bash
echo "shell script"
expect expect_script.sh abc1.com user_id password >> /var/logs/abc1.log &
sleep 5
expect expect_script.sh abc2.com user_id password >> /var/logs/abc1.log &
Expect腳本 - expect_script.sh
#!/usr/bin/expect
set timeout 20
set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
spawn telnet $ip
expect "User Access Verification"
expect "Username:"
send "$user\r"
expect "Password:"
send "$password\r";
expect eof
我這是怎麼執行 -
SH shell_script.sh &
此scrip的全部目的t是在後臺運行期望腳本來收集日誌,直到進程被終止。另一種選擇是逐個運行每個expect腳本,但爲了自動化並適應將來的請求,這些expect腳本必須使用shell腳本運行。
我不是這方面的專家,任何幫助都非常感謝。
非常感謝, Sirish。
所以你telnet到一個設備,然後等待eof。在連接關閉之前,空閒的telnet會話保持多久? –
那麼,這個telnet會話永遠不會關閉,直到進程被終止,這就是主機的配置方式。這些主機通過telnet端口發送數據,應該使用expect腳本將這些數據捕獲到日誌文件中。希望我很清楚。 – Sirish