等待来自通过ssh远程运行的脚本的输入

时间:2015-05-13 22:24:46

标签: bash ubuntu ssh

我正在运行的脚本无法在远程计算机上安装。

clear && printf '\e[3J'
        read -p "Please enter device: " pattern
        read -p "Enter date: (YYYY-MM-DD): " date
        pfix=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 5 | head -n 1)
        mkdir /home/user/logCollectRes/"${pfix}"
        ssh  xxx.xxx.xxx.xxx 'bash -s' < /usr/local/bin/SearchAdvanced.sh ${pattern} ${date} ${pfix}

在该脚本中,我希望能够使用read。

ls -g *"${pattern}"* 

read -p "Select one of these? [y/n] " "found";

我尝试在ssh上添加-n和-t -t选项。正如您所看到的,脚本会显示仅在脚本启动后才会看到的信息,因此我无法在本地计算机上使用该读取。

编辑:所以假设服务器B存储5K计算机的系统日志。文件名使用设备的内部IP和结尾的日期给出。

/var/log/remotes/192.168.1.500201505050736.gz
/var/log/remotes/192.168.1.500201505050936.gz
/var/log/remotes/192.168.1.500201505051136.gz
/var/log/remotes/192.168.1.600201505050836.gz
/var/log/remotes/192.168.1.600201505051036.gz
/var/log/remotes/192.168.1.600201505051236.gz

我希望能够从主脚本中选择IP地址,列出与该IP地址匹配的所有文件,然后选择我想要scp到本地计算机的文件。

1 个答案:

答案 0 :(得分:0)

在与一些同事交谈后,我发现答案是运行两个脚本:第一个提取ls -g结果并将答案指向本地计算机上的变量。然后我用读取选项打印该输出,选择文件。第二个脚本将从远程计算机中获取该答案并scp该文件

在主脚本中

ssh  xxx.xxx.xxx.xxx 'bash -s' < /usr/local/bin/SearchAdvanced.sh ${pattern} ${date} > ${result}

然后作为后续行动

printf "${result}"

read -p "Select file: "