目录
1、使用case实现成绩优良中差的判断
2、for创建20个用户,用户前缀由用户输入,用户初始密码由用户输入
3、使用for循环语句,ping测试指网段的主机,网段由用户输入
4、使用for实现批量主机root密码的修改,成功或失败都必须记录。
1、使用case实现成绩优良中差的判断
read -p "请输入成绩:" mark
case "$mark" in
9[0-9]|100)
echo "成绩:$mark,优秀"
;;
8[0-9])
echo "成绩:$mark,良好"
;;
7[0-9])
echo "成绩:$mark,中等"
;;
[0-6][0-9]|0)
echo "成绩:$mark,差!"
;;
*)
echo "请输入数值在0-100的范围内"
exit;
esac
2、for创建20个用户,用户前缀由用户输入,用户初始密码由用户输入
read -p "请输入用户名前缀:" name
read -p "请输入用户数量:" number
read -p "请输入密码:" passwd
if [ ! -z "$name" -a ! -z "$number" -a ! -z "$passwd" ]
then
y=$(echo $number | sed 's/[0-9]//g')
if [ -z "$y" ]
then
for ((i=1;i<=$number;i+=1))
do
useradd $name$i &> /dev/null
echo $passwd | /usr/bin/passwd --stdin $name$i &> /dev/null
done
fi
fi
3、使用for循环语句,ping测试指网段的主机,网段由用户输入
read -p "请输入用户名前缀:" name read -p "请输入用户数量:" number read -p "请输入密码:" passwd if [ ! -z "$name" -a ! -z "$number" -a ! -z "$passwd" ] then y=$(echo $number | sed 's/[0-9]//g') if [ -z "$y" ] then for ((i=1;i<=$number;i+=1)) do useradd $name$i &> /dev/null echo $passwd | /usr/bin/passwd --stdin $name$i &> /dev/null done fi fi
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 "主机:" ip
for i in "$ip".{10..20}
do
ping -c 1 -w2 $i &>/dev/null
if [ $? -eq 0 ]
then
echo "complete!" &> /tmp/host_up.txt
else
echo "$i failed!" &> /tmp/host_down.txt
fi
done
4、使用for实现批量主机root密码的修改,成功或失败都必须记录。
提示:主机IP存放在一个文件中
SSH:实现公钥认证,执行远程中主机命令,实现公钥认证
# ssh-keygen:在用于管理的主上生成密钥对
# ssh-copy-id -i:192.168.2.3
for i in `cat host.txt`;
do
# ip和用户以空格分割保存在host文件中
ipadd=`echo $i|cut -d " " -f 1 host.txt`
user=`echo $i|cut -d " " -f 2 host.txt`
passwd=$(tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1|head -c 16)
success=/zuoye/day4/success_user.txt
fail=/zuoye/day4/fail_user.txt
tmp_result=/zuoye/day4/tmp.txt
ssh -o ConnectTimeout=5 $ipadd "echo $ipadd $user"
if [ $? -eq 0 ];
then
ssh $ipadd "echo $passwd |passwd --stdin $user &>/dev/null"
ssh $ipadd "chage -1 $user|grep 'Last password change'|awk '{print $NF}'" >$tmp_result
if [ $(cat ${tmp_result}) -eq 0 ];then
echo "$ipadd $user $passwd" >> $success
else
echo "$ipadd $user $passwd" >> $fail
fi
else
echo "$ipadd $user" >> /zuoye/day4/fail_user.txt
fi
done



