linux - 远程执行需要输入的 bash 脚本
问题描述
我正在使用 SSH 命令远程执行 bash 脚本:
ssh user@server 'bash -s' < $script_dir/script.sh
在 script.sh 中,我将使用如下命令:
ssh-keygen -t rsa
ssh-copy-id postgres@$sqlserver
ssh postgres@$sqlserver -C true
并且
printf "Creating user in postgresql server...\n"
createuser -s -P username
需要用户输入,但我发现当我从远程服务器执行命令时,它会跳过获取用户输入并失败。
另一个是:
printf "Please enter your barman server name: \n" ; read -s barmanserver
哪个也不能读取用户的输入
我知道脚本似乎无法读取其他终端的输入,但如果我需要用户输入继续,谁能帮我找到解决方案?
非常感谢!!
伊娃
解决方案
我过去曾使用过类似的东西。我不太清楚为什么我安装了 sshpass。
apt-get install sshpass -y
echo "Adding users to new VMs"
adduser adminuser
echo "changing user password"
echo "adminuser:password" | chpasswd
adduser adminuser sudo
它确实有效,但它会给你一些警告。
推荐阅读
- cordova - 如何在 PhoneGap / WebView 中精确控制字体大小,覆盖可能的设置?
- php - 将 PDF 作为附件发送以进行离线同步
- c++ - 如何终止 DLL 中的 log4cplus?
- python - 使用 tcsh 包装器收集 python 覆盖
- function - 更改整个 react-native 应用程序的语言
- swift - 如何使用swift在Macosx App中执行launchctl load start?
- javascript - 当我单击它时,Framework 7 Accordion 不显示,我知道问题出在 JS 文件上吗?
- arrays - 如果条件满足,Arrayformula 获取上述单元格的值
- python - 使用 pytorch 对给定张量进行洗牌的矢量化方法
- sql - 在 PostgresSQL 和 Oracle 中,具有多个 OR 的 where 条件下的 4000 个输入会影响查询性能