达内python第二阶段月考_马哥第二阶段月考

第二阶段考试

一 、判断题10道、一题3分。

1、DNS默认端口号是多少?(D)

A、443 B、80 C、25 D、53

2、docker中以下那个命令不正确 ?(B)

A、docker run B、docker file C、docker exec D、docker images

3、在shell脚本中以下那个选项不是关键字 (C)

A、if B、for C、watch D、while

4、打印/etc/passwd的奇数行? (A)

A、sed -n '1~2p' /etc/passwd

B、sed -c '1~2p' /etc/passwd

C、sed -n '1~3p' /etc/passwd

5、Linux下查看服务程序占用的端口命令是什么?(D)

A ps -aux

B netstat –apn

C watch

D lsof

6、 在linux系统中,用来存放系统所需要的配置文件和子目录是(A)

A /etc

B /var

C /root

D /home

7、(多选)下面哪些命令可以查看file1文件的第300-500行的内容?(BC)

A cat file1 | tail -n +300 | head -n 200

B cat file1| head -n 500 | tail -n +300

C sed -n ‘300,500p’ file1

8、Linux下查看磁盘使用情况的命令是?(B)

A dd

B df

C top

D netstat

9、linux查看系统活跃进程的命令是?(A)

A ps

B netstat

C df

D ifconfig

10、在shell 中变量的赋值有四种方法,其中,采用name=12 的方法称 (A)

A 直接赋值

B 使用read 命令

C 使用命令行参数

D 使用命令的输出

二、填空题10道、一题3分。

1、在linux中,某文件的权限为:drw-r–r–,该权限用数值形式表示为(644),修改文件权限用(chmod)命

令。

2、在Linux 系统 中,以(文件)方式访问设备 。

3、链接分为:(软链接) 和 (硬链接)。

4、(DHCP)可以实现动态 IP 地址分配。

5、DNS 实际上是分布在internet 上的主机信息的 数据库 ,其作用是(域名)和(IP)之间的转换。

6、当LAN 内没有条件建立DNS 服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配

置 (/etc/hosts) 文件。

7、DHCP 是动态主机配置协议的简称,其作用是:(可以实现动态 IP 地址分配) 。

8、 唯一标识每一个用户的是 (UID) 和 (用户名) 。

9、docker和虚拟机的区别在于虚拟机有(内核)。

10、docker采用了一种(联合文件系统)挂载的方式实现了可写层

三、操作题一共5道、一题8分。

1、简述Raid0、Raid1、Raid5、Raid10的区别?

RAID名称  可用空间(N为磁盘数量,S为每个磁盘容量)  容错能力         最少磁盘数(N为磁盘数量)

Raid0    N*S                  无容错能力         2,2+

Raid1    N/2*S                1:1冗余          2,2N

Raid5    (N-1)*S                 允许最多1块磁盘损坏    3,3+

Raid10    N*S/2                  每组镜像最多只能坏一块   4,4+(2N)

2、通过shell脚本部署一个httpd服务。

#!/bin/bash

URL="https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.46.tar.bz2"

SRCPKG="httpd-2.4.46"

INSDIR=/apps/httpd

CONFDIR=/etc/httpd

systemctl disable --now firewalld

setenforce 0

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

echo "正在安装相关依赖包,请稍等..."

yum -y install wget gcc make autoconf ncurses-devel bzip2 apr-devel apr-util-devel pcre-devel openssl-devel &> /dev/null

if [ $? -eq 0 ];then

echo "安装成功!"

else

echo "安装错误,请检查相关依赖包。"

exit 1

fi

echo "下载源码包并解压,请稍后..."

(wget $URL;tar xvf $SRCPKG.tar.bz2 -C /usr/local/src) &>/dev/null

echo "编译并安装..."

cd /usr/local/src/$SRCPKG

./configure --prefix=$INSDIR --sysconfdir=$CONFDIR --enable-ssl

make -j 4 && make install

if [ $? -eq 0 ];then

echo "编译安装正常!"

else

echo "安装错误,请检查报错信息。"

exit 1

fi

sleep 1

echo "配置环境变量"

echo "PATH=$INSDIR/bin:$PATH" > /etc/profile.d/httpd.sh

source /etc/profile.d/httpd.sh

echo "指定apache用户运行"

sed -i 's/User daemon/User apache/;s/Group daemon/Group apache/' $CONFDIR/httpd.conf

id apache &>/dev/null && apache start || { useradd -r -s /sbin/nologin -d /var/www -c Apache -u 48 apache&&apachectl start; }

echo "查看进程并测试"

ps -ef |grep httpd && curl `ip a|awk '/inet/ && /br/ {print $2}'|cut -d/ -f1`

3、通过dockerfile实现nginx的部署

1>.在Dockerfile文件目录下准备编译安装的相关文件

#cd /data/dockerfile/web/nginx/nginx-1.18 && wget http://nginx.org/download/nginx-1.18.0.tar.gz && tar xf nginx-1.18.0.tar.gz

#vim nginx-1.18.0/conf/nginx.conf

user www;

root /data/html;

#echo "nginx website based on dockerfile" > index.html

2>.编写Dockerfile文件

#vim Dockerfile

FROM centos7

LABEL maintainer="sky "

ADD nginx-1.18.0.tar.gz /usr/local/src

RUN cd /usr/local/src/nginx-1.18.0 && ./configure --prefix=/apps/nginx && make && make install \

&& rm -rf /usr/local/src/nginx* \

&& ln -s /apps/nginx/sbin/nginx /usr/sbin/nginx

COPY nginx.conf /apps/nginx/conf/

COPY index.html /data/html/

EXPOSE 80 443

CMD ["nginx","-g","daemon off;"]

3>.生成 nginx 镜像

#vim build.sh

#!/bin/bash

TAG=$1

docker build -t nginx-1.18-centos7:$TAG .

docker images

#./build.sh v1.0

#docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx-1.18-centos7 v1.0 dee66ea00791 2 minutes ago 422MB

4>.生成容器测试镜像

#docker run -P -d --name n1 nginx-1.18-centos7:v1.0

#docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

661d4ad89b19 nginx-1.18-centos7:v1.0 "nginx -g 'daemon of…" 4 seconds ago Up 2 seconds 0.0.0.0:32776->80/tcp, 0.0.0.0:32775->443/tcp n1

#docker port n1

443/tcp -> 0.0.0.0:32775

80/tcp -> 0.0.0.0:32776

#curl 10.0.0.204:32776

nginx website based on dockerfile

#docker exec -it n1 bash

[root@661d4ad89b19 /]# ps aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.1 20580 2448 ? Ss 00:05 0:00 nginx: master process nginx -g daemon off;

www 6 0.0 0.1 21016 2280 ? S 00:05 0:00 nginx: worker process

root 7 0.5 0.1 12336 3588 pts/0 Ss 00:14 0:00 bash

root 30 0.0 0.1 51768 3424 pts/0 R+ 00:15 0:00 ps aux

4、简述TCP三次握手的过程?

第一次握手:首次建立连接时,客户端发送SYN(syn=j)数据包到服务器,并进入SYN_SENT状态,等待服务器确认。

第二次握手:服务器收到SYN包,必须确认客户端的SYN包,同时自己也发送一个SYN包,即SYN(syn=k)+ACK(ack=j+1),此时,服务器进入SYN_RECV状态。

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送ACK(k+1)包,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

5、docker容器时间跟本地时间不一致怎样解决

rm -f /etc/localtime && ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值