我在Unix中编写需要的脚本:
不幸的是,我不能这样做,因为一旦脚本通过ssh登录,就无法看到文本文件。所以我试图将本地文本传递给ssh命令,因此它将看到文本文件。
文本文件类似于此
user@servername1
user@servername2
user@servername3
... etc
我查看了SuperUser之前的回答,但他们的解决方案只是为我返回错误。
ssh user@servername < text.txt
#stty: : Invalid argument
#sh: user@servername1: not found
#sh[2]: user@servername2: not found
#sh[3]: user@servername3: not found
#...etc
答案 0 :(得分:1)
尝试:
scp local_file user@servername:./remote_file
ssh user@servername cat -n remote_file
答案 1 :(得分:0)
如果您需要使用本地文件而不是远程复制,您可以尝试下一步:在另一个终端中调用ssh
命令,然后您可以继续在本地工作并处理您的本地文件
xterm -e "bash -c \"ssh user@servername; exec bash\"" &
答案 2 :(得分:0)
作为@ glennjackman的两个连接来复制然后执行...
因为你可以pipe commands to ssh,这与你的例子非常相似,
echo "ls" | ssh localhost
您需要的只是中间的东西来解释文本文件。例如......
cat text.txt | sed 's/^/finger /' | ssh user@servername
#or
cat text.txt | ssh user@servername xargs finger
在您的示例中,ssh user@servername
和user@servername1
非常相似。为了清楚起见,你不想在ssh命令中使用它们吗?:
while read user
do
ssh $user echo hi #ssh to each user/server in turn
done <text.txt