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

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

post自检加电-----mbr引导------加载内核-----启动init进出

  读取/etc/initlab文件

  初始化/etc/rc.d/rc.sysinit脚本

  执行/etc/rc.d/rc脚本

  执行/etc/rc.d/rc.local脚本

  执行/bin/login程序,进入登录状态

 

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

获取网络环境与主机类型,首先会读取网络环境设置文件“/etc/sysconfig/network”,获取主机名称和默认网关信息

答应文件欢迎信息

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

激活swap

检查根文件系统,并以读写方式重新加载

决定是否启动SELinux模式

接口设备的检测与即插即用(pnp)参数的测试。  

用户自定义模块的加载。用户可以再"/etc/sysconfig/modules/*.modules"加入自定义的模块,此时会加载到系统中。  

加载核心的相关设置。按"/etc/sysctl.conf"这个文件的设置值配置功能。  

设置系统时间(clock)。  

设置终端的控制台的字形。  

设置raid及LVM等硬盘功能。  

以方式查看检验磁盘文件系统。  

进行磁盘配额quota的转换。  

重新以读取模式载入系统磁盘。  

启动quota功能。  

启动系统随机数设备(产生随机数功能)。  

清楚启动过程中的临时文件。  

将启动信息加载到"/var/log/dmesg"文件中。 


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)