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可自行设定。