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

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

    1)加载 BIOS 的硬件信息与进行自我测试,并依据配置取得第一个可启动的装置;

    2)读取并运行第一个启动装置内 MBR 的 boot Loader ( grub, spfdisk 等程序);

    3)依据 boot loader 的配置加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;

    4)在硬件驱动成功后,Kernel 会主动呼叫 init 程序,而 init 会取得 run-level 等级;

    5)init 运行 /etc/rc.d/rc.sysinit 文件来准备软件运行的作业环境 (如网络、时区等);

    6)init 运行 run-level 下的各个服务使之启动 (script 方式);

    7)init 运行 /etc/rc.d/rc.local 文件;

    8)init 运行终端机模拟程序 mingetty 来启动 login 程序,最后就等待使用者登陆;


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

    1)取得网络环境与主机信息:

     读取网络配置档 /etc/sysconfig/network ,取得主机名称与默认网关等网络环境。 

    2)测试与挂载内存装置 /proc 及 U盘 装置 /sys:

     除挂载内存装置 /proc 之外,还会主动侦测系统上是否具有 usb 的装置, 若有则会主动加载 usb的驱动程序,并且尝试挂载 usb 的文件系统。 

    3)决定是否启动 SELinux :

    4)启动系统的随机数产生器

    5)配置终端字体: 

    6)配置显示於启动过程中的欢迎信息; 

    7)配置系统时间 (clock) 与时区配置:需读入 /etc/sysconfig/clock 配置值 

    8)周边设备的侦测与 Plug and Play (PnP) 参数的测试:

     根据核心在启动时侦测的结果 (/proc/sys/kernel/modprobe ) 开始进行 ide / scsi / 网络 / 音效 等周边设备的侦测,以及利用以加载的核心模块进行 PnP 装置的参数测试。 

    9)使用者自定义模块的加载

     使用者可以在 /etc/sysconfig/modules/*.modules 加入自定义的模块,则此时会被加载到系统当中 

    10)加载核心的相关配置:

     系统会主动去读取 /etc/sysctl.conf 这个文件的配置值。 

    11)配置主机名称与初始化电源管理模块 (ACPI) 

    12)初始化软件磁盘阵列:主要是透过 /etc/mdadm.conf 来配置好的。 

    13)初始化 LVM 的文件系统功能 

    14)以 fsck 检验磁碟文件系统:会进行 filesystem check 

    15)进行磁碟配额 quota 的转换 (非必要): 

    16)重新以可读写模式挂载系统磁碟: 

    17)启动 quota 功能:所以我们不需要自订 quotaon 的动作 

    18)启动系统虚拟随机数产生器 (pseudo-random): 

    19)清除启动过程当中的缓存文件: 

    20)将启动相关资讯加载 /var/log/dmesg 文件中。 

    

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

    1)sed

        逐行处理文本并将处理后的文本标准输出,但并不改变原文本内容。

        ①sed使用格式及选项

            [root@a ~]# [OPTION] 'n1,n2]fun' [input-file]

             OPTION

             -n  :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 

                  的数据一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过

                  sed 特殊处理的那一行(或者动作)才会被列出来。

             -e  :直接在命令列模式上进行 sed 的动作编辑;

             -f  :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 

              sed 动作;

             -r  :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)

             -i  :直接修改读取的文件内容,而不是由萤幕输出。

             n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作

                     是需要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』

             fun

             a   :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)

             c   :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行

             d   :删除,因为是删除,所以 d 后面通常不接任何字符串;

             i   :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

             p   :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~

             s   :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!

                    例如 1,20s/old/new/g 就是啦!

        ②实例

            [root@a ~]# cat sed   //被编辑的文件
            1
            2
            3
            4
            [root@a ~]# sed '3ad' sed    //在指定范围后添加字符串
            1
            2
            3
            d
            4
            [root@a ~]# sed '3d' sed  //删除指定范围的行
            1
            2
            4
            [root@a ~]# sed '2,3cno' sed  //替换指定范围的行为no
            1
            no
            4
            [root@a ~]# sed '3iok' sed  //在第3行前插入ok
            1
            2
            ok
            3
            4
            [root@a ~]# sed -n '2,3p' sed     //在静默下输出选择的文本
            2
            3
            [root@a ~]# sed '1,4s/3/ok/g' sed   //将3替换成ok
            1
            2
            ok
            4



            

        

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

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

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

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

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


你可能感兴趣的:(linux,软件,程序,课程,终端机)