input - 运行脚本以通过 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 登录,但未执行“读取”命令。这是为什么?我能做些什么来解决这个问题?
提前致谢!
解决方案
好的,我找到了。我必须制作第二个 shell 脚本并在第一个脚本中运行它,如下所示:
ssh -t support@$vardeviceip "$(cat getlogs.sh)"
不管怎么说,多谢拉!
推荐阅读
- javascript - 如何使用 javascript 代码从 webgl 着色器中获取统一值
- javascript - 如果为负数或正数,如何更改数字的颜色?
- sql-server - 如何通过 PowerShell(Azure CLI)启用“允许 Azure 服务和资源访问此服务器”?
- c# - 在 PipeReader 中查找 byte[]
- docker - docker-compose 构建失败,没有这样的文件或目录
- python - 在图例上添加标签不起作用,使用 matplotlib
- javascript - 续集 app.post:为什么“TypeError:无法读取未定义的属性‘创建’”?
- java - 在android中显示带有异步任务的对话框
- go - 为什么运行时 Mutex/Block 分析不同于 CPU/Trace 分析
- flutter - 这真的是我必须在 Flutter 中将某些东西放在右侧的方式吗?