2022-08-07

2022-08-07

#!/bin/bash
#
#############################################################
#Author:             Cloud.zhao
#NUM:                187***37
#Data:               2022-08-07
#FileName:           HomeWork2.sh
#URL:                http://www.cloudzhao.com
#Description:        Study shell
############################################################


##完成一个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. 一个脚本完成。
##多行注释的方法,crtl+V进入块选择模式,按Ecs退回命令模式,输入I首行插入,再输入#,按两次Ecs将选中的行全部注释掉。

#程序分析:
#   1. 区分系统的只有安装nginx服务,Ubuntu和Rocky的安装命令不一样。
#   2. 用三个函数来分别实现检测IP、打印可以登录的用户和安装nginx服务。

##1. 运行脚本可以显示出本机的ip地址。
##2. 通过循环和选择语句来常见00-100下标的用户。
    RES_COL=30
    MOVE_TO_COL="\033[${RES_COL}G"
    SETCOLOR_GREEN="\033[1;32m"
    SETCOLOR_RED="\033[1;31m"
    SETCOLOR_WARNING="\033[1;33m"
    SETCOLOR_NORMAL="\E[0m"
    RED_FLICKER="\033[1;5;31m"
    GREEN_FLICKER="\033[1;5;32m"

DetectionIpThree () {
    HostIpAddress=`hostname -I` 
    echo "The host IP Adress is:"
    echo -e "${SETCOLOR_GREEN}${HostIpAddress}${SETCOLOR_NORMAL}"
    if [[ $HostIpAddress == *3* ]];then
        echo "Current time is: "
        echo -e "${SETCOLOR_RED}`date +%F_%T`${SETCOLOR_NORMAL}"
    else
        FILE="/tmp/statistic"
            [ -a $FILE ] && rm -rf $FILE

#创建用户   
        for i in {0..100}; do
            if [ $i -lt 10 ];then
                USER1="Cloud_0$i"
                id $USER1 &> /dev/null &&  { echo -e "${SETCOLOR_RED}${USER1} ${MOVE_TO_COL}[existed]${SETCOLOR_NORMAL}";  echo -e "${RED_FLICKER}EXISTED${SETCOLOR_NORMAL}">> ${FILE};} ||  { useradd $USER1;echo -e "${SETCOLOR_GREEN}${USER1}${MOVE_TO_COL}[created]${SETCOLOR_NORMAL}";echo -e "${GREEN_FLICKER}CREATED${SETCOLOR_NORMAL}" >> ${FILE};}   #创建00-09后缀的用户,并保存创建状存在和已创建到文件中。    
            else 
                USER2="Cloud_$i"
                id $USER2 &> /dev/null &&  { echo -e "${SETCOLOR_RED}${USER2} ${MOVE_TO_COL}[existed]${SETCOLOR_NORMAL}";echo -e "${RED_FLICKER}EXISTED${SETCOLOR_NORMAL}">> ${FILE};} ||  { useradd $USER2;echo -e "${SETCOLOR_GREEN}$USER2${MOVE_TO_COL}[created]${SETCOLOR_NORMAL}";echo -e "${GREEN_FLICKER}CREATED${SETCOLOR_NORMAL}" >> ${FILE};} #创建10-100后缀的用户,并保存创建状态0或1到文件中。    
            fi
        done
    
#统计已创建用户和已成功用户。 
        cat $FILE | uniq -c
    fi
}

# 打印出/etc/passwd这个文件中可以登陆的用户
## 把不能登录的用户排除掉。
## 不能登录的用户是/etc/passwd中以nologin和fasle结尾的用户,用awk很好实现。
PrintLoginUsers () {
    echo -e "${SETCOLOR_WARNING}当前主机能够登录的用户如下:${SETCOLOR_GREEN}"
    awk -F: '!/[nologin | false]$/{print $1}' /etc/passwd
    echo -en ${SETCOLOR_NORMAL}
}


YumInstallNginx () {
     yum -y install autofs
     systemctl enable --now autofs

#配置yum 仓库
    rm -rf /etc/yum.repos.d/backup
    mkdir /etc/yum.repos.d/backup
    mv  /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
    cat > /etc/yum.repos.d/base.repo <<EOF
[BaseOS]
name=BaseOS
baseurl=file:///misc/cd/BaseOS
        https://mirror.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/
        https://mirrors.huaweicloud.com/centos/8/BaseOS/x86_64/os/
        https://mirrors.cloud.tencent.com/centos/8/BaseOS/x86_64/os/
        https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
gpgcheck=0

[AppStream]
name=AppStream
baseurl=file:///misc/cd/AppStream
        https://mirror.tuna.tsinghua.edu.cn/centos/8/AppStream/x86_64/os/
        https://mirrors.huaweicloud.com/centos/8/AppStream/x86_64/os/
        https://mirrors.cloud.tencent.com/centos/8/AppStream/x86_64/os/
        https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/
gpgcheck=0


[epel]
name=EPEL
baseurl=https://mirror.tuna.tsinghua.edu.cn/epel/\$releasever/Everything/\$basearch
        https://mirrors.cloud.tencent.com/epel/\$releasever/Everything/\$basearch
        https://mirrors.huaweicloud.com/epel/\$releasever/Everything/\$basearch
        https://mirrors.aliyun.com/epel/\$releasever/Everything/\$basearch
gpgcheck=0
enabled=1

[extras]
name=extras
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/\$releasever/extras/\$basearch/os
        https://mirrors.cloud.tencent.com/centos/\$releasever/extras/\$basearch/os
        https://mirrors.huaweicloud.com/centos/\$releasever/extras/\$basearch/os
        https://mirrors.aliyun.com/centos/\$releasever/extras/\$basearch/os
gpgcheck=0
enabled=1

[PowerTools]
name=CentOS- - PowerTools - mirrors.aliyun.com
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/\$releasever/PowerTools/\$basearch/os/
        https://mirrors.cloud.tencent.com/centos/\$releasever/PowerTools/\$basearch/os/
        https://mirrors.huaweicloud.com/centos/\$releasever/PowerTools/\$basearch/os/
        https://mirrors.aliyun.com/centos/\$releasever/PowerTools/\$basearch/os/
gpgcheck=0
enabled=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

EOF
    yum -y install nginx
    systemctl enable --now nginx
    systemctl status nginx.service

}
DetectionIpThree
PrintLoginUsers
YumInstallNginx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

云云云师兄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值