Invia un messaggio al canale IRC da bash


9

Ho installato ircd-hybridsul mio Ubuntu Server (192.168.1.2, esempio.com).
Usiamo #teamchannelper comunicare all'interno del team.

La domanda è: come posso inviare un breve messaggio da example.coma #teamchanneldallo script bash? per esempioexample.com: Alert! The server is rebooting now

Modificare:

Ho trovato uno script perl che fa esattamente quello di cui avevo bisogno.


Risposte:


9

usa il client irc della console

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

Grazie, ma questo non funziona per me. Dopo che iila shell attende, quando finisco il comando con &, il secondo comando viene eseguito ma senza messaggio.
Takeshin,

rosso il file 'out' per il debug del problema: trova la directory irc (/ tmp / SERVERNAME), cd / tmp / SERVERNAME e cat out, quindi fai eco al messaggio e leggi.
bindbn,

12

IRC è un semplice protocollo orientato al testo e alla linea, quindi può essere fatto con gli strumenti di base di Linux. Quindi, senza installare ii:

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

In questo comando, nceffettua la connessione di rete e invii le informazioni di accesso, nick, unisciti a un canale chiamato "#channel" e invia un messaggio "Ahoj lidi!" a quel canale. E chiudere il server.


aggiungi \ nQUIT alla fine dell'elenco dei comandi da chiudere subito dopo aver inviato un messaggio
Walter Heck,

2

Una soluzione potrebbe essere quella di prevedere di script di comunicazione con il server IRC utilizzando un client Telnet.


Devo expectinviare il messaggio dallo stesso computer su cui è installato il server IRC?
Takeshin,

fai .. la soluzione sopra funzionerebbe bene con aspettati.
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 po 'di testo attorno allo script della shell farebbe molto per rendere questa una risposta migliore.
HBruijn,

0

Se devi fornire una password e utilizzare SSL, puoi fare qualcosa del genere.

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

Lo script dovrebbe essere eseguito in questo modo:

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

Questo è simile a un esempio precedente usando ncma ho scoperto che dovevo usare ncatper farlo funzionare con il nostro server IRC che è stato impostato con SSL.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.