Как зайти в ssh, запустить top и закрыть сессию ssh с помощью ~ / .toprc

347
jesse_partman

Если я захожу на удаленный хост через ssh и запускаю top, он получает файл конфигурации ~ / .toprc. Я также могу успешно выполнить следующую команду

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

Тем не менее, это держит сеанс SSH открытым навсегда. Я хочу использовать сессию ssh для запуска процесса пакетной обработки и выхода из сеанса 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 закрыта (немедленно)

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 не является терминалом

Кто-нибудь может объяснить, почему это происходит? Топ говорит, что будет читать $ HOME / .toprc. Я проверил, что $ HOME установлен во всех этих случаях и что $ HOME / .toprc существует. Чем отличаются эти два метода от асинхронных вызовов, которые не принимают файл конфигурации?

Благодарю.

РЕДАКТИРОВАТЬ 1

Вот мой топр

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. Я не думал, когда сказал это. Я перехожу с машины Redhat на машину под управлением yocto-linux с использованием ssh-сервера dropbear. Я только что проверил openssh тоже. Вероятно, проблема заключается в ssh-сервере в рецептах yocto. Я только что проверил Redhat в Redhat и уверен, что он работает.

1
ssh -ft host -l user "nohup top -b> top.out" отлично работал на хостах debian9. это прочитало ~ / .toprc. как выглядит ваш toprc? Raouf M. Bencheraiet 6 лет назад 0
@ RaoufM.Bencheraiet Только что добавил мой файл toprc. См. Правку 1. Мне также не следует входить в систему как пользователь root. jesse_partman 6 лет назад 0
Я не подумал спросить: что произойдет, если вы войдете в систему нормально и вместо запуска top-top 'top -b' сравните с выводом top, я думаю, что флаг -b отключает много вещей с вершины вывод / ввод. Raouf M. Bencheraiet 6 лет назад 0
@ RaoufM.Bencheraiet 'top -b' работает, когда я запускаю ssh и запускаю команду вручную. Извините, я неправильно говорил ранее о Redhat -> Redhat. Смотрите Редактировать 2. jesse_partman 6 лет назад 0

0 ответов на вопрос

Похожие вопросы