expect脚本样例实现切换用户执行hadoop jar命令
start_job.sh
password2='root'
password='user123'
/usr/bin/expect <<-EOF
spawn ssh user@10.36.246.172
expect {
"*yes/no*" { send "yes\r";exp_continue }
"Password:" { send "$password\r" }
}
#expect "*Password:"
#send "$password\r"
expect "*aliyun-app-246-172*"
send "su - root\r"
expect {
"*yes/no*" { send "yes\r";exp_continue }
"Password:" { send "$password2\r" }
}
set timeout -1
send "..............登录hadoop客户端命令\r"
send "..............指定队列命令\r"
send "hadoop jar /home/ali/Test.jar hdfs://ali/file/dir/test.txt \"\\\|\" 20190101 '|' UTF-8 hdfs://ali/file/dir/temp/$1 test.txt\r"
send "exit\r"
expect eof
EOF