2016-08-01 9 views
2

Möchten Sie eine Nachricht per Bash-Skript senden.kafka-console-producer und bash script

bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 & 
sleep 2 

bin/kafka-server-start.sh config/server.properties > server.log 2>&1 & 
sleep 2 

#Create topic 
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic $1 
sleep 2 

#Get topics list 
echo "kafka has next topics:" 
bin/kafka-topics.sh --list --zookeeper localhost:2181 

#send message 
echo "will send messages:" 
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1 "test 1" 

Kafka begann gut. Und ich kann Nachricht von der Producer-Konsole senden

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1 "test 1" 

Aber ich kann keine Nachricht in Bash-Skript senden. Wie kann ich es per Bash-Skript senden?

Danke.

Antwort

8

Versuchen Sie tun dies:

echo "test 1" | bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1 

oder dies:

cat file.txt | bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1 
+1

Für die kontinuierliche Eingabe (dh wenn ein anderer Prozess in eine Datei schreibt), können Sie verwenden: 'tail -n 1 -f Datei.txt | bin/kafka-console-producer.sh --broker-list localhost: 9092 --topic $ 1' –

+0

Danke, es funktioniert. – scala