shell 远程启动flume

前端之家收集整理的这篇文章主要介绍了shell 远程启动flume前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天,在公司服务器上使用脚本远程启动flume:

#!/bin/sh


for ip in 10.153.140.253;
#for ip in 10.153.140.250 10.153.140.251 10.153.140.252 10.153.140.253 10.153.140.254 10.153.140.255;
do
    ssh root@$ip "ps -ef | grep java | grep -v grep |cut -c 9-15 | xargs kill -9"
    ssh root@$ip "rm -rf /usr/local/apache-flume-1.7.0-bin/lib/ttbrain-log-flume-sink-jar-with-dependencies.jar"
    scp ./ttbrain-log-flume-sink-jar-with-dependencies.jar root@$ip":/usr/local/apache-flume-1.7.0-bin/lib/"
    ssh root@$ip "nohup flume-ng agent -c /usr/local/apache-flume-1.7.0-bin/conf -f /usr/local/apache-flume-1.7.0-bin/conf/engine-api-log.conf -n agent1 >/dev/null 2>&1 &"
done

看脚本里倒数第二行,逻辑很简单,通过ssh root@$ip 的方式远程执行命令,但是会报如下错误
scp_lib.sh: line 10: nohup flume-ng agent -c /usr/local/apache-flume-1.7.0-bin/conf -f /usr/local/apache-flume-1.7.0-bin/conf/engine-api-log.conf -n agent1 >/dev/null 2>&1 &: No such file or directory

后来,经过检查,使用下面的方式,成功:

#!/bin/sh


for ip in 10.153.140.253;
#for ip in 10.153.140.250 10.153.140.251 10.153.140.252 10.153.140.253 10.153.140.254 10.153.140.255;
do
    ssh root@$ip "ps -ef | grep java | grep -v grep |cut -c 9-15 | xargs kill -9"
    ssh root@$ip "rm -rf /usr/local/apache-flume-1.7.0-bin/lib/ttbrain-log-flume-sink-jar-with-dependencies.jar"
    scp ./ttbrain-log-flume-sink-jar-with-dependencies.jar root@$ip":/usr/local/apache-flume-1.7.0-bin/lib/"
    echo "nohup flume-ng agent -c /usr/local/apache-flume-1.7.0-bin/conf -f /usr/local/apache-flume-1.7.0-bin/conf/engine-api-log.conf -n agent1 >/dev/null 2>&1 &" | ssh -T $ip 

done

猜你在找的Bash相关文章