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