Инициирование сообщения пользовательского интерфейса на основе терминала ssh'd на другой сервер

Я работаю в многооконном многооконном режиме. Я постоянно запускаю сценарии за кулисами.

Это сэкономило бы мне много времени и переключение контекста, если бы я мог запустить скрипт на другом сервере и иметь всплывающее сообщение (Growl Notify или W / E) на моем рабочем столе, сообщая мне, что команда завершилась.

Есть ли способ сделать это в Ubuntu 10?

2 ответа

Вот один из способов сделать это, если у вас настроен SSH без пароля:

ssh my-graphical-workstation 'env DISPLAY=$(w -s $USER | grep -m 1 " :" | awk "{print \$3}") notify-send "Done processing."'

Вам понадобится libnotify-bin Установите libnotify-bin установлен на my-graphical-workstation,

Отрегулируйте его по мере необходимости.

Чтобы добавить хороший ответ @ændrük:

Вам может потребоваться разрешить соединение с удаленного компьютера. На самом простом, используйте

xhost +

но вы должны ограничить это целевым компьютером после работы, если вы не хотите, чтобы весь мир открывал окна X11 на вашем компьютере. Это делается автоматически, если вы делаете ssh -X, но необходимо добавить вручную, если ssh-соединение не поддерживается.

Если вы всегда на связи, просто добавьте -X к вашему параметру ssh, чтобы он сделал настройку для вас, как в

user@localhost:path$ ssh -X where_the_script_is_run
user@where_the_script_is_run:path$ run-script; xmessage 'whatever message'

notify-send не работал для меня удаленно. Вы можете использовать (архаичный) xmessage программа.

Другие вопросы по тегам