栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

SHELL实战:循环

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SHELL实战:循环

目录

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测试指网段的主机,网段由用户输入

例如:用户输入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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/360760.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号