找不到名为“”的频道,期望脚本

问题描述 投票:0回答:1

我有两个结合使用的脚本。这是因为我有大量的命令需要批量发送到路由器/交换机。

完全公开,我没有编写这些脚本,它们是由不再与我合作的人编写的,我对期望的了解非常有限。

第一个脚本(脚本A)使我可以从中央框同时在许多设备上执行脚本,同时将脚本结果输出到文件中。

#!/bin/bash

let j=0;
let sleeptime=20;
let numberInstance=20;
if [ $# -lt "3" ]
then
    echo "Missing Parameters:"
    echo "start <script-name> <output-directory> <sites-file>"
    exit 1
fi


for s in `cat ${3}`
do

        echo Processing: $s on `date`;
        ./$1 ${s}${4}  > ./$2/${s}-${4} &
        let j+=1;


if [ `expr $j % $numberInstance` -eq 0 ]
        then
echo sleeping for ${sleeptime} seconds...sites processed: $j;
                sleep $sleeptime;
fi
done

第二个脚本(脚本B)是一个期望脚本,它会生成并与设备进行SSH会话并向该设备发送命令列表。

这很好,但是在无法到达设备的情况下,脚本A从脚本B返回错误:

$ ./start_sw_FAST LH108_S2 Results/LH108_S2 inputlist   
Processing: Site1 on Thu Mar 19 14:31:07 EDT 2020
Processing: Site2 on Thu Mar 19 14:31:07 EDT 2020
Processing: Site3 on Thu Mar 19 14:31:07 EDT 2020
Processing: Site4 on Thu Mar 19 14:31:07 EDT 2020
$ can not find channel named ""
    while executing
"send "edit\r""
    (file "./LH108_S2" line 69)
can not find channel named ""
    while executing
"send "edit\r""
    (file "./LH108_S2" line 69)
can not find channel named ""
    while executing
"send "edit\r""
    (file "./LH108_S2" line 69)

在这种情况下,我知道这些位置将失败。但是,当我一次运行数百次时,我希望提示能够说出类似的内容:

Failed to execute script on Site1.
Failed to execute script on Site2.
Failed to execute script on Site3.
Failed to execute script on Site4.

我不确定如何使脚本A意识到脚本B的失败。

bash ssh expect
1个回答
0
投票

请添加期望脚本。

© www.soinside.com 2019 - 2024. All rights reserved.