По сути, у меня есть компьютер, на котором я должен установить ssh и установить около 8 терминалов для мониторинга различных потоков и файлов журналов. Я хотел бы получить скрипт от моей машины сборки, который может сделать все это для меня. Например, если я хочу просмотреть очереди сообщений, я бы хотел выполнить что-то вроде этого:
gnome-terminal --window-with-profile=NOCLOSEPROFILE -e "ssh root@IP 'watch ipcs'"
Но команда ssh, похоже, не выполняется должным образом. Я попробовал дюжину итераций этого, но не повезло. Вот снимок экрана, если это помогает.
В общем, я хочу, чтобы это было что-то, что я могу вставить в сценарий, или даже что-то командное, поэтому, учитывая IP-адрес и команду для выполнить, я хотел бы новое окно терминала, чтобы открыть ssh-соединение с этим IP-адресом и выполнить команду.
Заранее спасибо
** РЕДАКТИРОВАТЬ Я, кажется, могу сделать это и выполнить большинство команд с помощью вышеуказанной команды, но команда watch
не работает над ssh
, так что, возможно, Синтаксис не проблема. Есть ли причина, по которой watch
может не работать здесь, где
gnome-terminal --window-with-profile=NOCLOSEPROFILE -e 'ssh -X root@$IP "tail -f /home/log/alog.log"'
работает нормально?
Вместо того, чтобы открывать несколько окон и устанавливать несколько сессий ssh (на одну и ту же машину?), Взгляните на экран. Вы можете подключиться к хосту, запустить стартовый экран и оттуда открыть несколько виртуальных консолей, по одной для каждой команды, которую вы хотите выполнить.
Что действительно хорошо в screen, так это то, что если вы потеряете соединение ssh, вы можете создать новое и заново подключиться к сеансам работающего экрана. Это действительно здорово. Существует также tmux, похожая программа (не знаю, насколько она доступна для разных Linux.
. ] Вы пытаетесь запустить интерактивную команду, для которой требуется tty, и по умолчанию ssh не выделяет tty, когда вы указываете команду для запуска на удаленном компьютере. Добавьте флаг -t
, чтобы заставить его выделять tty.