Ubuntuサーバー(192.168.1.2、example.com)にircd-hybrid
をインストールしました。
チーム内でのコミュニケーションには#teamchannel
を使用しています。
問題は、bashスクリプトからexample.com
から#teamchannel
に短いメッセージを送信するにはどうすればよいですか?例えばexample.com: Alert! The server is rebooting now
私は 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
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」という名前のチャネルに参加します。AMDは「Ahoj lidi!」というメッセージを送信します。そのチャネルに。そして、サーバーを終了します。
1つの解決策は、telnetクライアントを使用してIRCサーバーとの通信をスクリプト化するために expect を使用することです。
#!/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。