如何使用自定义 ~/.toprc 进行 ssh 登录、启动 top 和关闭 ssh 会话

如何使用自定义 ~/.toprc 进行 ssh 登录、启动 top 和关闭 ssh 会话

如果我通过 ssh 登录到远程主机并运行 top,它会获取 ~/.toprc 配置文件。我还可以成功运行以下命令

ssh -t <user>@<host> "top -b > top.dat"

但是,这会使 ssh 会话永远保持打开状态。我想使用 ssh 会话启动 top 批处理并退出 ssh 会话。我遇到的问题是,我尝试过的所有方法要么不起作用,要么无法获取 ~/.toprc 配置文件。

这是我尝试过的:

ssh <user>@<host> "top -b > top.dat &"
ssh -f <user>@<host> "top -b > top.dat"
ssh -f <user>@<host> "nohup top -b > top.dat &"
ssh <user>@<host> "nohup top -b > top.dat &"
ssh -f <user>@<host> "nohup top -b > top.dat"

所有结果都是没有选择 ~/.toprc

ssh -t <user>@<host> "top -b > top.dat &"

当 ssh 会话关闭时(立即)退出 Top

ssh -ft <user>@<host> "top -b > top.dat"
ssh -ft <user>@<host> "nohup top -b > top.dat &"
ssh -ft <user>@<host> "nohup top -b > top.dat"

不拾取 ~/.toprc 并抱怨由于 stdin 不是终端,所以不会分配伪终端

有人能解释为什么会发生这种情况吗?Top 说它将读取 $HOME/.toprc。我已经验证了在所有这些情况下都设置了 $HOME,并且 $HOME/.toprc 存在。这两种方法有什么不同,导致异步调用无法获取配置文件?

谢谢。

编辑1

这是我的toprc

top's Config File (Linux processes with windows)
Id:i, Mode_altscr=0, Mode_irixps=1, Delay_time=1.0, Curwin=0
Def fieldscur=�������ķ���&')*+,-./012���������FGHIJKLMN��QRSTUVWXYZ[\]^_`abcdefghij
    winflags=193840, sortindx=18, maxtasks=0, graph_cpus=0, graph_mems=0
    summclr=1, msgsclr=1, headclr=3, taskclr=1
Job fieldscur=�����(��Ļ�@<��)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
    winflags=193844, sortindx=0, maxtasks=0, graph_cpus=0, graph_mems=0
    summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=���<�����MBN�D34��&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghij
    winflags=193844, sortindx=21, maxtasks=0, graph_cpus=0, graph_mems=0
    summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr fieldscur=�����������)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
    winflags=193844, sortindx=3, maxtasks=0, graph_cpus=0, graph_mems=0
    summclr=3, msgsclr=3, headclr=2, taskclr=3
Fixed_widest=0, Summ_mscale=0, Task_mscale=0, Zero_suppress=0

编辑2

抱歉... 两台机器都不是 Redhat 7。我说这话时没想太多。我使用 dropbear ssh 服务器从 Redhat 机器 ssh 到运行 yocto-linux 的机器。我也刚刚测试了 openssh。可能是 yocto 配方中的 ssh 服务器导致了这个问题。我刚刚测试了 Redhat 到 Redhat,果然它确实有效。

相关内容