Назад | Перейти на главную страницу

Отправить сообщение на IRC-канал из bash

Я установил ircd-hybrid на моем сервере Ubuntu (192.168.1.2, example.com).
Мы используем #teamchannel общаться внутри команды.

Возникает вопрос: как мне отправить короткое сообщение из example.com к #teamchannel из сценария bash? например example.com: Alert! The server is rebooting now

Редактировать:

я нашел сценарий Perl что делает именно то, что мне нужно.

IRC - это простой текстовый и строчно-ориентированный протокол, поэтому его можно сделать с помощью основных инструментов Linux. Итак, без установки ii:

echo -e 'USER bot guest tolmoon tolsun\nNICK bot\nJOIN #channel\nPRIVMSG #channel :Ahoj lidi!\nQUIT\n' \
| nc irc.freenode.net 6667

В этой команде nc устанавливает сетевое соединение, и вы отправляете данные для входа, ник, присоединяетесь к каналу с именем "#channel" и отправляете сообщение "Ahoj lidi!" на этот канал. И выйдите с сервера.

использовать консольный клиент irc

apt-get install ii
ii -i /tmp -s 192.168.1.2
echo "/PRIVMSG #teamchannel example.com: Alert! The server is rebooting now" > /tmp/irc/in

Одним из решений было бы использовать ожидать для создания сценария связи с IRC-сервером с помощью клиента telnet.

#!/bin/bash
exec 3>/dev/tcp/example.com/6667
echo "NICK nickname1234" >&3
echo "USER nickname1234 8 * : nickname1234" >&3
echo "JOIN #teamchannel" >&3
echo "PRIVMSG #teamchannel Alert!" >&3
echo "QUIT" >&3
cat <&3

Если вам нужно указать пароль и использовать ssl, вы можете сделать что-то вроде этого.

#!/bin/bash -e

USER=$1
MYPASSWORD=$2
IRC_SERVER=$3
IRC_PORT=$4
CHANNEL=$5
MSG=$6

(
echo NICK $USER
echo USER $USER 8 * : $USER
sleep 1
echo PASS $USER:$MYPASSWORD
echo "JOIN $CHANNEL"
echo "PRIVMSG $CHANNEL" $MSG
echo QUIT
) | ncat --ssl $IRC_SERVER $IRC_PORT

Скрипт должен запускаться так:

./post_to_irc.sh your_user your_pass irc_server 6667 "#target-channel" "Your message"

Это похоже на предыдущий пример с использованием nc но я обнаружил, что должен использовать ncat чтобы заставить его работать с нашим IRC-сервером, который был настроен с SSL.