Enviar mensaje al canal IRC desde bash


9

Lo instalé ircd-hybriden mi servidor Ubuntu (192.168.1.2, example.com).
Usamos #teamchannelpara comunicarnos dentro del equipo.

La pregunta es: ¿Cómo puedo enviar algún mensaje corto desde example.coma #teamchannelpartir de la escritura del golpe? p.ejexample.com: Alert! The server is rebooting now

Editar:

He encontrado un script perl que hace exactamente lo que necesitaba.


Respuestas:


9

usar consola irc client

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

Gracias, pero esto no funciona para mí. Después de que iiel shell espera, cuando termino el comando con &, el segundo comando se ejecuta pero sin mensaje.
— takeshin

rojo el archivo 'out' para depurar el problema: busque el directorio irc (/ tmp / SERVERNAME), cd / tmp / SERVERNAME y cat out, luego repita el mensaje y lea.
— bindbn

12

IRC es un protocolo simple orientado a texto y línea, por lo que se puede hacer con las herramientas básicas de Linux. Entonces, sin instalar ii:

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

En este comando, nchace la conexión de red, y envía una información de inicio de sesión, nick, únete a un canal llamado "#channel" y envía un mensaje "Ahoj lidi!" a ese canal Y sal del servidor.


agregue \ nQUIT al final de la lista de comandos para salir justo después de enviar un mensaje
— Walter Heck,

2

Una solución podría ser el uso de esperar a la comunicación script con el servidor de IRC usando un cliente telnet.


¿Necesito expectcuando quiero enviar el mensaje desde la misma máquina donde está instalado el servidor IRC?
— takeshin

usted hace ... la solución anterior funcionaría bien con esperar.
— Crankyadmin

1
#!/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

2
Un poco de texto alrededor del script de shell ayudaría mucho a que esta sea una mejor respuesta.
— HBruijn

0

Si necesita proporcionar una contraseña y usar SSL, puede hacer algo como esto.

#!/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

El script debe ejecutarse así:

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

Esto es similar a un ejemplo anterior, ncpero descubrí que tenía que usarlo ncatpara que funcionara con nuestro servidor IRC que se configuró con SSL.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.