ssh_root

ssh_all.sh

#!/bin/bash

#dirname  "$0"
#这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,
#并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。
RUN_HOME=$(cd "$(dirname "$0")"; echo "${PWD}")

#读取文件内容赋值给NOW_LIST,这时NOW_LIST就变成一个数组变量,因为ips文件里的内容是一个数组,这里面读的是host地址列表
#NOW_LIST=("1" "2" "3")
NOW_LIST=(`cat ${RUN_HOME}/ips`)

#循环地址列表,并拼出ssh hadoop@<host> <输入命令>字符串
#eval可以将动态生成的命令行执行
SSH_USER="hadoop"
for i in ${NOW_LIST[@]}; do
    f_cmd="ssh $SSH_USER@$i \"$*\""
    echo $f_cmd
    if eval $f_cmd; then
        echo "OK"
    else
        echo "FAIL"
    fi
done

#shell 获取变量的特殊用法
#$# 是传给脚本的参数个数
#$0 是脚本本身的名字
#$1 是传递给该shell脚本的第一个参数
#$2 是传递给该shell脚本的第二个参数
#$@ 是传给脚本的所有参数的列表
#$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
#$$ 是脚本运行的当前进程ID号
#$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

scp_all

#!/bin/bash

RUN_HOME=$(cd "$(dirname "$0")"; echo "${PWD}")

NOW_LIST=(`cat ${RUN_HOME}/ips`)

SSH_USER="hadoop"
for i in ${NOW_LIST[@]}; do
    f_cmd="scp $1 $SSH_USER@$i:$2"
    echo $f_cmd
    if eval $f_cmd; then
        echo "OK"
    else
        echo "FAIL"
    fi
done

ssh_root

#!/bin/bash

RUN_HOME=$(cd "$(dirname "$0")"; echo "${PWD}")

NOW_LIST=(`cat ${RUN_HOME}/ips`)

SSH_USER="hadoop"
for i in ${NOW_LIST[@]}; do
    f_cmd="ssh -t $SSH_USER@$i ~/exe.sh \"$*\""
    echo $f_cmd
    if eval $f_cmd; then
        echo "OK"
    else
        echo "FAIL"
    fi
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值