Отправка сообщений пользователям XORG

Отправка сообщений пользователям XORG

Иногда нужно оставить сообщение пользователям. В Windows есть встроенные средства и, например, KSC, позволяющие делать это одной кнопкой. В линуксе немного сложнее.

Создадим скрипт .sh (не забыв добавить ему chmod +x):

#!/bin/bash
myarr=($(who |grep tty | awk '{print $1}'))
for i in "${myarr[@]}"
do
:
export DISPLAY=:0;
export XAUTHORITY=~otheruser/.Xauthority;
#sudo su $i -c 'notify-send "Hello my litle world!" -t 15000' &

sudo su $i -c 'zenity --info --text="Привет \n МИР" --title="Сообщение" --ok-label="Закрыть" --no-wrap --display=:0' &

done

Смысл скрипта в том, чтобы выгрузить в массив всех пользователей с tty и перебором отправить сообщение. В данном скрипте есть два варианта.

Закоментированный notify-send — он отправляет системное уведомление, которое через промежуток времени -t исчезнет.

zenity — откроет окно сообщения и будет открыто, пока пользователь не нажмет «Закрыть».

Для запуска на всех ПК можно использовать любой удобный инструмент. Я использовал ansible — скопировал скрипт и запустил его.

---
- hosts: workstation
  tasks:
  - name: copy script
    copy:
      src: /home/user/playbook/config/ansible/run_message.sh
      dest: /home/ansible/run_message.sh
  - name: run script
    shell: /home/ansible/run_message.sh

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *