1、Linux文件权限一共10位长度,分成四段,第四段表示的内容是(D )
    A文件类型 B文件所有者的权限 C文件所有者所在组的权限 D其他用户的权限

    2、文件test.log内容为123abc456,请使用awk或者cut命令将其转换为456ABC123。
    sed -r ‘s/([1-9]+)([a-z]+)([1-9]+)/\3\ABC\1/‘ test.log
    这个题用sed命令更加方便快捷,sed擅长取行和替换。
    awk擅长在长文本中查找对应行和列。

    3、有若干只兔和鸡,兔和鸡加起来一共有100条腿,请写一个简单的shell,算出兔和鸡各多少只可能组合(假设所有的兔和鸡的腿都是健全的,且兔和鸡至少为1只)
    #!/bin/bash
    for ((i=1; i<=24; i++))
    do
    head=$i
    foot=100
    chicken=$[(foot-i*4)/2]
    echo “兔子:$i只”
    echo “鸡:$chicken只”
    done
    x=$[$i-1]
    echo “一共有$x种组合”

    4、linux内核优化,都优化过哪些参数?至少三个
    limits 用户进程数修改,和文件进程数修改
    修改 /etc/sysctl.conf 文件 net.ipv4.tcp_syncookies=1,默认值是1,作用:是否打开SYN Cookie功能,该功能可以防止部分SYN攻击
    net.ipv4.tcp_tw_recycle = 1 启用timewait快速回收。

    5、如何批量查找出根目录下所有的软连接,并且查看软连接的路径信息。
    find / -type l

    6、使用docker搭建一套简单的php+nginx的环境
    要求:
    1.最终实现能够访问:index.php
    2.PHP版本为7.4.26,nginx版本为1.18
    3.php需要安装好mysqli扩展,把安装好扩展的镜像推送到私有仓库(假设私有仓库的地址为:192.168.0.2:80,账号密码都为admin)
    一.编写nginx的镜像
    Nginx的dockerfile
    FROM centos:7
    MAINTAINER www.aliangedu.com
    RUN yum install -y gcc gcc-c++ make openssl-devel pcre-devel
    ADD nginx-1.18.tar.gz /tmp
    RUN cd /tmp/nginx-1.18 && \
    ./configure —prefix=/usr/local/nginx && \
    make -j 2 && \
    make install
    RUN rm -rf /tmp/nginx-1.18 && yum clean all
    COPY nginx.conf /usr/local/nginx/conf
    WORKDIR /usr/local/nginx
    EXPOSE 80
    CMD [“./sbin/nginx”, “-g”, “daemon off;”]
    构建:docker build -t nginx:v1.18 .
    二.编写php的镜像
    Php的dockerfile
    FROM centos:7
    MAINTAINER www.aliangedu.com
    RUN yum install -y gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel openssl-devel
    ADD php-7.4.26.tar.gz /tmp/
    RUN cd /tmp/php-7.4.26 && \
    ./configure —prefix=/usr/local/php \
    —with-config-file-path=/usr/local/php/etc \
    —with-mysql —with-mysqli \
    —with-openssl —with-zlib —with-curl —with-gd \
    —with-jpeg-dir —with-png-dir —with-iconv \
    —enable-fpm —enable-zip —enable-mbstring && \
    make -j 4 && \
    make install && \
    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf && \
    sed -i “s/127.0.0.1/0.0.0.0/“ /usr/local/php/etc/php-fpm.conf && \
    sed -i “21a \daemonize = no” /usr/local/php/etc/php-fpm.conf
    COPY php.ini /usr/local/php/etc
    RUN rm -rf /tmp/php-7.4.26
    && yum clean all
    WORKDIR /usr/local/php
    EXPOSE 9000
    CMD [“./sbin/php-fpm”, “-c”, “/usr/local/php/etc/php-fpm.conf”]
    构建:docker build -t php:v7.4.26 .

    三.打包上传
    docker login -u admin -p admin 192.168.0.2:80
    docker push 192.168.0.2/nginx/nginx:v1.18
    docker push 192.168.0.2/php/php:v7.4.2.6

    你之前都遇到过什么问题?
    1.遇到过LVS VIP不漂移的现象。是因为yum安装的Keepalived用systemctl无法关闭所有keepalived进程。导致备用节点认为
    主节点服务仍然存活;
    解决方法:修改keepalived的系统管理配置文件。将杀死模式修改改为全部杀死。就可以了

    2.挖矿病毒(参考微信群文档)

    3.Jenkins构建项目,本来无法进行版本回退。这会导致新版本上线之后,如果出现问题,无法立即回退版本。
    后来采用了Jenkins基于git tag参数化构建。解决这个问题;

    Linux系统如何优化:
    1.安全优化
    ssh端口不用22号默认端口,使用20022
    设置防火墙规则,
    如果是nginx服务器,80端口和443端口对外开放;
    mysql服务器,3306只能对程序所在的服务器ip地址进行开放
    堡垒机JumpServer
    重要服务器不允许root用户登录,只允许普通用户登录,而且只允许使用秘钥认证方式登录;
    修改/etc/pam.d/login文件,能设置用户冻结策略

    1.性能
    磁盘:
    调整文件句柄数vim /etc/security/limits.conf
    修改/sys/block/xvda/queue/nr_requests,磁盘队列数,默认是128,往上调整,比如调整到512,会提高写的效率,但是同时会增大内存压力;

    cpu:
    调整进程优先级,通过调整进程的nice值
    将进程绑定到某个cpu上,能提升cpu处理此进程的效率

    1. # taskset -cp 1-3 1927
    2. 这句命令就是表示将进程号为1927的进程绑定在核1,2,3上。

    内存:
    内存充分情况下,完全禁用swap分区;
    内存不充足情况下,启用swap分区策略:
    修改swappiness参数
    swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。linux的基本默认设置为60,具体如下:

    1. [root@timeserver ~]# cat /proc/sys/vm/swappiness
    2. 60

    也就是说,你的内存在使用到100-60=40%的时候,就开始出现有交换分区的使用。大家知道,内存的速度会比磁盘快很多,这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整。

    要想永久调整的话,需要编辑sysctl.conf文件 vi /etc/sysctl.conf,设置vm.swappiness=30:

    1. vm.swappiness=30
    2. #甚至修改为0,不会禁止使用swap分区,而是最大限度降低使用swap分区
    3. [root@timeserver ~]# sysctl -p # 激活设置



    192.168.1.1/27这个网段,一共有多少个可使用的IP?
    答:共有30个IP可用。参考一阶段ip地址划分,进行计算;