将消息从bash发送到IRC频道

我在Ubuntu服务器(192.168.1.2,example.com)上安装了ircd-hybrid
我们使用#teamchannel在团队内沟通。

问题是:如何从example.com发送一些短消息到bash脚本的#teamchannel ? 例如example.com: Alert! The server is rebooting now example.com: Alert! The server is rebooting now

编辑:

我find了一个perl脚本 ,正是我所需要的。

使用控制台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 

没有安装ii

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

一个解决scheme是使用期望脚本与使用telnet客户端的IRC服务器通信。

 #!/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才能使用已经使用SSL设置的IRC服务器。