linux运维实战练习-2016年1月19日-2月3日课程作业

I.作业(练习)内容:

  1、描述centos6系统开机启动流程;

    a.开机BIOS加电自检测各种硬件信息

    b.读取第一个可启动设备MBR,加载grub

    c.依据boot loader的设置初始化内核信息,内核依据initrd虚拟的磁盘和文件系统实现对根文件系统的挂载

    d.切换到根文件系统,

    e.启动系统第一个进程init,准备好系统所需要的各项服务

    f.登录界面



   2、描述/etc/rc.d/sysinit脚本功能;

     通过分析代码查看sysinit所具有的功能有:

    a.取得网络环境与主机名

    b.激活udev和selinux

    c.挂载/etc/fstab文件中定义的文件系统

    d.去检测根文件系统,并以读写方式重装挂载根文件系统

    e.设置系统时钟;

    f.激活swap设备

    g.根据/etc/sysctl.conf文件设置内核参数

    h.激活lvm及软raid设备

    i.加载额外设备的驱动程序

    j.清理操作


   3、总结文本处理工具sed及awk的用法;(必须附带示例)     

sed

//:表达式定址

n:默认不输出

p:打印

示例:

#打印包含TEM的行

sed -ne '/TEM/p' gc.txt

H:追加到保持空间

D:多行删除

$:最后一行

!:取反

g:从保持空间覆盖模式空间

s:/被替换/替换/

示例:

#删除所有换行符

sed 'H;$!D;g;s/\n//g'


awk

awk '/正则表达式/{过程}' 输入文件

$0 整行  $1 第一个字段  $NF  最后1个字段

以下是mysql数据库一段线上代码

slave_stat=($($slave_tool -e "show slave status\G"|grep Running |awk '{print $2}'))



   4、写一个脚本,生成10个随机数,并按从小到大进行排序(要求至少使用2中方法);

      for i in `seq 1 10`;do echo $RANDOM ;done | sort -n


   5、在每周二的凌晨1点5分执行脚本/data/get_username.sh,并将脚本的输出至/tmp/get_username.log日志文件中;


/usr/bin/mysqldump -uclient -p**************** jzjz  > /data/mysqlbak/`date +%Y%m%d`.sql

if [ $? -eq 0 ];then

        echo "backup ok" >> /tmp/log/mysqlbak.log

else

        echo "backup error" >> /tmp/log/mysqlbak.log

fi


cortab -e

0 2 * * *  /data/mysqlbak/backup_mysql.sh


   6、写一个脚本:如果某路径不存在,则将其创建为目录;否则显示其存在,并显示内容类型;


    #!/bin/bash 

    # 

    if [ -z $1 ];then 

       echo "Usage:$0 <path>" 

       exit 1 

   fi 

   if [ ! -d $1 ];then 

      mkdir -p $1 

   else 

      echo "$1 is exists." 

      file $1 

   fi



   7、写一个脚本,打印9X9乘法表;

     #!/bin/bash

     for i in 1 2 3 4 5 6 7 8 9 ;do

             for j in 1 2 3 4 5 6 7 8 9 ;do

                     printf "%2d " $((i*j))

             done

             echo

    done


   8、描述dns的工作流程,以及完整搭建一套dns主从服务器,相关域名和ip可自行设定。


你可能感兴趣的:(linux运维实战练习-2016年1月19日-2月3日课程作业)