- Подскажите простейший способ отправить уведомление «графическим» пользователям.
- Отправка почты из командной строки (консоли) Linux
- Отправить сообщение другому пользователю на сервере в Unix/Linux
- -=== СПОСОБ 1 — Используем echo команду ==-
- -=== СПОСОБ 2 — Используем write команду ==-
- -=== СПОСОБ 3 — Используем wall команду ==-
- linux-notes.org
- Установка утилиты mail в Unix/Linux
- Команды mail/mailx в примера на Unix/Linux
- 3 thoughts on “ Команды mail/mailx в примера на Unix/Linux ”
- Добавить комментарий Отменить ответ
Подскажите простейший способ отправить уведомление «графическим» пользователям.
Есть самописный демом, который мониторит некоторые события и при их возникновении нужно отправить уведомление пользователям.
На компьютере, в общем случае, запущено несколько сеансов в том числе по ssh.
Нужно что бы все пользователи получили уведомление о событии, независимо от того каким образом они вошли в систему. Для консольных пользователей это сделать не сложно.
Вопрос как это попроще сделать для графических пользователей, в виде всплывающего окна и независимо от используемой оболочки.
Желательно что бы любой пользователь мог «закрыть» событие так что бы окошко уведомления закрылось у всех прочих пользователей.
Поищи про notifyd, думаю, это то, что нужно. А если хочешь в C — то про libnotify.
Послать сообщение можно через write, «графические» пользователи тоже его получат.
«закрыть» событие так что бы окошко уведомления закрылось у всех прочих пользователей
А вот такое придётся писать самому, про стандартное ничего не слышал.
«графические» пользователи тоже его получат.
Не получат, специально только что проверил.
В продолжение к предыдущему. Ты хоть тонну сообщений посылай, если у юзера не запущен нотификатор (у меня, например, не запущен), то ничего он не получит! Разве что если сидит по ssh или в консольке — получит сообщения, посланные wall/write.
А зачем отключать демон уведомлений? ССЗБ? Тогда надо по-другому ставить вопрос: «Как отправить сообщение горе-пользователю, который заблокировал все способы получения сообщений?»
Что значит «зачем отключать»? Чтобы что-то отключить, надо его сначала включить. А я и не включал. Раньше пользовался notipy, но он уж слишком глюкавый.
Вопрос как это попроще сделать для графических пользователей, в виде всплывающего окна и независимо от используемой оболочки.
Можно использовать xmessage, gxmessage
Желательно что бы любой пользователь мог «закрыть» событие так что бы окошко уведомления закрылось у всех прочих пользователей.
Тогда надо какие-то костыли городить, которые б убивали эти всплывающие окошки от xmessage или gxmessage. KDialog еще есть например
To show GUI notifications:
- notification server (most of desktop environments use their own implementations)
- libnotify (Arch Linux, Fedora, openSUSE) or libnotify-bin (Debian GNU/Linux, Ubuntu)
Все полноценные ДЕ (гном мате кеды крыса циннамон) имееют включенный сервер уведомлений.
Проблема в том, что рутовый демон не может отправлять сообщения юзерам напямую. — Потребуется запускать уведомление от того же юзера и с перемеными DISPLAY и другими.
Решение — костыль: https://github.com/hakavlad/notify-send-root-wrapper — он сканирует /proc, находит залогиненных юзеров, находит нужные переменные, и отправляет уведомление всем залогиненным.
- скрипт всасывает аргументы и передает в notify-send для уведомления всех.
nohang для уведомления залогиненных использует аналогичный подход, только вместо отдельного процесса запускает тред в себе.
notify-send-root-wrapper писался давно и может быть не идеален. Попробуй. Есть вопросы или проблемы — пиши в issue в https://github.com/hakavlad/notify-send-root-wrapper
Нужно что бы все пользователи получили уведомление о событии
если они сами выключили нотификатор, то не нужно
Источник
Отправка почты из командной строки (консоли) Linux
В данной статье мы рассмотрим основные утилиты для отправки электронных писем по SMTP из консоли Linux – mail/mailx/mutt. Данная инструкция применима ко всем современным дистрибутивам Linux.
Для отправки почты из командной строки Linux вам нужно установить Mail User Agent, которые умеет подключаться к smtp серверам для отправки и получения почты.
В первую очередь рассмотрим утилиту mail (mailx). Для ее установки, выполните:
- Для Debian/Ubuntu: # sudo apt-get install mailutils
- Для CentOS/Redhat установите пакет с помощью yum (dnf) # dnf install mailx
Mailx содержит в себе несколько утилит для работы с почтой, мы же подробно остановимся на mail.
# yum install sendmail –y
Основные опции при отправке писем:
- -s — Subject:
Чтобы отправить простое сообщение из консоли Linux, воспользуйтесь командой:
# echo «Это тестовое письмо» | mail -s «Проверка отправки почты» admin@build-centos.ru
Проверьте, что письмо доставлено в ящик.
Если вам нужно посмотреть подробные логи отправки писем по SMTP, их можно посмотреть в файле:
Без указания дополнительных опций письмо отправляется с дефолтного почтового ящика и скорее всего будет помечено как спам в большинстве популярных почтовых сервисах.
Чтобы указать другого отправителя письма (mail from), используйте ключ -r:
# echo «Это тестовое письмо 2» | mail -s «Проверка отправки почты 2» -r admin@build-centos.ru test@build-centos.ru
Если нужно отправить письмо нескольким получателям, перечислите их через запятую:
# echo «Это тестовое письмо 3» | mail -s «Проверка отправки почты 3» -r admin@build-centos.ru test@build-centos.ru, test-2@build-centos.ru
Как видите, письмо было отправлено двум получателям. А с помощью ключа -c вы можете отправить копию письма на указанный ящик:
# echo «Это тестовое письмо 4» | mail -s «Проверка отправки почты 4» -r admin@build-centos.ru -c test@build-centos.ru
Если вам нужно прикрепить к письму файл, укажите путь к файлу в параметре –a.
# echo «Файл во вложении» | mail -s «Проверка вложения» -a /root/test.txt -r admin@build-centos.ru test@build-centos.ru
В указанных почтовый ящик должно прийти письмо с вложением. Если нужно отпрравить два или более файлов, добавьте каждый файл через собственный атрибут –a:
# echo «Вложены 2 файла » | mail -s «Вложение нескольких файлов » -a /root/test.txt -a /root/message.log -r admin@build-centos.ru test@build-centos.ru
Вы можете отправить письмо через конкретный SMTP сервер. Его имя и порт подключения указываются в параметре -S smtp= :
# echo «Messages smtp server» | mail -s «Test smtp server» -S smtp=»build-centos.ru:25″ -r admin@build-centos.ru admin@build-centos.ru
Если удаленный SMTP сервер требует авторизации перед отправкой, вы можете указать имя пользователя и пароль с помощью параметров -S smtp-auth-user и -S smtp-auth-password.
# echo «Test auth mailbox» | mail -v -s «Test auth» -S smtp=»build-centos.ru:25″ -S smtp-auth=login -S smtp-auth-user=»admin@build-centos.ru» -S smtp-auth-password=»password» -S from=admin@build-centos.ru admin@build-centos.ru
При запуске этой команды перед вами появятся список SMTP команд для подключения, авторизации и отправки почты.
Если для отправки нужно использовать TLS шифрование и игнорировать проверку подлинности сертификата сервера, добавьте параметры:
-S smtp-use-starttls
-S ssl-verify=ignore
/.mailrc. Например, добавьте в этот файл такие строки:
Теперь для отправки письма через релей Gmail с аутентификацией достаточно выполнить команду:
$ echo «Test mail » | mail -v -s «Testing gmail auth» admin@build-centos.ru
Вы можете использовать команду отправки почты для в своих bash скриптом. Например, создайте следующий скрипт, которые будет отправлять вам информацию по свободному месту на дисках:
Добавьте этот скрипт в планировщик cron и вы будете регулярно получать письма с информацией о свободном месте на вашем сервере.
Еще одна популярная утилита для отправки почты в Linux это mutt:
# sudo apt-get install mutt — для Debian/Ubuntu
# yum install mutt -y — для CentOS/Redhat
Синтаксис mutt такой же, как и у mail/ mailx:
# echo «Text messages mutt» | mutt -s «Test mutt» admin@build-centos.ru
Таким образом, вы можете легко отправлять письма из командной строки, встраивать отправку email оповещений в свои bash скрипты или ватчдоги (удобно для контроля их выполнения).
Источник
Отправить сообщение другому пользователю на сервере в Unix/Linux
Так бывает, что на сервере работают и другие пользователи одновременно с вами. Допустим вам, необходимо выполнить перезагрузку ОС так,чтобы другие юзеры не пострадали и успели сохранить свои данные до ребута. Сейчас я расскажу как можно это сделать несколькими способами.
Для начала, посмотрим кто находится в системе:
Так же, можно использовать:
Для примера, я залогинился на сервер дважды от одного и того же юзера.
-=== СПОСОБ 1 — Используем echo команду ==-
Можно отправить сообщение другому пользователю следующим образом:
- echo -e «33[0;31m Can I reboot this server… OK? 33[0m» — Команда.
- /dev/pts/1 — Это открытая сессия пользователя.
PS: Я использую в данном примере подсветку, чтобы можно было сразу ее увидеть и другому пользователю все было понятно.
-=== СПОСОБ 2 — Используем write команду ==-
Так же, можно использовать следующий пример:
- captain — Юзер которому нужно отправить сообщение.
- pts/1 — Сессия данного юзера.
Напишите сообщение и отправьте его через нажатие ‘Enter’, и оно будет отправлено в терминал юзера. Используйте Ctrl+D чтобы прервать утилиту write.
Можно написать сообщение в файл (предположим — send_to_user.txt):
И потом, чтобы отправить данное послание, используйте:
Очень простая и полезная тулза.
-=== СПОСОБ 3 — Используем wall команду ==-
Для отправки широковещательного сообщения всем подключенным пользователям, используется команда wall (wall = write to all):
Но данное сообщение будет отправлено только после того, как вы нажмете — Ctrl+D
Можно написать сообщение в файл (предположим — send_to_user.txt):
И потом, чтобы отправить данное послание, используйте:
Вот и все, статья «Отправить сообщение другому пользователю в Unix/Linux» завершена.
Источник
linux-notes.org
Команды /Mail/mailx используемые в операционных систем UNIX/Linux для отправки электронной почты (так же, для полученные и чтения сообщений электронной почты) с возможностью удалять. В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как установить и использовать утилиту (команду) mail на ОС Unix или Linux.
Синтаксис команды mail:
Опции.
-v : Подробный режим. Детали отправки отображаются на экране.
-s : Опция задает тему для письма.
-c : Отправить СС (копии для других пользователей).
-b :Отправить BС (копии для других пользователей).
-f : Прочитать содержимое почтового ящика.
-e : Проверка на наличие почты в почтовом ящике.
-F : Записывает сообщение в файл с именем после получения.
-r : Опция для указания адреса отправителя в настройках отправки почты.
-u : Определяет сокращенния, аналог опции «mail -f /var/spool/mail/UserID».
Установка утилиты mail в Unix/Linux
Для того чтобы установить утилиту mail на CentOS/Fedora/RedHat, используйте:
Для того чтобы установить утилиту mail на Debian/Mint, используйте:
Теперь вы должны иметь команду mail, и можно приступать к работе.
Команды mail/mailx в примера на Unix/Linux
В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как пользоваться утилитой mail в ОС Unix/Linux. Приведу наглядные примеры использования данной утилиты.
Чтобы запустить программу «mail» и вывести список сообщений в почтовом ящике, выполните:
Команда mail показывает количество сообщений в ящике системы. Затем почтовая система отображает подсказку почтового ящика (?), ожидая ввода.
Когда вы видите эту строку, то нужно ввести субкоманду, чтобы увидеть список подкоманд, нужно нажать (?):
Данная команда (?) покажет все субкоманды для Mail.
Отправка электронной почты пользователю:
В команде «echo» задается некоторый текст для отправки по электронной почте.
Опция «-s» используется для указания темы для письма. Собственно, команда mail отправит емейл пользователю send_to_some@email.com. Можно обойтись и без команды echo, тогда команда будет выглядеть следующим образом:
В этом примере вы тогда, будите вводить в сообщении и чтобы остановить просто введите точку следующим образом (.):
Если вы хотите отправить письмо нескольким пользователям, то просто добавить емейл через пробел. Это будет выглядеть следующим образом:
Отправка содержимого текстового файла
3 thoughts on “ Команды mail/mailx в примера на Unix/Linux ”
Не подскажете, как настроить на свой почтовый адрес?
Установить и настроить свой почтовый сервер. Какой взять, — это на любителя. Я предпочитаю — postfix + dovecot. Настройку данной связки я опубликовывал тут: http://linux-notes.org/ustanovka-pochtovogo-servera-postfix-dovecot-i-squirrelmail-v-centos-redhat-fedora/
Если у меня все письма в первый экран не влазят, как увидеть следующую страницу списка?
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Источник