Отправка сообщений пользователям 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