第二周作业

完成一个shell脚本:
1. 运行脚本可以显示出本机的ip地址
2. 如果ip地址中有3这个数字,那么就打印出当前的系统时间
3. 如果ip地址中不含3这个数字,就批量建立用户magedu_00, magedu_01, ... magedu_100并且所有用户同属于magedu组
4. 打印出/etc/passwd这个文件中可以登陆的用户(非/usr/sbin/nologin)
5. yum安装nginx服务,并且启动该服务
6. 一个脚本完成

复制代码
#!/bin/bash
# -------------------------------------------
# Filename:          Second_week_work.sh
# Version:           1.0
# Date:              2022/11/24
# Author:            zcloud
# Email:             zcloud@mgedu.com
# Website:           zcloud.maedu.com
# Description:       Work of the second week
# Copyright:         2022 zcloud
# License:           GPL
# --------------------------------------------

function get_ipaddr
{
    ifconfig $1 | grep netmask | tr -s ' ' | cut -d ' ' -f3
}

function create_user
{
    groupadd -f magedu
    for user in userlist{00..10}
    do
        useradd $user -g magedu > /dev/null 2>&1
        #echo "magedu" | passwd --stdin $user >/dev/null 2>&1
    done
}

function judge_ipaddr
{
    ipaddr=$(get_ipaddr $1)
    if [[ $ipaddr =~ 3 ]]
    then
        echo "System current time is:" $(date +%F_%T)
    else
        create_user
        if [ $? -eq 0 ]
        then
            echo "user create success."
        else
            echo "user create failed."
        fi
    fi
}

function get_login_user
{
    cat /etc/passwd | grep -v nologin | cut -d ':' -f1
}


function install_nginx
{
    rpm -qa | grep nginx >/dev/null 2>&1
    if [ $? -eq 0 ]
    then
        echo "Nginx has been installed, and no further installation is required."
    else
        rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm >/dev/null 2>&1
        yum install -y nginx >/dev/null 2>&1
        systemctl enable nginx
        systemctl start nginx
        if [ $? -eq 0 ]
        then
            echo "Nginx install and start success."
        fi
    fi
}

#获取网卡列表
dev_name=($(ifconfig | grep ^[a-z] | awk -F: '{print $1}' | grep -v lo))

#显示IP地址和判断IP地址
echo "*****01-03.display ipaddr and judge ipaddr*****"
for if_name in ${dev_name[@]}
do
    echo "${if_name} address: $(get_ipaddr ${if_name})"
    
    judge_ipaddr ${if_name}
done

#打印可以登录的用户
echo -e "\n*****04.print login user list*****"
get_login_user

#安装和启动nginx服务
echo -e "\n*****05.install and start nginx*****"
install_nginx
复制代码
复制代码
[root@centos7 shell]#ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.11  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::c94d:df7b:3ac8:5849  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:81:1d:02  txqueuelen 1000  (Ethernet)
        RX packets 968  bytes 130124 (127.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 738  bytes 173123 (169.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.13  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::e658:a630:c9b3:e169  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:2a:72:b1  txqueuelen 1000  (Ethernet)
        RX packets 1  bytes 243 (243.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16  bytes 1202 (1.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 24  bytes 2040 (1.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 24  bytes 2040 (1.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
复制代码

运行脚本:

复制代码
[root@centos7 shell]#sh second_week_work.sh 
*****01-03.display ipaddr and judge ipaddr*****
ens33 address: 192.168.100.11
user create success.
ens35 address: 192.168.200.13
System current time is: 2022-11-24_21:05:11

*****04.print login user list*****
root
sync
shutdown
halt
mgedu
zhang
test
zhanghongxu
userlist00
userlist01
userlist02
userlist03
userlist04
userlist05
userlist06
userlist07
userlist08
userlist09
userlist10

*****05.install and start nginx*****
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
Nginx install and start success.
[root@centos7 shell]#
复制代码

 

posted @   zcloudsre  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示