美文网首页
第一阶段测试

第一阶段测试

作者: JevonWei | 来源:发表于2017-06-22 10:33 被阅读0次

    1、yum源的配置与使用(5分)
    1). 创建一个本地yum源
    base源指向https://mirrors.aliyun.com/centos/7/os/x86_64/
    epel源指向https://mirrors.aliyun.com/epel/7Server/x86_64/
    2). 安装开发包组

    [base]
    name=base
    baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
    enbale=1
    gpgcheck=0
    
    [epel]
    name=epel
    baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
    enable=1
    gpgcheck=0
    

    ②.yum groupinstall "Development Tools"

    2、复制/etc/ssh/sshd_config 到/tmp/中并更名为sshd_config.bak。将/tmp/sshd_config.bak文件中所有以非#号开头与包含空白字符的行保存至/tmp/sshd_config中。(5分)

    cp /etc/sshd_config /tmp/sshd_config.bak  
    cat /tmp/sshd_config.bak |grep -Ev '^#|^[[:space:]]*$'>/tmp/sshd_config
    

    3、编写脚本/root/bin/sysinfo.sh显示当前主机系统信息,包括主机名,操作系统版本,内核版本,CPU型号,内存大小,硬盘分区(5分)

    Vim /root/bin/sysinfo.sh 
    #!/bin/bash
    hostname
    cat /etc/redhat-release     
    uname -r
    free -m
    fdisk -l
    Chmod +x /root/bin/sysinfo.sh
    

    4、给root用户定义别名命令vimnet,相当于vim /etc/sysconfig/network-scripts/ifcfg-ens33,并使root执行history命令时,显示每个命令执行的具体时间。(5分)

    echo "alias vimnet="vim /etc/sysconfig//etc/sysconfig/network-scripts/ifcfg-ens33"" >> ~/.bashrc
    echo 'HISTTIMEFORMAT="%F %T"' >> ~/.bash_profile 
    . ~/.bash_profile
    . ~/.bashrc
    

    5、指出软链接与硬链接的异同之处(至少四处)(5分)

    硬链接   
    1、硬链接必须在同一个分区中创建,不能跨分区,跨分区只能用软链接   
       2、硬链接不支持对目录创建,硬链接不支持跨设备跨分区   
       3、不复制原数据,仅分配一个inode号和文件名   
       4、硬链接文件使用同一个inode号   
       5、硬链接工作的相对路径相对于当前目录   
       6、链接文件没有依赖性关系,链接数会加1   
    软链接
       1、可以对目录进行   
       2、可以跨分区   
       3、指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;   
       4、删除链接原文件,则链接指向失效   
       5、软链接用相对路径时相对的不是当前工作目录,而是相对软链接工作路径 
    

    6、下载编译安装httpd 2.4最新版本,写出安装过程(5分)

    1. httpd源码下载  
      httpd2.4.25下载地址http://hc.apache.org/downloads.cgi
    2.将下载的httpd源码包复制到系统路径下,再此存放到了路径/app下,然后tar解压源码包到当前目录下    
      cd /app 
      tar xvf httpd-2.4.25.tar.bz2    
    3. 安装开发包组    
      yum groupinstall "Development Tools"    
    4. 查看帮助文件,了解如何安装
      cat README    
      cat INSTALL    
    5. cd /root/httpd-2.4.25 切换到软件包目录下    
      ./configure --prefix=/app/apache  --sysconfdir=/tmp/etc/  --bindir=/tmp/etc  --enable-rewrite        
        指定所有文件默认安装在/app/apache目录下,sysconfdir=/etc/apache/为/etc/配置文件存在目录,bin二进制文件放在/tmp/bin目录下,--enable-rewrite为启用重定向特性      
    
        在安装过程观察有无软件包安装错误,若有,则对应安装对应的开发软件包    
        yum install 包名-devel    
    6. make     根据makefile 文件,构建应用程序    
    7. make install   复制文件到相应路径   
    8. 安成功检测     
       /etc/  /bin目录存放在/tmp下,其他配置文件在/app/apache目录下 
    9. 防火墙   
      centos6    
        service iptables stop 马上禁用    
        chkconfig iptables off 下次开机禁用   
      centos7   
        systemctl  stop firewalld.service  马上禁用   
        systemctl  disable  firewalld.service 下次开机禁用    
    10. 访问测试    
       netstat -ntl 查看服务对应端口是否打开   
       iptables -vnL 查看防火墙    
       /app/apache/bin/apachectl start 开启httpd服务,apachectl的路径为/app/apache/bin/apachectl         
    11. 将apachectl命令导入PATH环境变量
       PATH=PATH:/app/apache/bin/apachectl
    10. apachectl start 开启服务 
    

    7、过滤ifconfig命令结果中所有大于0且小于255的三位数(5分)

    ifconfig | egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"
    ifconfig | egrep -o "\<25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]"   
    

    8、将用户mage被误删除的的家目录恢复,复制/etc/shadow到mage家目录中。并设置只有用户wang可以读取/home/mage/shadow(5分)

    cp -a /etc/skel/ /home/mage
    cd /home/mage
    chown mage:mage mage/
    chmod 700 mage/
    cp /etc/shadow /home/mage
    setfacl -m u:mage:r-- /home/mage/shadow
    

    9、统计/var/log/httpd/access.log日志访问频繁前十的地址,并从大到小排序(5分)

    cut -d" " -f1 /var/log/httpd/access.log |sort|uniq -c| sort -nr|head -n10|tr -s " "|cut -d" " -f3
    

    10、开启两个终端,将终端1 中输入命令的执行结果输出,并同时输出到终端2 (5分)

    echo "wangnan sb" > /dev/pts/1
    

    11、误删除/lib64/libc.so.6系统库文件,如何恢复之,实验说明(5分)

    先进入系统修复模式下   
    Cp /lib64/libc.so.6 /mnt/sysimage/lib64    /mnt/sysimage为真实系统根目录
    

    12、误删除rpm包命令,如何恢复之,实验说明 (5分)

    先进入修复模式下   
    mkdir /mnt/cdrom
    mount /dev/cdrom /mnt/cdrom
    rpm -ivh /mnt/cdrom/Packages/rpm-4.11.3-21.e17.x86_64.rpm --root=/mnt/sysimage   以root的身份将rpm包安装在系统真实目录/mnt/sysimage下
    chmod /mnt/sysimage   切换进入真实系统下
    mount /dev/cdrom /mnt
    rpm -ivh /mnt/Packages/httpd*   测试rpm是否修复成功
    

    13、计算2+4+6+…+96+98+100之和(5分)

    echo {2..100..2} | tr -s ' ' '+' | bc
    

    14、取/etc/sysconfig/network-scripts/ifcfg-ens33基名,用两种方法实现(5分)

    echo /etc/sysconfig/network-scripts/ifcfg-ens33 |egrep -o '[^/]+?$'
    basename /etc/sysconfig/network-scripts/ifcfg-ens33
    

    15、对/etc/目录,分别执行命令,实现以下功能(5分)
    (1)按从大到小顺序显示文件列表

    ll /etc/ | tr -s " " | cut -d' ' -f 5,9 | sort -n -r | cut -d ' ' -f 2
    

    (2)只显示隐藏文件

    ls -aI "[^.]*" /etc
    

    (3)只显示目录

    ll -a /etc/ | egrep ^d
    

    (4)按mtime时间显示文件列表

    ls -a -t /tmp/
    

    (5)按atime时间显示文件列表

    ls -a -ut /tmp/
    

    16、编写/root/bin/excute.sh,实现与用户交互,判断用户给予的参数是否可读,可写,可执行(5分)

    #!/bin/bash
    read -p "please input fimename " name || exit
    [ -r $name ] && echo "file $name have read"
    [ -w $name ] && echo "file $name have write"
    [ -x $name ] && echo "file $name have excute"
    

    17、编写/root/bin/create.sh可以生成新的脚本包括作者、联系方式、版本、时间和描述等,并且可以直接对其进行编辑,编辑完后自动加上执行权限(5分)

    #!/bin/bash
    [ $# -gt 1 ] &&{ echo "the args is error";exit;}
    [ $# == 0 ] && read -s -p "please input script name: " name || name="$1"
    echo "#!/bin/bash
    # filename "$name"
    # author:danran
    # telephone:1709369XXXX
    # versions:1.5 
    # time is `date +%F`
    # describe:This is a script to create a template"
     >"$name"
    chmod +x "$name"
    vim "$name"
    

    18、写一个脚本,让它可以传递两个参数后,实现对该参数的加、减、乘、除运算并输出运算后的值(5分)

    #!/bin/bash
    [ $# != 2 ] && { echo "usage:file.sh num1 num2" ; exit ; }
    echo "$1+$2=$[ $1+$2 ]"
    echo "$1*$2=$[ $1*$2 ]"
    echo "$1-$2=$[ $1-$2 ]"
    [ "$2" -eq 0 ] && echo "The divisor is 0 " ||echo "$1/$2=$[ $1/$2 ]"
    

    19、编写/root/bin/wcfile.sh统计/etc目录中的目录的个数,文件的个数,并求出/etc/目录中的目录和文件个数的总和(5分)

    #!/bin/bash
    dir=`ls -al  /etc/ | egrep \(^d\|^.d\) | wc -l`
    file=`ls -al /etc/ | egrep \(^-\|^.-\) | wc -l`
    let sum=$dir+$file
    echo "the dir is $dir;the file is $file;the file and dir sum is $sum"
    

    20、/编写/root/bin/baketc.sh 查找/etc/目录中超过1天未修改的文件,将其压缩备份至/bakup目录。若之前没有备份过则备份之,若存在的备份文件超过了2分钟则备份之,否则退出。备份的格式为YYYY-MM-DD-hh-mm-ss.xz(Y表示年,M表示月,D表示日,h表示时,m表示分,s表示秒)(5分)

     #!/bin/bash
     ls *.xz > /dev/null || { find /etc -mtime +0 > /app/tar.txt && tar Jcf /backup/
    `date "+%F-%H-%M-%S"`.xz -T /app/tar.txt ;exit; }
    
    [ -z `find /backup/*.xz  -mmin -2` ] &&  find /etc -mtime +0 > /app/tar.txt &&
    tar Jcf /app/backup/`date "+%F-%H-%M-%S"`.xz -T /app/tar.txt || exit
    

    参考答案

    #!/bin/bash
    DATE=`date +"%Y-%m-%d-%H-%M-%S"`
    WCFILE=`ls /backup | wc -l`
    [ -d /backup ] || mkdir /backup
    [ $WCFILE -eq 0 ] && find /etc/ -mtime +1 | xargs tar -Jcvf /backup/$DATE\.tar.xz
    FILE=$[`ls -lt /backup/* | cut -d" " -f10 | head -1 |tr -dc [:digit:]`+200]
    echo "new file old time add two minute was: $FILE"
    NOW=$[`date +"%Y%m%d%H%M%S"`]
    echo "NOW system time is: $NOW"
    [ $FILE -lt $NOW ] && find /etc/ -mtime +1 | xargs tar -Jcvf /backup/$DATE\.tar.xz
    

    有趣的邮件

    [test]
    name=test
    baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
    gpgcheck=0
    enabled=1
    [test2]
    name=test2
    baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
    gpgcheck=0
    enabled=1
    yum -y install msmtp mutt
    cat .muttrc
    set sendmail="/usr/bin/msmtp"
    set use_from=yes

    相关文章

      网友评论

          本文标题:第一阶段测试

          本文链接:https://www.haomeiwen.com/subject/powxcxtx.html