我在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服务器。