完成一个shell脚本,脚本的作用。
- 运行脚本可以显示出本机的ip地址
- 如果ip地址中有3这个数字,那么就打印出当前的系统时间
- 如果ip地址中不含3这个数字,就批量建立用户magedu_00, magedu_01, ... magedu_100并且所有用户同属于magedu组
- 打印出/etc/passwd这个文件中可以登陆的用户(非/usr/sbin/nologin)
- yum安装nginx服务,并且启动该服务
- 一个脚本完成
#!/bin/bash
#
#************************************
#Author: zhangtang
#Date: 2023-05-27
#FileName: practise02.sh
#Description: 练习
#Copyright: 2023
#************************************
HTTPVERSION=1.25.0
RED="\E[1;31m"
GREEN="\E[1;32m"
END="\E[0m"
function showip(){
echo "本机的IP:" $(hostname -I)
}
function printsystemdate(){
ip=$(hostname -I)
if [ $(hostname -I|grep 3) ] ;then
echo -e "$RED当前时间: $(date +'%Y-%m-%d %T')$END"
else
autocreateuser
fi
}
function autocreateuser(){
echo -e "$RED开始批量创建用户\n$END"
groupadd mageedu -f
for i in {0..100}; do
if [ $i -le 9 ] ; then
id mageedu_00$i &>/dev/null || useradd mageedu_00$i -g mageedu > /dev/null
elif [ $i -ge 10 -a $i -lt 100 ] ; then
id mageedu_0$i &>/dev/null || useradd mageedu_0$i -g mageedu > /dev/null
else
id mageedu_$i &>/dev/null || useradd mageedu_$i -g mageedu > /dev/null
fi
done
echo -e "$GREEN批量创建用户完成\n$END"
}
function deleteuser(){
echo -e "$RED开始批量删除用户\n$END"
grep ^mageedu /etc/passwd|
while read n ;do
user=$(echo $n | cut -d ':' -f1)
id $user &>/dev/null && userdel $user -r > /dev/null
done
echo -e "$GREEN批量删除用户完成\n$END"
}
function printcanloginuser(){
echo -e "$RED可以登录的用户:\n$END"
sed -nE '/[^nologin]$/p' /etc/passwd |cut -d ':' -f1
}
function installngnix(){
source /etc/os-release
if [ $ID = 'ubuntu' ] ; then
apt -y install gcc pcre-devel.x86_64 zlib-devel
elif [ $ID = 'rocky' ] ; then
yum -y install gcc pcre-devel.x86_64 zlib-devel
fi
wget http://nginx.org/download/nginx-${HTTPVERSION}.tar.gz -P /usr/local/src || { echo -e "$RED下载失败$END"; exit 1 ; }
if [ -e /usr/local/src/nginx-${HTTPVERSION}.tar.gz ] ; then
cd /usr/local/src
tar xf nginx-${HTTPVERSION}.tar.gz
cd /usr/local/src/nginx-${HTTPVERSION}
./configure --prefix=/app/nginx && make && make install
ln -s /app/nginx/sbin/nginx /usr/local/bin/
nginx
echo -e "$GREEN安装完成$END"
echo -e "$GREEN请访问 $(hostname -I)$END"
else
echo -e "$RED安装失败$END"
fi
systemctl disable --now firewalld
}
showip
deleteuser
printsystemdate
#autocreateuser
printcanloginuser
installngnix