加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 通过ssh运行程序失败,出现“错误打开终端:未知”.

发布时间:2020-12-14 01:59:05 所属栏目:Linux 来源:网络整理
导读:当我尝试通过ssh执行一个简单的命令时,它就成功了.例如 #] ssh servername "echo abcd"abcd#] 但是,当我尝试以下命令时,它会失败: #] ssh servername ~/htopmem.shError opening terminal: unknown.#] 其中htopmem.sh的内容如下. (受到Marwan Alsabbagh于ht
当我尝试通过ssh执行一个简单的命令时,它就成功了.例如

#] ssh servername "echo abcd"
abcd
#]

但是,当我尝试以下命令时,它会失败:

#] ssh servername  ~/htopmem.sh
Error opening terminal: unknown.
#]

其中htopmem.sh的内容如下. (受到Marwan Alsabbagh于htop output to human readable file年回答的启发)

#!/bin/bash
echo q | htop | sed -r "s/x1B[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | ~/aha --black --line-fix | grep Mem | grep -E -o "[0-9]+/[0-9]+"

如果我手动ssh到服务器并运行htopmem,则执行成功:

#] ./htopmem.sh
6515/24021
#]

关于如何使“ssh servername~ / htopmem.sh”命令工作的任何想法?

谢谢!

解决方法

像这样的普通ssh命令没有tty(终端).使用-t选项强制ssh在进入时打开终端.

从manual:

-t

Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine,which can be
very useful,e.g.,when implementing menu services. Multiple -t
options force tty allocation,even if ssh has no local tty.

所以这会工作(更好):

ssh -t servername  ~/htopmem.sh

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读