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