shell第四次练习

1. 使用case实现成绩优良中差的判断

[root@bogon shell]# vim score.sh
//脚本内容如下:
#!/bin/bash
read -p "请输入成绩:" score
case $score in
[0-5][0-9])
          echo "差!"
;;
6[0-9])
          echo "中"
;;
[7-8][0-9])
      echo "良"
;;
9[0-9]|100)
      echo "优!"
;;
esac


//测试:
[root@bogon shell]# sh score.sh
请输入成绩:50
差!
[root@bogon shell]# sh score.sh
请输入成绩:60
中
[root@bogon shell]# sh score.sh
请输入成绩:100
优!


2. for创建20用户
用户前缀由用户输入
用户初始密码由用户输入
例如:test01,test10

[root@bogon shell]# vim ua.sh
//脚本内容如下:
#!/bin/bash
read -p "请输入用户前缀:" prefix
read -p "请输入用户密码:" pas
for i in {1..20}
do
  user=$prefix$i
  passwrd=$pas$i;
if ! id -u $user &> /dev/null
then
    useradd $user
    echo $passwrd | passwd --stdin $user &> /dev/null
else
    echo "用户已经存在!"
fi
done


//测试:
[root@bogon shell]# sh ua.sh
请输入用户前缀:haha    
请输入用户密码:abcd    
[root@bogon shell]# cat /etc/passwd | grep haha*
haha1:x:1003:1003::/home/haha1:/bin/bash
haha2:x:1004:1004::/home/haha2:/bin/bash
haha3:x:1005:1005::/home/haha3:/bin/bash
haha4:x:1006:1006::/home/haha4:/bin/bash
haha5:x:1007:1007::/home/haha5:/bin/bash
haha6:x:1008:1008::/home/haha6:/bin/bash
haha7:x:1009:1009::/home/haha7:/bin/bash
haha8:x:1010:1010::/home/haha8:/bin/bash
haha9:x:1011:1011::/home/haha9:/bin/bash
haha10:x:1012:1012::/home/haha10:/bin/bash
haha11:x:1013:1013::/home/haha11:/bin/bash
haha12:x:1014:1014::/home/haha12:/bin/bash
haha13:x:1015:1015::/home/haha13:/bin/bash
haha14:x:1016:1016::/home/haha14:/bin/bash
haha15:x:1017:1017::/home/haha15:/bin/bash
haha16:x:1018:1018::/home/haha16:/bin/bash
haha17:x:1019:1019::/home/haha17:/bin/bash
haha18:x:1020:1020::/home/haha18:/bin/bash
haha19:x:1021:1021::/home/haha19:/bin/bash
haha20:x:1022:1022::/home/haha20:/bin/bash


3. for ping测试指网段的主机
网段由用户输入,例如用户输入192.168.2 ,则ping 192.168.2.10 --- 192.168.2.20
UP: /tmp/host_up.txt
Down: /tmp/host_down.txt

[root@bogon shell]# vim forping.sh
//脚本内容如下:
#!/bin/bash
read -p "请输入网段:" wd
for i in {10..20}
do
  IP="$wd"."$i"
  echo $IP
if ping -c 1 $IP &> /dev/null
then
   echo "$IP is up " >> /tmp/host_up.txt
else
   echo "$IP is down " >> /tmp/host_down.txt
fi
done

//测试:
[root@bogon shell]# sh forping.sh
请输入网段:192.168.2
192.168.2.10
192.168.2.11
192.168.2.12
192.168.2.13
192.168.2.14
192.168.2.15
192.168.2.16
192.168.2.17
192.168.2.18
192.168.2.19
192.168.2.20
[root@bogon shell]# cat /tmp/host_down.txt
192.168.2.10 is down 
192.168.2.11 is down 
192.168.2.12 is down 
192.168.2.13 is down 
192.168.2.14 is down 
192.168.2.15 is down 
192.168.2.16 is down 
192.168.2.17 is down 
192.168.2.18 is down 
192.168.2.19 is down 
192.168.2.20 is down 
192.168.2.10 is down 
192.168.2.11 is down 
192.168.2.12 is down 
192.168.2.13 is down 
192.168.2.14 is down 
192.168.2.15 is down 
192.168.2.16 is down 
192.168.2.17 is down 
192.168.2.18 is down 
192.168.2.19 is down 
192.168.2.20 is down 


4. 使用for实现批量主机root密码的修改
成功或失败都必须记录
提示:主机IP存放在一个文件中
SSH:实现公钥认证,执行远程中主机命令
实现公钥认证
# ssh-keygen 在用于管理的主上生成密钥对
# ssh-copy-id -i 192.168.2.3

[root@bogon shell]# vim ssh.sh
//脚本内容如下:
ssh-keygen -f /root/.ssh/id_rsa -P '' -q &>/dev/null
for ip in `cat ipfile`
do
  echo $ip
  ssh-copy-copy-id root@$ip
done

for ip in `cat ipfile`
do
  echo $ip
  ssh root@ip "echo redhat | passwd --stdin root" &>/dev/null
  if [ "$?" -eq 0 ];then
    echo "host $ip successfully update passwd"
  else
    echo "host $ip error update passwd"
fi
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个F啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值