Ubuntu 14.10 下SSH执行远程命令

  有些时候需要在远程机器上执行命令,如果每次都等进去挺麻烦的,所以用脚本执行会方便很多。下面介绍一下在shell脚本中执行远程命令。

 

1,首先写好要运行的脚本 run-command.sh, 加上执行权限 chmod +x test.sh

2,把脚本文件放到远程服务器对应的用户目录

3,在本机执行 ssh remote_user@remote_ip "source /etc/profile;~/run-command.sh"

4,加上/etc/profile这样就不会出现找不到自己的环境变量了

5 一个小demo(源自网络)

#!/bin/bash

#变量定义
ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3")
user="test1"
remote_cmd="/home/test/1.sh"

#本地通过ssh执行远程服务器的脚本
for ip in ${ip_array[*]}
do
    if [ $ip = "192.168.1.1" ]; then
        port="7777"
    else
        port="22"
    fi
    ssh -t -p $port $user@$ip "remote_cmd"
done

附一个启动hadoop机群的命令,运行的时候输入参数,是启动还是关闭

sh opt-hadoop-all.sh start

下面是opt-hadoop-all.sh的内容

# command parameter:start or stop
command_input=$1
##---------- opt zookeeper  -------------------------------
ssh hadoop@1421-0000 "source /etc/profile;zkServer.sh $command_input"
ssh hadoop@1421-0003 "source /etc/profile;zkServer.sh $command_input"
ssh hadoop@1421-0004 "source /etc/profile;zkServer.sh $command_input"
ssh hadoop@1421-0005 "source /etc/profile;zkServer.sh $command_input"
ssh hadoop@1421-0006 "source /etc/profile;zkServer.sh $command_input"
##---------- opt zookeeper end --------------------------

##---------- opt hdfs-all  -----------------------------------
master_namenode_ip="1421-0002"
ssh hadoop@$master_namenode_ip "source /etc/profile;/home/hadoop/software/cloud/hadoop-2.6.0/sbin/$command_input-all.sh"
##---------- opt hdfs-all  end -----------------------------

##---------- opt yarn-all   ----------------------------------
primary_rm_ip="1423-0001"
standby_rm_ip="1423-0002"
historyjob_ip="1423-0003"

ssh hadoop@$primary_rm_ip "source /etc/profile;$command_input-yarn.sh"
ssh hadoop@$standby_rm_ip "source /etc/profile;yarn-daemon.sh $command_input resourcemanager"
ssh hadoop@$historyjob_ip "source /etc/profile;mr-jobhistory-daemon.sh $command_input historyserver"
##---------- opt yarn-all  end -----------------------------

##---------- opt httpfs --------------------------------------
httpfs_ip="1421-0002"
ssh hadoop@$httpfs_ip "source /etc/profile;httpfs.sh $command_input"
##---------- opt httpfs  end -----------------------------

 

转载于:https://www.cnblogs.com/liuchangchun/p/4662660.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值