首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过ssh删除带有远程命令执行的"stdin:不是tty“

通过ssh删除带有远程命令执行的"stdin:不是tty“
EN

Unix & Linux用户
提问于 2020-10-17 17:52:54
回答 1查看 2.2K关注 0票数 0

问题在于Debian Jessie服务器。

我使用ssh运行一个远程命令,如下所示。

代码语言:javascript
复制
#! /bin/bash
ssh root@srv01  << 'STOP_SERVER'
    touch /tmp/testFile
STOP_SERVER

这是可行的,只是我得到了很多我不想要的输出。下面是一个用恒星代替敏感信息的例子。

代码语言:javascript
复制
root@home:~# ./test.sh
Pseudo-terminal will not be allocated because stdin is not a terminal.
Linux srv01.***.*** 3.14.32-xxxx-grs-ipv6-64 #5 SMP Wed Sep 9 17:24:34 CEST 2015 x86_64 GNU/Linux

server    : ***
ip        : ***
hostname  : srv01.***.***

stdin: is not a tty

如果我将脚本更改为以下内容

代码语言:javascript
复制
#! /bin/bash
ssh root@srv01  << 'STOP_SERVER' >> /dev/null
    touch /tmp/testFile
STOP_SERVER

我得到以下输出

代码语言:javascript
复制
root@home:~# ./test.sh
Pseudo-terminal will not be allocated because stdin is not a terminal.
stdin: is not a tty

如果我将选项-q添加到ssh命令中,就会得到

代码语言:javascript
复制
root@home:~# ./test.sh
stdin: is not a tty

这就是我陷入困境的地方,因为我不知道如何重新编织stdin: is not a tty

我希望能够避免输出重定向到/dev/null。这只是我不想看到的登录消息。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-10-17 18:00:18

我刚找到解决办法。

而不是写作

代码语言:javascript
复制
#! /bin/bash
ssh root@srv01  << 'STOP_SERVER'
    date
    touch /tmp/testFile
STOP_SERVER

写出以下内容

代码语言:javascript
复制
#! /bin/bash
ssh root@srv01  '
date
touch /tmp/testFile
'

没问题了。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/615000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档