1、查询当前hadoop集群中各服务器已经开启的全部服务
#!/bin/bash
#查询集群各台服务器已经开启的服务
for ((i=3;i<6;i++))
do
echo "-------------------Hadoop0$i------------"
ssh Hadoop0$i "source /etc/profile && jps"
done
加权限,直接当前目录不用加bash运行
chmod +x jpsall.sh
将脚本移动到bin目录下,就可以在任何目录下直接运行脚本
mv jpsall.sh bin/
2、分发脚本,直接分发到指定的多台服务器(myrsync.sh)
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0));
then
echo no args;
exit;
fi
#2 获取分发(拷贝)文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取当前文件上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环 (3,4)
for((host=3; host<5; host++));
do
echo ------------------- hadoop20$host --------------
rsync -av $pdir/$fname $user@hadoop20$host:$pdir
done
3、编写一个脚本实现功能和步骤如下 (输入参数为:主机名和网关ip)
1、修改主机名、
2、修改静态ip地址、
3、添加主机ip映射关系、
4、关闭防火墙
5、重启 Linux1 192.168.198.100
#!/bin/bash
if (( $#==0 ))
then
echo No.args!
exit
fi
#修改主机名
sed -i '/HOSTNAME/d' /etc/sysconfig/network
echo "HOSTNAME=$1" >> /etc/sysconfig/network
#修改静态ip地址
part_addr=`ifconfig | grep Bcast | awk -F ":" '{print $2}' |awk -F '.' '{print$1"."$2"."$3}'`
#part_addr=`ifconfig | grep Bcast | cut -d ":" -f 2 | cut -d " " -f 1 | cut -d . -f 1-3`
ifcfg_eth0="/etc/sysconfig/network-scripts/ifcfg-eth0"
sed -i '/IPADDR/d' $ifcfg_eth0
sed -i '/GATEWAY/d' $ifcfg_eth0
sed -i '/DNS1/d' $ifcfg_eth0
sed -i '/DNS2/d' $ifcfg_eth0
sed -i 's/ONBOOT=.*/ONBOOT=yes/g' $ifcfg_eth0
sed -i 's/dhcp/static/g' $ifcfg_eth0
echo -e "IPADDR=$part_addr.$2 GATEWAY=$part_addr.2 DNS1=114.114.114.114 DNS2=8.8.8.8" >> $ifcfg_eth0
service network restart
IP=`ifconfig | grep Bcast | cut -d ":" -f 2 | cut -d " " -f 1`
echo 修改后的ip地址为:$IP
#添加主机ip映射关系
sed -i '/`echo $1`/d'
#echo "$IP $1" >> /etc/hosts
echo "$part_addr.$2 $1" >> /etc/hosts
#关闭防火墙
service iptables stop
chkconfig iptables off
#重启
reboot