我正在运行的脚本无法在远程计算机上安装。
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到本地计算机的文件。
答案 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: "