使用expect命令批处理
使用expect
背景
由于需要将一个文件,远程拷贝到一批linux设备里,并需要在登录后,进行后续权限修改等处理。故而决定写一个批处理脚本
experct命令使用示例
一段简单示例,主要是用scp和ssh登录,下面为代码片
.
// An highlighted block
#!/usr/bin/expect -f
#获取外部输入ip
set machineip [lindex $argv 0 ]
#KEYPATH=/home/me/somefile.txt
#使用远程scp指令
spawn scp somefile.txt me@$machineip:/home/me/
expect "Password*"
send "123456\r"
#登录远程设备
spawn ssh me@$machineip
expect "Password*"
send "123456\r"
#后续处理
expect "]*"
send "sudo chown me somefile.txt\r"
expect "]*"
send "sudo chgrp users somefile.txt\r"
expect "]*"
send "sudo rm /home/me/key123.txt\r"
expect "]*"
#interact
expect eof