马哥博客第二次月考

一 、判断题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的奇数行? ( C
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 服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置 (hosts) 文件。

7、DHCP 是动态主机配置协议的简称,其作用是:(用于给局域网内的机器自动分配IP地址) 。

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

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

10、docker采用了一种(宿主机磁盘目录对应容器目录 -v)挂载的方式实现了可写层

三、操作题一共5道、一题8分。
1、简述Raid0、Raid1、Raid5、Raid10的区别?
答:
raid0:将两块或多块磁盘串联在一起,形成一个大的磁盘组,容量为所有磁盘总和,有读写性能好的优点,但没冗余功能,一块磁盘出现问题整个阵列损坏。
raid1:将两块或2以上的偶数个磁盘组成阵列,每个磁盘对应一个镜像磁盘,写入性能下降,磁盘利用率为50%,每组磁盘中一个出现故障不会丢失数据,安全性较高。
raid5:将3块以上磁盘组成阵列,把数据和奇偶校验信息存储到每个磁盘上,磁盘利用率为N-1,阵列中一块磁盘出现故障不会丢失数据,读写性能较好。
raid10:将4块或4的倍数个磁盘组成阵列,分组顺序为两个或2的倍数个磁盘为一组做成raid1共两组,然后将两组raid1组成raid0,磁盘利用率为50%,读写速度快安全性高。

2、通过shell脚本部署一个httpd服务。
答:
#!/bin/bash
set -u
# 变量
URL=https://mirrors.tuna.tsinghua.edu.cn/apache//httpd/
FILE=httpd-2.4.43.tar.gz
INSTALL_DIR=/apps/httpd2
RESD="E[$[RANDOM%7+31];1m"
END="E[0m"

# 包名
PACKAGE=`echo $FILE |sed -nr 's/(.*[0-9.]+).[[:alpha:]]+.*/1/p'`
# 基名
BASEDIR=`basename $INSTALL_DIR`
# 后缀名
SUFFIX=`echo httpd-2.4.43.tar.bz2 |sed -nr 's/.*.([^.]+)/1/p'`

echo -en "$RESD----------install is httpd.service----------$END"
sleep 3

# 安装依赖包
cd /usr/local/src/
yum install -y gcc make apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config

# 下载包
ping -W1 -c 2 www.baidu.com &> /dev/null
if [ $? -eq 0 ]; then
    wget $URL$FILE
    case $SUFFIX in
gz|bz2|xz|tar)
    tar -xvf $FILE
    ;;
zip)
    unzip $FILE
    ;;
*)
    echo "后缀识别不了,错误"
    exit 2
esac
else
    echo -e "E[31m网络不通!!E[0m"
    cp /root/$FLIE /usr/local/src/
fi
# 编译安装
cd $PACKAGE
./configure --prefix=$INSTALL_DIR --sysconfdir=/etc/$BASEDIR
make && make install

# 创建一个启动Apache用户
useradd -r -s /sbin/nologin -u 50 apache
# 修改配置文件用户
sed -ri -e 's/^(User).*/1 apache/' -e 's/^(Group).*/1 apache/' /etc/$BASEDIR/httpd.conf
echo "PATH=$INSTALL_DIR/bin:$PATH" > /etc/profile.d/$BASEDIR.sh
source /etc/profile.d/$BASEDIR.sh
sed -ri 's#(^.*<h1>)(.*)(</h1>.*$)#16.18 Go! 3 #' $INSTALL_DIR/htdocs/index.html
apachectl start
cd ..
rm -rf $FILE $PACKAGE
echo -en "$RESD----------httpd.service is finished----------$END"

3、通过dockerfile实现nginx的部署
答:
1)准备工作
关闭防火墙
关闭selinux
安装好docker-ce,并准备好docker设置加速
2)拉取centos7系统镜像
docker pull centos:centos7.8.2003
3)创建准备文件目录结构,方便后期镜像比较多可以进行分类
[root@localhost ~]# mkdir /data/dockerfile/{system/{centos,ubuntu},web/{apache,nginx}} -pv
[root@localhost ~]# cd /data/dockerfile/system/
[root@localhost /data/dockerfile/system]# vim Dockerfile
FROM centos:centos7.8.2003
LABEL maintainer="liaolongxuan <root@liaolongxuan.com>"
RUN yum -y install wget && rm -rf /etc/yum.repos.d/*
        && wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
        && yum -y install vim-enhanced tcpdump lrzsz tree telnet bash-completion net-tools wget bzip2 lsof zip unzip nfs-utils gcc make gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel
        && yum clean all
        && rm -rf /etc/localtime
        && ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime
        && rm -rf /var/cache/yum/*
4)写个脚本执行构建
[root@localhost /data/dockerfile/system]# cat build.sh
#!/bin/bash
TAG=$1
docker build -t centos7-base:$TAG .
授可执行权限
[root@localhost /data/dockerfile/system]# chmod +x build.sh
执行构建
[root@localhost /data/dockerfile/system]#./build.sh v1.0
5)制作Nginx编译镜像,宿主机下载有Nginx编译包并做好模板配置文件
[root@localhost /data/dockerfile/web/nginx]# ll
-rwxr-xr-x 1 root root 56 Aug 3 00:24 build.sh
-rw-r--r-- 1 root root 400 Aug 3 21:26 Dockerfile
-rw-r--r-- 1 root root 14 Aug 3 00:11 index.html
-rw-r--r-- 1 root root 1032630 Aug 3 00:22 nginx-1.16.1.tar.gz
-rw-r--r-- 1 root root 2680 Aug 3 21:17 nginx.conf

修改配置并添加一行
[root@localhost /data/dockerfile/web/nginx]# cat nginx.conf
user www;
worker_processes 1;
daemon off; # 添加的这行,前台运行Nginx

[root@localhost /data/dockerfile/web/nginx]# cat Dockerfile
FROM centos7-base:v1.0
LABEL maintainer="liaolongxuan <root@liaolongxuan.com>"
ADD nginx-1.16.1.tar.gz /usr/local/src/
RUN cd /usr/local/src/nginx-1.16.1
        && ./configure --prefix=/apps/nginx/
        && make && make install
        && rm -rf /usr/local/src/nginx*
        && useradd -r nginx -s /sbin/nologin -M
COPY nginx.conf /apps/nginx/conf/
COPY index.html /apps/nginx/html/
EXPOSE 80
CMD ["/apps/nginx/sbin/nginx"]

6)编写构建执行脚本
[root@localhost /data/dockerfile/web/nginx]# vim build.sh
#!/bin/bash
TAG=$1
docker build -t nginx-centos7:$TAG .

7)授可执行权限
[root@localhost /data/dockerfile/web/nginx]# chmod +x build.sh

8)执行脚本构建镜像
[root@localhost /data/dockerfile/web/nginx]# ./build.sh v1.0

9)启动
[root@localhost /data/dockerfile/web/nginx]# docker run -d -p 80:80 nginx-centos7:v1.0

10)测试
[ root@localhost ~]# curl 10.0.0.10
Test is nginx

4、简述TCP三次握手的过程?
答:
第一次:客户端发送连接请求报文,将SYN标识位设为1,同时选择一个初始序号seq=x,然后进入SYN_SEND状态。

第二次:服务器收到SYN报文段进行确认,在确认报文段中把SYN和ACK位都设为1,确认号为ack=x+1,同时也为自己选择一个初始序号seq=y,然后进入SYN_RECV状态(半连接状态)

第三次:客户端再进行一次确认,将ACK设为1,确认号为ack=y+1,自己的序号seq=x+1,此时TCP连接已经建立,客户端进入ESTABLISHED状态。服务器收到客户端的确认信息后,也会进入ESTABLISHED状态

5、docker容器时间跟本地时间不一致怎样解决
答:
修改时区:[ root@localhost ~]# rm -rf /etc/localtime
[ root@localhost ~]# ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime
如果修改的时区后时间还有偏差,使用ntpdate 命令同步时间。

原文地址:https://www.cnblogs.com/xuanlv-0413/p/13472231.html