第一题
-
编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如:test1、test2、test3、......、test10
第一步:编写脚本
[root@server ~]# vim for1.sh
#!/bin/bash
read -p "请输入创建账户名:" name
read -p "请输入创建账户密码:" pw
for ((i=1;i<=20;i++))
do
if id -u $name$i &> /dev/null
then
echo "$name$i账户已存在"
else
useradd $name$i
if(($? == 0))
then
echo "$pw" | passwd --stdin $name$i &> /dev/null
echo "$name$i账户创建成功"
else
echo "账户创建失败"
exit
fi
fi
done
第二步:测试
[root@server ~]# bash for1.sh
请输入创建账户名:test
请输入创建账户密码:123456
第二题
-
编写脚本for2.sh,使用for循环,通过ping命令测试网段的主机连通性,IP前3段由用户输入,如:输入192.168.118,则ping 192.168.118.125-192.168.118.135,将可以ping通的主机IP地址写入到/tmp/host_up.txt文件中,不能ping通的主机IP地址写入到:/tmp/host_down文件中
第一步:创建/tmp/host_up.txt文件和/tmp/host_down文件
[root@server ~]# touch /tmp/host_up.txt
[root@server ~]# touch /tmp/host_down.txt
第二步:编写脚本
[root@server ~]# vim for2.sh
#!/bin/bash
read -p "请输入网段:" ip
for((i=125;i<=135;i++))
do
if ping -c 2 -w 3 $ip.$i &> /dev/null
then
echo "主机$ip.$i连通" >> /tmp/host_up.txt
else
echo "主机$ip.$i不连通" >> /tmp/host_down.txt
fi
done
echo "连通主机信息:"
cat /tmp/host_up.txt
echo
echo "不连通主机信息:"
cat /tmp/host_down.txt
第三步:测试
[root@server ~]# bash for2.sh
请输入网段:192.168.118
第三题
-
使用for循环实现批量主机root密码的修改
第一步:打开三台主机
第二步:将node1,node2主机的ip地址写入ip.txt 文件中
[root@server ~]# vim ip.txt
192.168.118.130
192.168.118.131
第三步:建立免密sshd登录
1>制作公私对
[root@server ~]# ssh-keygen -t rsa
2>将公钥上传
[root@server ~]# ssh-copy-id root@192.168.118.130
[root@server ~]# ssh-copy-id root@192.168.118.131
第四步:编写脚本
[root@server ~]# vim for3.sh
#!/bin/bash
read -p "请输入修改的密码:" pw
for i in $(cat ip.txt)
do
ssh $i "echo '$pw' | passwd --stdin root"
done
第五步:测试
[root@server ~]# bash for3.sh
请输入修改的密码:123
更改用户 root 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 root 的密码 。
passwd:所有的身份验证令牌已经成功更新。