开发者社区> 问答> 正文

shell脚本远程登录并启动程序报错:没有那个文件或目录?报错

在一台服务器上通过脚本,登录到另外一台服务器上,并打开相应目录,启动程序。但是提示登录成功后,显示没有文件或目录

1.登录脚本expect_ssh.sh

#!/usr/bin/env expect
set HOST [lindex $argv 0]
set PASSWD [lindex $argv 1]
spawn ssh hadoop@$HOST
expect  "(yes/no)?" { send "yes\r" }
expect "*password:" { send "$PASSWD\n" }
interact


2.启动脚本flux_start_all.sh

#!/bin/sh
# ---------------------------------------
# find BIN_HOME
BIN_HOME=`dirname "$0"`
BIN_HOME=`cd "$BIN_HOME"; pwd`
echo $BIN_HOME
export CONFILE=./IpAndProcessID.ini
if [ -f $CONFILE ]
then
        echo "CONFILE exist..."
else
        echo "CONFILE is not exist, exit."
        exit
fi
while read LINE
do
        length=`expr ${#LINE} - 1`
        host=`echo "${LINE:0:length}"| awk -F ';' '{print $1}'`
        echo $host
        processid=`echo "${LINE:0:length}"| awk -F ';' '{print $2}'`
        echo $processid
        path=`echo "${LINE:0:length}"| awk -F ';' '{print $3}'`
        echo $path

        $BIN_HOME/expect_ssh.sh $host password

        cd /export/home/process/ailk-feel/$processid/$path(问题出现点
        echo /export/home/process/ailk-feel/$processid/$path
        yes | /export/home/process/ailk-feel/$processid/$path/start.sh
done < $CONFILE

3.配置文件IpAndProcessID.ini

    10.10.121.26;c3-cac-flux-core-v2.0-a;bin/flux

结果提示:(实际上目录是存在的)

其中登录到另外一台服务器后,会停留一段时间,卡住了,然后才会提示:没有那个文件或目录,

求帮助

展开
收起
爱吃鱼的程序员 2020-06-14 15:02:25 626 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    问题有点混乱。不建议使用expect的形式登录ssh。有个更好用的sshpass,比expect好用多了问题很奇怪,feel02上可以跑的脚本,在engine06上报错,其中联系是?

    2020-06-14 15:02:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Shell 脚本速查手册 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载