作业
完成一个shell脚本,脚本的作用。
- 运行脚本可以显示出本机的ip地址
- 如果ip地址中有3这个数字,那么就打印出当前的系统时间
- 如果ip地址中不含3这个数字,就批量建立用户magedu_00, magedu_01, ... magedu_100并且所有用户同属于magedu组
- 打印出/etc/passwd这个文件中可以登陆的用户(非/usr/sbin/nologin)
- yum安装nginx服务,并且启动该服务
- 一个脚本完成
答案
#!/bin/bash
#-----------------------------------------------------
# FileName: 02_work.sh
# version: 1.0
# Date: 2022/11/21
# Author: jinsheng.shao
#-----------------------------------------------------
set -e
[ "a$USER" != "aroot" ] && echo 'Please run this script by root !!!' && exit 1
function add_magedu_users()
{
# echo {0..100} | xargs -n 1 | awk '{printf("magedu_%02d\n",$0)}' |xargs -n 1 useradd -m -g magedu
init_passwd='12345678'
exist_group_flag=`cat /etc/group | grep magedu | wc -l`
[ "a$exist_group_flag" == "a0" ] && groupadd magedu
for num in {0..100}
do
user_name=`printf magedu_%02d ${num}`
echo "add new user:$user_name and initial passwd: 12345678"
useradd -m $user_name -g magedu
# 设置初始密码为 12345678
echo "$init_passwd" | passwd --stdin $user_name
#强制失效,确保第一次登录修改密码
chage --lastday 0 $user_name
done
}
# 1. 运行脚本可以显示出本机的ip地址
ip a
# 2. 如果ip地址中有3这个数字,那么就打印出当前的系统时间
# 3. 如果ip地址中不含3这个数字,就批量建立用户magedu_00, magedu_01, ... magedu_100并且所有用户同属于magedu组
# ip a | grep -o -E "[[:space:]]inet[[:space:]].*" | cut -f3 -d ' '
# ip a | sed -rn 's/^.*inet[[:space:]]((([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))(\/.*)/\1/p'
# ip a | sed -rn 's#^.*inet[[:space:]]((([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))(/.*)#\1#p'
# ip addr | grep -Po "(?<=inet )(\d+\.){3}\d+(?=/\d+ brd)"
for ip in `ip addr | grep -Po "(?<=inet )(\d+\.){3}\d+(?=/\d+ brd)"`
do
if [[ $ip =~ '3' ]]
then
exist_ip_contain3="exist"
fi
done
[ "a$exist_ip_contain3" == "aexist" ] && date || add_magedu_users
# 4. 打印出/etc/passwd这个文件中可以登陆的用户(非/usr/sbin/nologin)
cat /etc/passwd | grep -v '/usr/sbin/nologin' | cut -d: -f1
# 5.yum安装nginx服务,并且启动该服务
yum makecache #更新yum源缓存
yum install nginx -y
systemctl start nginx
systemctl status nginx