- 使用case实现成绩优良中差的判断
- for创建20用户
用户前缀由用户输入
用户初始密码由用户输入
例如:test01,test10 - for ping测试指网段的主机
网段由用户输入,例如用户输入192.168.2 ,则ping 192.168.2.10 — 192.168.2.20
UP: /tmp/host_up.txt
Down: /tmp/host_down.txt - 使用for实现批量主机root密码的修改
成功或失败都必须记录
提示:主机IP存放在一个文件中
SSH:实现公钥认证,执行远程中主机命令
实现公钥认证
# ssh-keygen 在用于管理的主上生成密钥对
# ssh-copy-id -i 192.168.2.3
1.使用case实现成绩优良中差的判断
read -p "请输入成绩[0-100]:" score
case "$score" in
9[0-9]|100)
echo "优"
;;
8[0-9])
echo "良"
;;
6[0-9]|7[0-9])
echo "中"
;;
[0-5][0-9])
echo "差"
;;
*)
echo "input error"
esac
2.for创建20用户
用户前缀由用户输入
用户初始密码由用户输入
例如:test01,test10
read -p "请输入用户前缀:" pre
read -p "请输入初始密码:" passwd
for i in `seq -w 20`
do
user=$pre$i
if id $user &>/dev/null
then
echo "$user已存在"
else
useradd $user
echo "$passwd" | passwd $user --stdin &>/dev/null
echo "成功创建用户${user}并添加密码"
fi
done
3.for ping测试指定网段的主机
网段由用户输入,例如用户输入192.168.2 ,则ping 192.168.2.10 — 192.168.2.20
UP: /tmp/host_up.txt
Down: /tmp/host_down.txt
read -p "请输入网段(如192.168.2):" netwk
for i in `seq 3`
do
a=`echo $netwk | cut -d"." -f$i`
if [ ! $a -gt ] 0 && [ ! $a -lt 255 ]
then
echo "input error"
fi
done
for j in `seq 10 20`
do
if ping -c2 $netwk.$j &>/dev/null
then
echo "$netwk.$j is up" >> /tmp/host_up.txt
else
echo "$netwk.$j is down" >> /tmp/host_down.txt
fi
done
4.使用for实现批量主机root密码的修改
成功或失败都必须记录
提示:主机IP存放在一个文件中
SSH:实现公钥认证,执行远程中主机命令
实现公钥认证
# ssh-keygen 在用于管理的主上生成密钥对
# ssh-copy-id -i 192.168.2.3
ssh-keygen -f /root/.ssh/id_rsa -P '' -q $>/dev/null
for ip in `cat ipfile`
do
echo $ip
ssh-copy-copy-id root@$ip
done
for ip in `cat ipfile`
do
echo $ip
ssh root@ip "echo redhat | passwd --stdin root" &>/dev/null
if [ "$?" -eq 0 ]
then
echo "host $ip successfully update passwd"
else
echo "host $ip error update passwd"
fi
done



