1,编写脚本for1.sh,使用for储环创建20账户,账户名前级由用户从键盘输入,账户初始密码由用户输入,例如: test1、test2、test3、-...、 test10
编写脚本文档
[root@server ~]# vim for1.sh
$!/bin/bash
read -p "请输入账户的前缀:" prefix
read -p "请输入用户的账号密码:" passwd
for ((i=1;i<=20;i++))
do
user=$prefix$i
if id $user &> /dev/null (判断用户是否存在 )
then
echo "$user账户已存在"
else
useradd $user
if [ $? -eq 0 ] (调出上次命令执行的状态码,判断是否为0(0为执行成功) )
then
echo "$passwd" | passwd --stdin $user &> /dev/null (将passwd中存储键盘输入的密码通过管道符交给passwd命令,通过设置来源--stdin 给$user)
else
echo "用户创建失败"
exit
fi
fi
done
测试
[root@server ~]# bash for1.sh
查看账户是否创建成功
[root@server ~]# cat /etc/passwd
2.编写脚本for2.sh,使用for循环,通过ping命令测试网段的主机连通性,IP前3段由用户输入,如:输入192.168.48,则ping 192.168.48.125 - 192,168,48,135,将可以ping通的主机IP地址写入到 /tmp/host_up.txt文件中,不能ping通的主机IP地址写入到: /mp/host_down.txt文件中。
[root@server ~]# vim for2.sh
#!/bin/bash
read -p "请输入网段:" ip
for ((i=128;i<=135;i++))
do
IP="$ip"."$i"
echo "$IP"
if ping -c 2 -w 3 $IP &> /dev/null (使用命令ping测试,发送两个数据包,在3秒内能接收到,既网络通顺)
then
echo "$IP is up" >> /tmp/host_up.txt
echo "$IP is down" >> /tmp/host_down.txt
fi
done
echo "up is: "
cat /tmp/host_up.txt
echo "down is: "
cat /tmp/host_down.txt
测试
[root@server ~]# bash for2.sh
3.使用for循环实现批量主机root密码的修改
(1)打开多台机
(2) 使用ssh-keygen命令建立密钥对
3多台主机间通过ssh-copy-id进行免密登录
4编写脚本for3.sh,通过for循环登录主机修改对方root账户密码
编辑一个新文档
输入两个服务机的ip
[root@server ~]# vim ip.txt
在server端制作免密连接秘钥
[root@server ~]# ssh-keygen -t rsa
连接node1和node2
[root@server ~]# ssh-copy-id root@192.168.248.131
[root@server ~]# ssh-copy-id root@192.168.248.132
[root@server ~]# vim for3.sh
$!/bin/bash
read -p "please inout your passwd: " ps
for i in `cat ip.txt`
do
ssh $i "echo "$ps" | passwd --stdin root"
done
测试
[root@server ~]# for3.sh