编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如: test1、test2、test3、.....、 test10
编辑文件
[root@localhost ~]# vim c6.sh
#!/bin/bash
read -p "请输入用户账户名前缀: " prefix
read -p "请输入中户的密码: " passwd
for ((i=1;i<=20;i++)) # 进行20次
do
user=$prefix$i #建设完整用户名
if id $user &> /dev/null # 检查账户是否存在
then
echo "$user 已存在"
else
useradd $user # 创建账户
if [ $? -eq 0 ] # 若账户创建成功则设置密码
then
echo "$passwd" | passwd --stdin $user &> /dev/null
else
echo "用户创建失败"
exit
fi
fi
done
[root@server ~]#bash c6.sh
[root@server ~]# cat /etc/passwd | tail -20 # 检查账户是否创建成功
编写脚本for2.sh,使用for循环,通过ping命令测试网段的主机连通性,网段前3段由用户输入,如: 输入192.168.48 则ping 192.168.48.125 - 192.168.48.135,将可以ping通的主机IP地址写入到 /tmp/host_up.txt文件中,不能ping通的主机IP地址写入到: /tmp/host_down.txt文件中
[root@server ~]#vim c7.sh
#!/bin/bash
read -p "请输入网段:" ip
for ((i=125;i<=135;i++))
do
IP="$ip"."$i"
if ping -c 2 -w 3 $IP &> /dev/null
then
echo "$IP is up" >> /tmp/host_up.txt
else
echo "$IP is up" >> /tmp/host_down.txt
fi
done
echo "up ip: "
cat /tmp/host_up.txt
echo
echo "down ip :"
cat /tmp/host_down.txt
[root@server ~]#bash c7.sh
使用for循环实现批量主机root密码的修改
(1) 打开多台主机
(2)使用ssh-keygen命令建立密钥对
(3)多台主机间通过ssh-copy-id进行免密登录
(4)编写脚本for3.sh,通过for循环登录主机修改对方root账户密码
打开多台主机(在虚拟主机上操作可以使用虚拟机克隆(注意需要更改主机名和主机的ip地址)
[root@server ~]# vim ip.txt
192.168.9.131
192.168.9.132
# 建立免密sshd登录
[root@server ~]# ssh-keygen -t rsa # 一路回车
[root@server ~]# ssh-copy-id root@192.168.9.131 # 输入yes及密码
[root@server ~]# ssh-copy-id root@192.168.9.132 # 输入yes及密码
# 编写脚本
#!/bin/bash
[root@server ~]# vim c8.sh
#!/bin/bash
read -p "请输入密码:" passwd
for i in `cat ip.txt` # 循环读取文本中的IP地址
do
ssh $i "echo '$passwd' | passwd --stdin root" # 远程登录修改密码
done
[root@server ~]#bash c8.sh