• 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 -----------------------------
  • 相关阅读:
    Oracle查看表或者视图的定义语句
    SpringMvc使用FastJson做为json的转换器(注解方式)
    Centos7安装vsftpd
    linux下的find文件查找命令与grep文件内容查找命令
    Centos7虚拟机下配置静态IP
    替换Jar包内的文件
    Java 获取本机IP地址
    RecyclerView 与 ItemTouchHelper 实现拖拽效果
    Android 开发日常积累
    Android 自定义 View 知识点
  • 原文地址:https://www.cnblogs.com/liuchangchun/p/4662660.html
Copyright © 2020-2023  润新知