下面是一个监控各个服务器磁盘和内存的例子,文件名:ssh.exp
#!/usr/bin/expect
set timeout 5
set host [lindex $argv 0]
set username [lindex $argv 1]
set password [lindex $argv 2]#连接ssh
spawn ssh $username@$host
expect {
"password" {send "$password\r"}
"yes/no" {send "yes\r";exp_continue}
}#获取磁盘使用率
expect -re ".*\[\$#\]"
send "disk=`df -h|grep root -A 1|awk -F' +' '{print \$5}'|grep %`\r"
send "echo '磁盘使用率:'\${disk}\r"#获取内存使用率
send "memTotal=`free -m|grep Mem|awk -F' +' '{print \$2}'`\r"
send "memUsed=`free -m|grep Mem|awk -F' +' '{print \$3}'`\r"
send "let memory=\${memUsed}*100/\${memTotal}\r"
send "echo '内存使用率:'\${memory}%\r"#退出
send "exit\r"
expect eof
#interact
执行ssh.exp
./ssh.exp 192.168.168.101 root root