shell练习(二)

1.编写脚本for.sh,使用for循环创建20个账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入
1)编写脚本
#!/bin/bash
 
read -p "用户名前缀:" user
read -p "统一密码:" passwd

for i in {1..20}
do
        if  id -u  $user$i &> /dev/null
        then
                echo -e  "\e[1;32m 用户$user$i已存在!\e[0m"
                echo "$passwd" | passwd --stdin $user$i &> /dev/null
        else
                useradd $user$i
                echo "$passwd" | passwd --stdin $user$i &> /dev/null
                echo "用户$user$i创建成功!"
        fi
done
2)测试
[root@server ~]# bash for1.sh
用户名前缀:test
统一密码:123456     
 用户test1已存在!
用户test2创建成功!
用户test3创建成功!
用户test4创建成功!
用户test5创建成功!
用户test6创建成功!
用户test7创建成功!
用户test8创建成功!
用户test9创建成功!
用户test10创建成功!
用户test11创建成功!
用户test12创建成功!
用户test13创建成功!
用户test14创建成功!
用户test15创建成功!
用户test16创建成功!
用户test17创建成功!
用户test18创建成功!
用户test19创建成功!
用户test20创建成功!
2.2.编写脚本for2.sh,使用for循环,通过ping命令测试网段的主机连通性,IP前3段由用户输入,如:输入192.168.48 ,则ping 192.168.48.125-135,将可以ping通的主机IP地址写入到/tmp/host_up.txt文件中,不能ping通的主机IP地址写入到/tmp/host_down.txt文件中
1)编写脚本
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 down"  >>  /tmp/host_down.txt
        fi
done

echo  "up ip: "
cat  /tmp/host_up.txt

echo

echo "down ip :"
cat  /tmp/host_down.txt
2)测试
[root@server ~]# cat /tmp/host_up.txt 
192.168.136.134 is up
192.168.136.135 is up
[root@server ~]# cat /tmp/host_down.txt 
192.168.136.125 is down
192.168.136.126 is down
192.168.136.127 is down
192.168.136.128 is down
192.168.136.129 is down
192.168.136.130 is down
192.168.136.131 is down
192.168.136.132 is down
192.168.136.133 is down
192.168.136.134 is down
192.168.136.135 is down
192.168.136.125 is down
3.使用for循环实现批量主机root密码的修改
1)新建一个ip地址池
[root@server ~]# vim ip.txt
192.168.136.135
192.168.136.134
2)编写脚本
#!/bin/bash

read -p "please input your passwd:" ps

for i in `cat ip.txt`
do
        ssh $i "echo "$ps" | passwd --stdin root "
done
3)使用 ssh-keygen 命令建立密钥对
[root@server ~]# ssh-keygen -t rsa
4)通过ssh-copy-id讲公钥上传到两个客户端
[root@server ~]# ssh-copy-id [email protected]
[root@server ~]# ssh-copy-id [email protected]
5)测试脚本
[root@server ~]# bash for3.sh
please input your passwd:root
更改用户 root 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 root 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@server ~]# 

你可能感兴趣的:(linux,网络,chrome,shell,linux)