• 第二阶段考试


    第二阶段考试


    一 、判断题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下查看服务程序占用的端口命令是什么?( B
    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 上的主机信息的 数据库 ,其作用是(FQDN)和(IP)之间的转换。


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


    7、DHCP 是动态主机配置协议的简称,其作用是:(为指定网段内的主机动态的分配ip地址) 。


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


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


    10、docker采用了一种(分层构建,联合挂载)挂载的方式实现了可写层


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


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

          读写性能               可用空间             容错能力           最少磁盘数

    Raid 0          提升                   N*mins(S1,S2,...)                   无容错能力                          2,2+

    Raid 1 读性能提升,写性能略有下降       1*min(S1,S2...)                      有冗余能力                         2,2N

    Raid 5          提升                               (N-1)*mins(S1,S2,..)           允许最多1块磁盘损坏              3,3+

    RAID 10  提升                     N*min(S1,S2,...)/2           每组镜像最多只能坏一块            4,4+

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

    #CentOS 8 编译安装 httpd-2.4.46

    #安装前准备,关闭防火墙和SElinux

    systemctl disable --now firewalld.service
    sed -i.bak 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

    #1: 安装相关依赖包

    dnf -y install gcc make autoconf apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config

    #2: 下载并解压缩包

    $TARGET=/usr/local/src
    $INSTALL=/apps/httpd
    rpm -qa wget && echo "Prepare to Download httpd" || yum -y install wget &> /dev/null
    wget -qO $TARGET/httpd-2.4.46.tar.bz2 http://apache.mirror.serversaustralia.com.au//httpd/httpd-2.4.46.tar.bz2
    tar xvf $TARGET/httpd-2.4.46.tar.bz2 -C $TARGET

    #3: 配置

    cd $TARGET/httpd-2.4.46
    ./configure --prefix=$INSTALL --sysconfdir=/etc/httpd --enable-ssl

    #4: 编译并安装

    make -j 4 && make install

    #5: 配置环境

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

    #6: 运行

    apachectl start

    #7: 指定用apache用户运行

    useradd -r -s /sbin/nologin -d /var/www -c Apache -u 48 apache
    sed -ri 's#(User )daemon#1apache#' /etc/httpd/httpd.conf
    sed -ri 's#(Group )daemon#1apache#' /etc/httpd/httpd.conf

    #8: 配置生效

    apachectl restart

    #9: 验证生效

    curl 10.0.0.82 &> /dev/null
    if [ `echo $?` -eq 0 ]; then
    echo "httpd install complete"
    else
    echo "httpd install failed"
    fi


    3、通过dockerfile实现nginx的部署

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

    mkdir /data/dockerfile/web/nginx/1.16.1 -pv
    cd /data/dockerfile/web/nginx/1.16.1
    vim nginx.conf
    user nginx;
    worker_processes 1;
    #daemon off;
    wget http://nginx.org/download/nginx-1.16.1.tar.gz

    #编写Dockerfile文件

    vim Dockerfile
    #Nginx Dockerfile
    FROM centos:centos7.7.1908
    MAINTAINER dave <root@dave.com>
    RUN yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
    && useradd -r -s /sbin/nologin nginx
    && yum clean all
    ADD nginx-1.16.1.tar.gz /usr/local/src/
    RUN cd /usr/local/src/nginx-1.16.1

    && ./configure --prefix=/app/nginx
    && make
    && make install
    && rm -rf /usr/local/src/nginx*
    ADD nginx.conf /apps/nginx/conf/nginx.conf
    COPY index.html /apps/nginx/html/
    RUN ln-s /apps/nginx/sbin/nginx /usr/sbin/nginx
    EXPOSE 80 443
    CMD ["nginx","-g","daemon off;"]

    #生成nginx镜像

    cd /data/dockerfile/web/nginx/1.16.1
    vim build.sh
    #!/bin/bash
    docker build -t nginx-centos7:1.6.1-v2
    chmod +x build.sh
    #验证镜像生成
    docker images
    docker run -d -p 80:80 nginx-centos7:1.6.1-v2
    curl 127.0.0.1


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

    建立握手前, 客户端开启tcp随机端口, 服务端要监听对应服务端口

    1. 客户端发送请求报文, TCP头部SYN置为1, 同时生成本机序号seq=x, 之后进入SYN_SEND状态

    2. 服务端收到SYN报文进行确认, 将确认报文中SYN和ACK位都置为1, 同时将确认号ack设置为ack=x+1通知客户端发送下一个包, 同时自己也会添加一个序号seq=y, 之后进入SYN_RECV状态

    3. 客户端收到确认报文, 将ACK置为为1, 确认后设定为ack=y+1, 自己的序号为seq=x+1, 此时TCP连接建立, 客户端随机进入ESTABLISHED状态, 服务端收到客户端确认, 之后进入ESTABLISHED状态


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

    重新指定localtime

    rm -f /etc/localtime

    ln -s /usr/share/zoneinfo/Australia/Sydney /etc/localtime

    如果重新指定后还有问题, 使用ntpdate或者rdate命令同步时间

  • 相关阅读:
    2018.7.9 模拟赛
    树状数组||归并排序求逆序对+离散化 nlogn
    LCS nlogn
    孤岛营救问题
    [POJ 3621] Sighting Cows
    树状数组求LIS
    nlogn求逆序对&&陌上花开
    最长可重区间集
    LCA模板
    [BZOJ] 4196 [Noi2015]软件包管理器
  • 原文地址:https://www.cnblogs.com/davidwang1970/p/13468989.html
Copyright © 2020-2023  润新知