```
#!/bin/bash
SERVERS="host1 host2"
PASSWORD=hadoop
BASE_SERVER=192.168.19.170
auto_ssh_copy_id(){
expect -c " set timeout -1;
spawn ssh-copy-id -i ~/.ssh/id_rsa.pub $1;
expect{
"(yes/no)" {send -- yes\r;exp_continue;}
"password:" {send -- $2\r;exp_continue;}
eof {exit 0;}
}";
}
ssh_copy_id_to_all(){
for SERVER in $SERVERS
do
auto_ssh_copy_id $SERVER $PASSWORD
done
}
ssh_copy_id_to_all
for SERVER in $SERVERS
do
scp install.sh root@$SERVER:/root
ssh root@$SERVER /root/install.sh
done
一个例子
#!/bin/bash
BASE_SERVER=192.168.19.170
yum install -y wget
wget $BASE_SERVER/sort/jdk.tar.gz
tar -zxvf jdk.tar.gz -C /user/local
cat >> /etc/profile << EOF
export JAVA_HOME=/usr/local/jdk
export PATH =\$PATH:\$JAVA_HOME/bin/
EOF
#!/bin/sh
myHadoopPath="/opt/hadoop/"
myHadoopFile="/opt/hadoop/bin/hadoop"
#-x 参数判断$myHadoopFile是否存在并且是否具有可执行权限
if [ ! -x "$myHadoopFile"]; then
fi
#-d 参数判断$myHadoopPath是否存在
if [ ! -d "$myHadoopPath"]; then
mkdir "$myPath"
fi
#这里的-f参数判断$myHadoopFile是否存在
if [ ! -f "$myHadoopFile" ]; then
touch "$myHadoopFile"
fi
#-n是判断一个变量是否是否有值
if [ ! -n "$Var" ]; then
echo "$Var is empty"
exit 0
fi
#-z是判断一个变量是否为空
if [ ! -z "$Var" ]
if [ -z $1 ]||[ -z $2 ]||[ -z $3 ]||[ -z $4 ];then
exit -1
fi
#两个变量判断是否相等
if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi