my first expect script - http.exp is updated. It now supports to specify port number as its argument.
Usage: http.exp <hostname or IP> [ <port number> ]
( if <port number> is not specified, it assumes 80 as port number. ) #!/usr/local/bin/expect -- # created by Song, Minsuk <dnd@neowiz.com> # a simple http service check script # ver 1.3 2000/11/04 supports to specify port number # ver 1.4 2000/11/05 uses lindex instead of lrange ;-) # if { $argc < 1 } { send_user "usage: $argv0 <hostname or IP> \[ <port number> \]\n"; exit 1; } set host [lindex $argv 0] if { $argc < 2 } { set port 80 } else { set port [lindex $argv 1] } # is host alive ? spawn ping $host set timeout 3 expect { "is alive" { exp_continue; } "unknown host" { send_user "Unknown host. |nohost" exit 2 } timeout { send_user "no answer from $host |down" exit 1 } } # is http port alive ? spawn telnet $host $port set timeout 3 expect { "Escape character is" { send "HEAD / HTTP/1.0\n\n"; } "Connection refused" { send_user "Port $port Connection refused. |noservice" exit 2 } "Unknown" { send_user "Unknown host. |nohost" exit 2 } timeout { send_user "Ping is ok, but no response from port $port. |crit"; exit 2 } } # port is opened! now check response is good. set timeout 10 expect { "HTTP/1.1" { send_user "HTTP Ok |ok" } "Connection closed" { send_user "Empty response. |crit"; } timeout { send_user "Socket timeout after 10 seconds. |crit"; exit 1 } } Sunday, 05-Nov-2000 14:00:46 KST |