expect 批量执行命令
在跳板机上执行脚本,登录到远程机器分区格式化挂载命令
#!/bin/bash
passwd='engine'
/usr/bin/expect <<-EOF
set time 40
spawn ssh root@172.18.3.114
expect {
"*yes/no" { send "yes\r"; exp_continue }
"*password:" { send "$passwd\r" }
}
expect "*#"
send "fdisk /dev/vda\r"
expect -exact "Command (m for help):"
send -- "n\r"
expect -exact "Select (default p):"
send -- "p\r"
expect -exact "Partition number (1-4, default 1):"
send -- "1\r"
expect -exact "First sector"
send -- "2048\r"
expect -exact "Last sector, +sectors or +size{K,M,G}"
send -- "1048575999\r"
expect -exact "Command (m for help):"
send -- "w\r"
expect "*#"
send "echo '/dev/vda1 /home ext4 defaults 0 0' >>/etc/fstab \r"
expect "*#"
send -- "mkfs.ext4 /dev/vda1\r"
expect "*#"
send -- "mount -a\r"
interact
expect eof
EOF