Bash + Expect脚本在cron RHEL 7中不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash + Expect脚本在cron RHEL 7中不起作用相关的知识,希望对你有一定的参考价值。
我有以下脚本,该脚本在终端中运行,但在crontab中不起作用。为什么它不在cron中运行
注意:/opt/app/bin/app.exe具有CLI
#!/bin/bash
PATH=/opt/app/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/myuser/.local/bin:/home/myuser/bin:/home/myuser/scripts
ip=10.12.13.4
file=filename
function filestats(){
/usr/bin/expect - $1 $2 << 'EOF' | awk '/^second line/ { print $5 }'
set ip [lindex $argv 0]
set file [lindex $argv 1]
set timeout 60
spawn /opt/app/bin/app.exe 127.0.0.1 $ip 1112
expect {
"CLI# > " { send "addip $file
" }
}
sleep 3
expect {
"CLI# > " { send "quit
" }
}
EOF
}
filestats ${ip} ${file}
答案
EOF并没有真正退出循环。我将其固定在EOF上方的expect eof
,从而解决了该问题。我仅在RHEL 7中注意到了此问题,而在RHEL 6中则没有注意到]
以上是关于Bash + Expect脚本在cron RHEL 7中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
bash/expect/loop - 如何循环执行 telnet 的简单 bash 脚本