1. for创建20用户
用户前缀由用户输入
用户初始密码由用户输入
例如:test01,test10
(1)编辑脚本文件 vim shell4_pre.sh
#!/bin/bash
read -p "please input prefix:" pre
read -p "please input user password:" pswd
for i in {01..20}
do
user=$pre$i
if ! id -u $user &> /dev/null
then
useradd $user
echo "$pswd" | passwd --stdin $user &> /dev/null else echo "$user is exists!"
fi
done
(2)运行(bash shell4_pre.sh) 并查看 (vim /etc/passwd)
[root@rhcsa shell3]# bash shell4_pre.sh
please input prefix:shell4
please input user password:423
[root@rhcsa shell3]# vim /etc/passwd
2. for ping测试子网段的主机
网段由用户输入,例如用户输入192.168.101 ,则ping 192.168.101.125 — 192.101.131
UP: /tmp/host_up.txt
Down: /tmp/host_down.txt
(1)创建文件
[root@rhcsa shell3]# touch /tmp/host_up.txt
[root@rhcsa shell3]# touch /tmp/host_down.txt
(2)编辑脚本文件 vim shell4_ping.sh
#!/bin/bash
read -p "please input a network pre:" prenet
for i in {125..131}
do
ip=$prenet'.'$i
if ping -c 1 $ip &> /dev/null
then
echo " $ip success." >> /tmp/host_up.txt
else
echo " $ip is down." >> /tmp/host_down.txt
fi
done
(3)运行(bash shell4_ping.sh) 并查看 (cat /tmp/host_up.txt cat /tmp/host_down.txt )
3. 使用for实现批量主机root密码的修改
成功或失败都必须记录
提示:主机IP存放在一个文件中
SSH:实现公钥认证,执行远程中主机命令
实现公钥认证
# ssh-keygen 在用于管理的主上生成密钥对
# ssh-copy-id -i 192.168.2.3
(1)编辑脚本文件 vim shell4_ssh.sh
#!/bin/bash
host_ip="/shell3/host_ip.txt"
newpwd_log="/shell3/newpwd_log.txt"
if ! [ -f /.ssh.id_rsa ];then
ssh-keygen -q -P "" -f /.ssh/id_rsa &> /dev/null && echo "publickey is created"
fi
read -p "please input new password for hosts:" passwd
for i in `cat "$host_ip"`
do
ssh-copy-id root@$i &> /dev/null && ssh root@$i "echo $passwd | passwd root --stdin" &> /dev/null && echo "password is updated!"
if [ $? -eq 0 ];thenecho "$i password is updated!" >> "$newpwd_log"
else
echo "$i change password failed!" >> "$newpwd_log"
fi
done
(2)运行 bash shell4_ssh.sh