Можно ли использовать функцию отправки уведомлений для отправки всплывающих уведомлений на сервер Windows X через ssh?

Я бы хотел, чтобы мой скрипт резервного копирования выдал уведомление, как только это будет сделано. Я запускаю Ubuntu как автономный сервер и захожу на него, используя PuTTY в Windows. Я уже установил x11-приложения и проверил xclock и xcalc для успешной работы на сервере Windows X (Xming).

Если это невозможно, какую систему уведомлений я могу использовать вместо этого?

0
задан 7 October 2013 в 01:23

3 ответа

Если ваш сервер «действительно» безголовый - как это будет, когда вы установили серверную версию Ubuntu - тогда на нем не будут установлены библиотеки X и, следовательно, он не сможет выступать в роли X-клиента, поэтому нет способа контролировать X-сервер в Windows. (Обратите внимание, что даже xterm не будет установлено.)

Если ваша сессия PuTTY все еще открыта, то сервер может использовать wall, чтобы уведомление появлялось на всех терминалах.

В противном случае обычным (и надежным) способом уведомления администратора является отправка электронной почты. Если вы используете cron для запуска задания резервного копирования, вам даже не нужно ничего делать для этого. Я немного потерял связь с Windows, но, думаю, вы можете заставить Windows уведомить вас, когда придет конкретное письмо.

0
ответ дан 7 October 2013 в 01:23

Мне удалось сделать это с рычанием для окон . Вот что вам следует начать очень быстро:

  • Установить рычаг для Windows
  • На вкладке «Безопасность» конфигурации рычага отключите «Требовать пароль для приложений локальной сети» ( YMMV, я управляю безопасностью с помощью брандмауэра Windows) и включаю «Разрешить сетевые уведомления»

Выше приведено включение сервера уведомлений на окнах (добавьте рычание для окон в загрузочные приложения, чтобы он всегда работал)

Существует много способов отправки уведомлений с вашего сервера Ubuntu, вот простой способ с Python: - установить python / virtualenv - установить пакет gntp: $ pip install gntp

Теперь откройте текстовый редактор и вставьте следующее:

#!/usr/bin/env python
import gntp.notifier


def send(description, applicationName='Sample Application', noteType="Message",
    title="Msg", applicationIcon=None, hostname='127.0.0.1',
    password=None, port=23053, sticky=False, priority=None,
    callback=None, notificationIcon=None, identifier=None):

    growl = gntp.notifier.GrowlNotifier(
        applicationName=applicationName,
        notifications=[noteType],
        defaultNotifications=[noteType],
        applicationIcon=applicationIcon,
        hostname=hostname,
        password=password,
        port=port,
        )

    result = growl.register()

    return growl.notify(
        noteType=noteType,
        title=title,
        description=description,
        icon=notificationIcon,
        sticky=sticky,
        priority=priority,
        callback=callback,
        identifier=identifier,
        )


if __name__ == '__main__':
    send('Testing sample application')

Это предполагает, что ваш ssh-клиент перенаправляет порт 23053 на ваш компьютер с Windows.

0
ответ дан 7 October 2013 в 01:23

Возможно, notify-send не будет работать с настольного сервера Ubuntu. Однако zenity может работать почти так же хорошо, как notify-send , с небольшим количеством сценариев.

zenity --info --text="Notification body"

Например, попробуйте

alias alrt='error_code=$?; __f(){ [[ $1 -eq 0 ]] && zenity --info --text 'Success' || zenity --error --text 'Error';  }; __f $error_code'
true; alrt
false; alrt

Имитация исходного поведения предупреждения

Исходное предупреждение

alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

Измененное предупреждение с использованием zenity вместо notify-send

alias alert='zenity "$([ $? = 0 ] && echo --info || echo --error)" --text "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

Использование:

  • команда echo happy; предупреждение проверьте это
  • команда echo sorrow; ложный; предупреждение проверьте это
0
ответ дан 3 November 2019 в 06:31

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

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