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


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

1、POST开机自检,加载COMS中存储的引导设备及引导顺序
2、找到第一个可以引导的设备
3、读取引导设备的第一个扇区上的MBR信息
4、读取MBR中的bootloader信息(前446字节)-- grub 1st stage
5、加载对stage2文件系统的支持 -- grub 1.5 stage
6、读取/boot/grub配置文件 -- grub 2 stage
7、初始化kernel:
8、运行/sbin/init(Upstart)
9、读取/etc/inittab设置默认运行级别
10、运行系统初始化脚本完成系统初始化 /etc/rc.d/rc.sysinit
11、启动对应运行级别下需要启动的服务 /etc/rc.d/rc#.d
12、运行非服务但是需要开机运行的程序 /etc/rc.d/rc.local
13、设置登录终端

二、描述/etc/rc.d/rc.sysinit: 系统初始化脚本的功能;

1、设置主机名;
2、设置欢迎信息;
3、激活udev和selinux;
4、挂载/etc/fstab文件中定义的文件系统;
5、检测根文件系统,并以读写方式重新挂载根文件系统;
6、设置系统时钟;
7、激活swap设备;
8、根据/etc/sysctl.conf文件设置内核参数;
9、激活lvm及software raid设备;
10、加载额外设备的驱动程序;
11、清理操作;

参考文章:
http://www.niubb.net/a/2015/05-05/409318.html
http://www.cnblogs.com/p_w_picpath-eye/archive/2011/10/21/2220344.html

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

    sed    http://www1707.blog.51cto.com/1184226/1739394

    awk    http://www1707.blog.51cto.com/1184226/1740618


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

[root@lab ~]# cat 41.sh 
#!/bin/bash
for ((i=0;i<$1;i++))
do
    num[$i]=$RANDOM
done
echo ${num[*]} |tr " " "\n" |sort -n
[root@lab ~]# sh 41.sh 10
926
2793
3576
3616
4599
5693
10890
19170
22063
27814
[root@lab ~]# cat 42.sh 
#!/bin/bash
for ((i=0;i<$1;i++))
do
    num[$i]=$RANDOM
done
for ((x=$[ ${#num[*]} - 1 ];x>0;x--))
do
    for ((y=0;y<$x;y++))
    do
        if [ ${num[$y]} -gt ${num[$[ $y + 1 ]]} ]
        then
            temp=${num[$[ $y +  1 ]]}
            num[$[ $y + 1 ]]=${num[$y]}
            num[$y]=$temp
        fi
    done
done
for ((i=0;i<${#num[*]};i++))
do
    echo ${num[$i]}
done
[root@lab ~]# sh 42.sh 10
5081
8003
10140
11362
16338
20534
22822
23943
26034
26842

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

ceontab -e
5 1 * * 2 sh /data/get_username.sh &>> /tmp/get_username.log

 

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

[root@lab ~]# cat 6.sh 
#!/bin/bash
if [ -f $1 ]
then
    echo $1 is already a file 
    ls -l $1
elif [ -d $1 ]
then
    echo $1 is already a dir
    ls -dl $1
else
    mkdir -p $1
    echo dir $1 create ok
    ls -dl $1
fi
[root@lab ~]# sh 6.sh /root/install.log
/root/install.log is already a file
-rw-r--r--. 1 root root 29285 Jan 24 22:31 /root/install.log
[root@lab ~]# 
[root@lab ~]# sh 6.sh /root/2/
/root/2/ is already a dir
drwxr-xr-x. 2 root root 4096 Jan 24 23:10 /root/2/
[root@lab ~]# 
[root@lab ~]# sh 6.sh /root/xxx
dir /root/xxx create ok
drwxr-xr-x. 2 root root 4096 Jan 24 23:16 /root/xxx


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

[root@lab ~]# cat 7.sh 
#!/bin/bash
for ((x=1;x<10;x++))
do
    for ((y=1;y<=$x;y++))
    do
        echo -e -n $y X $x = $[ $y * $x ] "\t"
    done
    echo
done
[root@lab ~]# sh 7.sh 
1 X 1 = 1     
1 X 2 = 2     2 X 2 = 4     
1 X 3 = 3     2 X 3 = 6     3 X 3 = 9     
1 X 4 = 4     2 X 4 = 8     3 X 4 = 12     4 X 4 = 16     
1 X 5 = 5     2 X 5 = 10     3 X 5 = 15     4 X 5 = 20     5 X 5 = 25     
1 X 6 = 6     2 X 6 = 12     3 X 6 = 18     4 X 6 = 24     5 X 6 = 30     6 X 6 = 36     
1 X 7 = 7     2 X 7 = 14     3 X 7 = 21     4 X 7 = 28     5 X 7 = 35     6 X 7 = 42     7 X 7 = 49     
1 X 8 = 8     2 X 8 = 16     3 X 8 = 24     4 X 8 = 32     5 X 8 = 40     6 X 8 = 48     7 X 8 = 56     8 X 8 = 64     
1 X 9 = 9     2 X 9 = 18     3 X 9 = 27     4 X 9 = 36     5 X 9 = 45     6 X 9 = 54     7 X 9 = 63     8 X 9 = 72     9 X 9 = 81


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


    DNS and BIND 笔记总结   http://www1707.blog.51cto.com/1184226/1740826
    DNS 主从实验         http://www1707.blog.51cto.com/1184226/1740827