第二周作业
完成一个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. 一个脚本完成
#!/bin/bash # ------------------------------------------- # Filename: Second_week_work.sh # Version: 1.0 # Date: 2022/11/24 # Author: zcloud # Email: zcloud@mgedu.com # Website: zcloud.maedu.com # Description: Work of the second week # Copyright: 2022 zcloud # License: GPL # -------------------------------------------- function get_ipaddr { ifconfig $1 | grep netmask | tr -s ' ' | cut -d ' ' -f3 } function create_user { groupadd -f magedu for user in userlist{00..10} do useradd $user -g magedu > /dev/null 2>&1 #echo "magedu" | passwd --stdin $user >/dev/null 2>&1 done } function judge_ipaddr { ipaddr=$(get_ipaddr $1) if [[ $ipaddr =~ 3 ]] then echo "System current time is:" $(date +%F_%T) else create_user if [ $? -eq 0 ] then echo "user create success." else echo "user create failed." fi fi } function get_login_user { cat /etc/passwd | grep -v nologin | cut -d ':' -f1 } function install_nginx { rpm -qa | grep nginx >/dev/null 2>&1 if [ $? -eq 0 ] then echo "Nginx has been installed, and no further installation is required." else rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm >/dev/null 2>&1 yum install -y nginx >/dev/null 2>&1 systemctl enable nginx systemctl start nginx if [ $? -eq 0 ] then echo "Nginx install and start success." fi fi } #获取网卡列表 dev_name=($(ifconfig | grep ^[a-z] | awk -F: '{print $1}' | grep -v lo)) #显示IP地址和判断IP地址 echo "*****01-03.display ipaddr and judge ipaddr*****" for if_name in ${dev_name[@]} do echo "${if_name} address: $(get_ipaddr ${if_name})" judge_ipaddr ${if_name} done #打印可以登录的用户 echo -e "\n*****04.print login user list*****" get_login_user #安装和启动nginx服务 echo -e "\n*****05.install and start nginx*****" install_nginx
[root@centos7 shell]#ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.100.11 netmask 255.255.255.0 broadcast 192.168.100.255 inet6 fe80::c94d:df7b:3ac8:5849 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:81:1d:02 txqueuelen 1000 (Ethernet) RX packets 968 bytes 130124 (127.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 738 bytes 173123 (169.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.200.13 netmask 255.255.255.0 broadcast 192.168.200.255 inet6 fe80::e658:a630:c9b3:e169 prefixlen 64 scopeid 0x20<link> ether 00:50:56:2a:72:b1 txqueuelen 1000 (Ethernet) RX packets 1 bytes 243 (243.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 16 bytes 1202 (1.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 24 bytes 2040 (1.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 24 bytes 2040 (1.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
运行脚本:
[root@centos7 shell]#sh second_week_work.sh *****01-03.display ipaddr and judge ipaddr***** ens33 address: 192.168.100.11 user create success. ens35 address: 192.168.200.13 System current time is: 2022-11-24_21:05:11 *****04.print login user list***** root sync shutdown halt mgedu zhang test zhanghongxu userlist00 userlist01 userlist02 userlist03 userlist04 userlist05 userlist06 userlist07 userlist08 userlist09 userlist10 *****05.install and start nginx***** Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service. Nginx install and start success. [root@centos7 shell]#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通