云计算 SRE 运维 —— 第二周

完成一个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服务,并且启动该服务
[root@linux ~]# cat task.sh 
#!/bin/bash
# **********************************************************
#
# * Author        : 薯条爱吃彤彤
# * Email         : chenunified@163.com
# * Create time   : 2022-08-07 16:01
# * Filename      : task.sh
# * Description   : 
#
# **********************************************************

# 定义颜色
COLOUR_START="\033[34m"
COLOUR_END="\033[0m"


# 查看本机IP
function NET_IP {
	NET_IP=`ip address show eth0 | sed -n 3p | awk '{print $2;}' | cut -d '/' -f1`
	echo -e "${COLOUR_START}本机IP: \n$NET_IP\n${COLOUR_END}"
}


# 判断本机IP,若本地IP包含"3"则打印当前时间,否则创建magedu_1,...,magedu_10用户
function USER_ADD {
	if [[ $NET_IP == *3* ]]; then
		echo -e "${COLOUR_START}当前时间: `date +%F" "%T`\n${COLOUR_END}"
	else
		groupadd magedu &> /dev/null
		echo -e "${COLOUR_START}用户创建列表: ${COLOUR_END}"
		for name in magedu_{1..10}; do
			useradd -g magedu $name &> /dev/null
			echo -e "${COLOUR_START}$name${COLOUR_END}"
		done
	fi

	echo ""
}


# 查看可登录账号
function LOGIN_USER {
	echo -e "${COLOUR_START}可登录用户: ${COLOUR_END}"
	echo -e "${COLOUR_START}`cat /etc/passwd | grep -Ev "/sbin/nologin$" | cut -d ':' -f1`\n${COLOUR_END}"
}


# Rocky或者CentOS系统安装Nginx服务
function INSTALL_NGINX {
	echo -e "${COLOUR_START}Nginx安装: ${COLOUR_END}"
	rpm -qa | grep nginx &> /dev/null
	if [ $? -eq 0 ]; then
		echo -e "${COLOUR_START}Nginx 已安装${COLOUR_END}"
	else
		yum install -y nginx &> /dev/null
		if [ $? -eq 0 ]; then
			service nginx start &> /dev/null
			echo -e "${COLOUR_START}Nginx 安装成功,服务已启动${COLOUR_END}"
		else
			echo -e "${COLOUR_START}Nginx 安装失败,请检查网络配置或apt源${COLOUR_END}"
		fi
	fi
}


# Ubuntu系统安装Nginx服务
function Ubuntu_NGINX {
	echo -e "${COLOUR_START}Nginx安装: ${COLOUR_END}"
	dpkg -s nginx &> /dev/null
	if [ $? -eq 0 ]; then
		echo -e "${COLOUR_START}Nginx 已安装${COLOUR_END}"
	else
		apt update &> /dev/null
		apt install -y nginx &> /dev/null
		if [ $? -eq 0 ]; then
			service nginx start &> /dev/null
			echo -e "${COLOUR_START}Nginx 安装成功,服务已启动${COLOUR_END}"
		else
			echo -e "${COLOUR_START}Nginx 安装失败,请检查网络配置或YUM源${COLOUR_END}"
		fi
	fi

}

function CentOS_Rocky {
    NET_IP
    USER_ADD
    LOGIN_USER
    INSTALL_NGINX
}

function Ubuntu {
    NET_IP
    USER_ADD
    LOGIN_USER
    Ubuntu_NGINX
}

PS3="请选择你的Linux版本: "
select MENU in "Rocky & CentOS" "Ubuntu" "退出"; do
    case $REPLY in
	1)
	    CentOS_Rocky
	    break
	    ;;
	2)
	    Ubuntu
	    break
	    ;;
	3)
            echo -e "${COLOUR_START}程序退出${COLOUR_END}"
	    break
	    ;;
	*)
	    echo -e "${COLOUR_START}输入有误,请重新输入${COLOUR_END}"
	    ;;
    esac
done
posted @ 2022-08-07 23:50  C-FIKT  阅读(103)  评论(0)    收藏  举报