前提:

一、每位同学的IP地址为172.16.X.1, 子网掩码为255.255.0.0,网关为172.16.0.1,DNS服务器为172.16.0.1,主机名为stuX.magedu.com,其中X为你的座位号;
二、yum源为http://172.16.0.1/yum/{Server,Cluster,ClusterStorage,VT,errata};
 
1、安装操作系统,要求:
  1)新建一个虚拟机,要求内存大于等于512M,虚拟SCSI磁盘大小为320G,有两块网卡:第一块网卡为桥接模式,第二块网卡为仅主机模式;
  2)下载ftp://172.16.0.1/pub/p_w_picpaths/boot.iso文件至物理机,并以之作为启动盘启动安装过程;
  3)在安装启动界面boot:提示符后面输入(引号里面的内容):"linux  ip=172.16.X.1 netmask=255.255.0.0 gateway=172.16.0.1 dns=172.16.0.1 ks=http://172.16.0.1/exam.cfg"
  4)安装完成后需在事先排除系统故障,而后继续后面的题目;
  a) root用户密码未知,需要修改为你所需要的密码;
  b) grub损坏;
  c) 系统会莫名其妙地重启;
  
2、创建一个空间大小为10G的RAID5设备;其chuck大小为32k;要求此设备开机时可以自动挂载至/backup目录;
 
3、创建一个由两个物理卷组成的大小为8G的卷组myvg,要求其PE大小为8M;而后在此卷组中创建一个大小为4G的逻辑卷lv1,此逻辑卷要能在开机后自动挂载至/users目录;
 
4、完成以下任务:
  (1)新建系统组mysql;新建系统用户mysql,要求其没有家目录且shell为/sbin/nologin;
  (2)新建GID为600的组magedu;新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名; 
  (3)新建用户centos,其家目录为/users/centos,密码同用户名;
  (4)新建用户www,其家目录为/users/www;
  (5)用户gentoo和centos均以magedu为其附加组;
 
5、创建一个2G的分区,文件系统为ext3,卷标为DATA,块大小为1024,预留管理空间为磁盘分区的3%,要求开机后可以自动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用;
 
6、缩减前面创建的逻辑卷lv1的大小至2G;要求gentoo的家目录等不能丢失;缩减完成后以gentoo用户下载http://172.16.0.1/pub/Sources/new_lamp/httpd-2.2.19.tar.bz2至gentoo自己的家目录;
 
7、复制文件/etc/rc.d/rc.sysinit至/data目录,其属主为root用户,属组为root组;要求此文件可以被任何人读取,可以被gentoo用户和magedu组读写,但centos没有任何访问权限;
 
8、配置centos用户能以root用户的身份执行useradd,userdel、usermod和passwd命令(但不能修改root用户的密码)且命令执行时不需要输入密码;而后以centos的身份删除用户www,但不要删除其家目录;
 
9、配置本地的yum源指向,而后安装mysql-server和httpd软件包;
 
10、下载并编译安装axel;软件包所在的地址:ftp://172.16.0.1/pub/Sources/downloader;要求:
1)软件的默认安装目录为/usr/local/axel;
2)安装完成以后,所有用户可以直接执行axel命令,而且不用输入命令的完整的路径;
 
12、新建目录/backup/test,其属组为magedu,且此组具有读写权限,其它用户没有任何权限;magedu组成员在此目录中创建的文件的属组都需要是magedu,且magedu组中每个成员在此目录中只能删除自己的文件;
 
13、配置当前主机内核参数,以允许在不同的网络接口间转发数据包;要求此项配置即刻生效并且在重新启动系统后不会失效。
 
14、启用本机的VNC服务,并确保root可用可以使用redhat作为密码登录系统;
 
15、配置本机每隔两天在凌晨3点20备份一次/etc目录,备份文件存放至/backup目录,文件名形如:etc-2011-11-20.tar.bz2;
 
16、使用find命令完成如下任务:
  (1)找到/etc目录下属于root用户且至少7分钟没有访问过的普通文件,并将它们复制到/tmp/test目录;
       要求:/tmp/test目录需要自己事先创建,并且为其创建符号链/users/test;
  (2)找到/users目录下所有没有属主且没有属组的文件,并将其属组修改为gentoo,将其属组修改为magedu;
 
17、为centos用户的家目录创建磁盘使用限额,要求其能够使用的磁盘空间最大为100M,软限制为120M;要求完成后验正其有效性;
 
18、为逻辑卷lv1创建快照卷lv1_snap,要求此卷只读,且大小为1G;而后通过此卷将数据备份至/backup目录归档压缩存放;
 
19、写一个脚本analyzelog.sh,完成日志分析:
说明:此脚本可以接受选项(i,d,t,a),使用格式:analyzelog.sh <-i IP|-d DATE|-t TYPE|-a> LOG_FILE :
   (1)当用户使用选项-i时,统计出LOG_FILE文件中指定IP地址的访问次数(通常每一行为一次);
   (2)当用户使用选项-d时,统计出LOG_FILE文件中指定日期(某一天,如:16/Feb/2012)内每个IP地址访问的次数;如:
    192.168.0.1:33
    192.168.0.195:17
    ...
   (3)当用户使用选项-t时,统计出LOG_FILE文件中以后缀后指定类型的文件(如.png表示png格式的图片)被访问的次数;
   (4)当用户使用选项-a时,统计出LOG_FILE文件中每个IP地址访问的次数;
 
样例日志文件为access_log、access_log.1、access_log.2,下载地址为:ftp://172.16.0.1/pub/docs
答案:

1 vim /etc/yum.repos.d/local.repo

[base]

name=Server

baseurl=http://172.16.0.1/yum/Server

gpgcheck=0

enabled=1

 

[VT]

name=VT

baseurl=http://172.16.0.1/yum/VT

gpgcheck=0

enabled=1

 

[Cluster]

name=Cluster

baseurl=http://172.16.0.1/yum/Cluster

gpgcheck=0

enabled=1

 

[CS]

name=ClusterStorage

baseurl=http://172.16.0.1/yum/ClusterStorage

gpgcheck=0

enabled=1

yum groupinstall “Development Libraries”

配置主机名字:

vim /etc/sysconfig/network

HOSTAME=stu5.magedu.com

 

grub损坏:

grub> find (hd0,0)/ Tb

     root hd0,0

     setup hd0

      quit

cp /var/tmp/grup.test /boot/grub/grub.conf

解决重启问题:

vim /etc/inittab

vim /etc/rc.d/rc.local

修改密码:

进入单用户模式 passwd

redhat  redhat

 

2mkdir /backup

mdadm -C /dev/md1 -a yes -l 5 -n 3 -c 32 /dev/sda5 /dev/sda6 /dev/sda7

mke2fs -j /dev/md1

vim /etc/fstab

/dev/md1   /backup   ext3  defaults   0 0

3mkdir /users

pvcreate /dev/sda7 /dev/sd8 创建物理卷

vgcreate –s 8M myvg /dev/sda7 /dev/sda8  创建卷组

lvcreate –L 4G –n lv1 myvg 创建逻辑卷

mke2fs –j /dev/myvg/lv1

vim /etc/fstab

/dev/myvg/lv1  /users  ext3  defaults  0 0

4groupadd –r mysql  useradd –r –M –s /sbin/nologin mysql

Groupadd –g 600 magedu  useradd –d /users/gentoo

Passwd gentoo  gentoo  gentoo

useradd –d /users/centos centos

passwd centos   centos   centos

useradd –d /users/www www

usermod –G magedu gentoo   usermod –G magedu centos

5mkdir /data

mkfs –j –L DATA –b 1024 –m 3 /dev/sda10

vim /etc/fstab

LABEL=DATA  /data  ext3  defaults  0 0

6umount /dev/myvg/lv1

e2fsck –f /dev/myvg/lv1 

resize2fs /dev/myvg/lv1 2G

lvreduce –L 2G /dev/myvg/lv1 

mount-a

7cp /etc/rc.d/rc.sysinit /data/

umount  /data

tune2fs –o acl /dev/sda10 /data

setfacl –m u:gentoo:rw- /data/rc.sysinit

setfacl –m g:magedu:rw- /data/rc.sysinit

setfacl –x u:centos /data/rc.sysinit

8visudo

centos ALL=(root) NOPASSWD:/usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/usrmod,/usr/bin/passwd,!/usr/bin/passwd root

su – centos

sudo /usr/sbin/userdel www

9yum install mysql-server  yum install httpd

10tar xvf axel

cd /usr/local/axel-2.4/

./configure --prefix=/usr/local/axel

 make

  make install

  vim /etc/profile

  #export PATH=$PATH:/usr/local/axel/bin

  source /etc/profile     /etc/man.config  MANPATH  /usr/local/axel/share/man

12mkdir /backup/test  cd /backup  chown :magedu test   chmod g+wr test   chmod o=--- test   chmod g+s test   chmod o+t test

13vim /etc/sysctl.conf

14vncpasswd  vncserver &

15vim /etc/fstab

crontab –e    20 3 */2 * * /bin/tar -jcf /backup/etc-`date +%F` .tar.bz2 /etc

16find /etc -user root -amin +7 -type f -exec cp {} tmp/test \;

17vim /etc/fstab  defaults,usrquota    mount -o remount,usrquota /dev/myvg/lv1

quotacheck -cmug /users

edquota centos

quotaon /users dd if=/dev/zero of=./a bs= 1M count=130

18lvcreate -L 1G -s -p r -n snap_lv1 /dev/myvg/lv1   cd /backup/  tar jcf /tmp/etc.tar.bz2 ./ 

19!/bin/bash

#Name:analyzelog.sh

#Description:Analyze log files..

#Version: 0.0.1

#Author:WangLiDong

#Datetime: 2012-03-04 23:18:29

 

byip() {

    ! grep -o "^$1" $log &> /dev/null && echo "$log no exist THIS IP:$1." && return 3

    echo -n "$1 :"

    echo -e "\033[ 32m `grep -o "^$1" $log | wc -l`\033[ 0m "

 

}

bydate() {

    ! grep "\[$1.*\]" $log &> /dev/null && echo "$log no exist this date:$1." && return 4

    for ip in `grep "$1" $log | grep -o "^[0-9\.]\{1,\}" | sort -u`;do

        byip $ip

    done

}

 

byname() {

    ! grep "$1" $log &> /dev/null && echo "$log no exist *$1..." && return 5

    echo -e "\033[ 31m ### Name ###   TIMES\033[ 0m "

    echo -n "*$1:         "

    echo -e "\033[ 32m `grep "$1" $log | wc -l`\033[ 0m "

}

 

byall() {

    for myip in `grep -o "^[0-9\.]\{1,\}" $log | sort -u`;do

        byip $myip

    done

}

 

howtouse() {

    echo "Use like this:analyzelog <-i IP|-d DATE|-t TYPE|-a> LOG_FILE"

}

 

printinfo() {

    echo -e "\033[ 31m ---$log---\033[ 0m "

    echo -e "\033[ 31m ### IP ###   TIMES\033[ 0m "

}

 

log=`echo $@ | cut -d ' ' -f "$#"`

[ ! -f $log ] && echo "$log not exist..." && exit 6

while getopts ":i:d:t:a" opt;do

        case $opt in

                i)

           printinfo

           byip $OPTARG;;

                d)

           echo "$OPTARG"

           printinfo

           bydate $OPTARG;;

        t)

           byname $OPTARG;;

        a)

              printinfo

           byall;;

        ?) howtouse;;

        esac

done