首页 > 解决方案 > 运行脚本以通过 SSH 连接到主机,收集用户输入并将信息发送回原始主机。无法获取用户输入

问题描述

我目前正在编写一个应该执行以下操作的脚本:

-- SSH 连接到远程主机

-- 切换到 SU

-- 获取所有转储记录的列表

-- 选择一条转储记录编译成日志

这是我最初使用的:

#!/bin/bash
# Get IP address to SSH into
echo Enter Device IP
read vardeviceip

# Remote into Device
ssh -t support@$vardeviceip << EOF

## AFTER LOGIN

# Switch to root
sudo su

# Check number of system boots recorded by journalctl
journalctl --list-boots

# Ask user for which set to get
echo Enter index number you wish to retrieve
read varindexnum

# Compile logs
nohup collect-diag -t collect_all_logs -s oldest_boot=$varindexnum

# List compiled logs and ask user for which log to download
ls -l /var/log/device/dump/
echo Enter timestamp of log to be downloaded
read varlogtimestamp

# Log out of Device
bash -l

EOF

运行脚本时,我可以通过 SSH 登录,但未执行“读取”命令。这是为什么?我能做些什么来解决这个问题?

提前致谢!

标签: inputsshuser-input

解决方案


好的,我找到了。我必须制作第二个 shell 脚本并在第一个脚本中运行它,如下所示:

ssh -t support@$vardeviceip "$(cat getlogs.sh)"

不管怎么说,多谢拉!


推荐阅读