马哥考试题及答案

兄弟们,明天就要考试了,今天练的肿么样了,吼吼,我终于搞定了.如今共享一下答案.但愿你们都能拿100分.加油,同时也但愿你们帮忙纠正下错误.

前提: 1、每位同窗的IP地址为172.16.X.1, 子网掩码为255.255.0.0,网关为172.16.0.1,DNS服务器为172.16.0.1,主机名为stuX.magedu.com,其中X为你的座位号; 2、yum源为http://172.16.0.1/yum/{Server,Cluster,ClusterStorage,VT,errata}; 一、安装操做系统,要求: 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) 系统会莫名其妙地重启; 解答: #挂载光盘 linux rescue # chroot /mnt/sysp_w_picpath # passwd 改root的密码 # mv /var/tmp/grub.test /boot/grub/grub.conf # grub # root (hd0,0) # setup (hd0) # quit # vi /etc/rc.d/rc.local 删除最后一行 二、建立一个空间大小为10G的RAID5设备;其chuck大小为32k;要求此设备开机时能够自动挂载至/backup目录; # mdadm -C /dev/md1 -l 5 -n 3 -x 1 -c 32 -a yes /dev/sda{5,6,7,8} # mkfs.ext3 /dev/md1 # mkdir /backup # echo "/dev/md1 /backup ext3 defaults 0 0" >>/etc/fstab 三、建立一个由两个物理卷组成的大小为8G的卷组myvg,要求其PE大小为8M;然后在此卷组中建立一个大小为4G的逻辑卷lv1,此逻辑卷要能在开机后自动挂载至/users目录; 解答: # fdisk /dev/sda # partprobe # pvcreate /dev/sda{9,10} # vgcreate /dev/myvg -s 8M /dev/sda{9,10} # lvcreate -L 4G /dev/myvg -n lv1 # mke2fs -j /dev/myvg/lv1 # echo "/dev/myvg/lv1 /users ext3 defaults 0 0" >>/etc/fstab 四、完成如下任务: (1)新建系统组mysql;新建系统用户mysql,要求其没有家目录且shell为/sbin/nologin; # useradd -r -s /sbin/nologin mysql (2)新建GID为600的组magedu;新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名; # groupadd -g 600 magedu # useradd gentoo -d # useradd -d /users/gentoo gentoo && echo "gentoo"|passwd --stdin gentoo (3)新建用户centos,其家目录为/users/centos,密码同用户名; # useradd -d /users/centos centos && echo "centos"|passwd --stdin centos (4)新建用户www,其家目录为/users/www; # useradd -d /users/www www (5)用户gentoo和centos均以magedu为其附加组; # usermod -a -G magedu gentoo && usermod -a -G magedu centos 五、建立一个2G的分区,文件系统为ext3,卷标为DATA,块大小为1024,预留管理空间为磁盘分区的3%,要求开机后能够自动挂载至/data目录,而且自动挂载的设备要使用卷标进行引用; 解答: # fdisk /dev/sda # partprobe # mke2fs -L DATA -b 1024 -m3 -j /dev/sda11 # echo "LABEL=DATA /data ext3 defaults 0 0" >>/etc/fstab 六、缩减前面建立的逻辑卷lv1的大小至2G;要求gentoo的家目录等不能丢失;缩减完成后以gentoo用户下载http://172.16.0.1/pub/Sources/new_lamp/httpd-2.2.19.tar.bz2至gentoo本身的家目录; 解答: # e2fsck -f /dev/myvg/lv1 # resize2fs /dev/myvg/lv1 2G # lvreduce -L 2G /dev/myvg/lv1 # mount /dev/myvg/lv1 /users/ # su - gentoo # wget http://172.16.0.1/pub/Sources/new_lamp/httpd-2.2.19.tar.bz2 七、复制文件/etc/rc.d/rc.sysinit至/data目录,其属主为root用户,属组为root组;要求此文件能够被任何人读取,能够被gentoo用户和magedu组读写,但centos没有任何访问权限; 解答: # mount -o remount,acl /dev/sda11 /data # cp /etc/rc.d/rc.sysinit /data/ # chown root.root rc.sysinit # chmod o=w rc.sysinit # setfacl -m u:gentoo:rw rc.sysinit # setfacl -m g:magedu:rw rc.sysinit # setfacl -m u:centos:--- rc.sysinit 八、配置centos用户能以root用户的身份执行useradd,userdel、usermod和passwd命令(但不能修改root用户的密码)且命令执行时不须要输入密码;然后以centos的身份删除用户www,但不要删除其家目录; 解答: # visudo 在最后新增以下一行 centos ALL=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd, ! /usr/bin/passwd root # su - centos # sudo /usr/sbin/userdel www 九、配置本地的yum源指向,然后安装mysql-server和httpd软件包; 解答: [Server] name=Server baseurl=http://172.16.0.1/yum/Server gpgcheck=0 [Cluster] name=Cluster baseurl=http://172.16.0.1/yum/Cluster gpgcheck=0 [ClusterStorage] name=ClusterStorage baseurl=http://172.16.0.1/yum/ClusterStorage gpgcheck=0 [VT] name=VT baseurl=http://172.16.0.1/yum/VT gpgcheck=0 [errata] name=errata baseurl=http://172.16.0.1/yum/errata gpgcheck=0 # yum install mysql-server httpd 十、下载并编译安装axel;软件包所在的地址:ftp://172.16.0.1/pub/Sources/downloader;要求: 1)软件的默认安装目录为/usr/local/axel; 2)安装完成之后,全部用户能够直接执行axel命令,并且不用输入命令的完整的路径; 解答: # wget ftp://172.16.0.1/pub/Sources/downloader/axel.2.4.tar.gz # tar xf axel.2.4.tar.gz # cd axel.2.4 # ./configure --prefix=/usr/local/exel # make # make install echo "export PATH=$PATH:/usr/local/axel/bin" >>/etc/profile 十二、新建目录/backup/test,其属组为magedu,且此组具备读写权限,其它用户没有任何权限;magedu组成员在此目录中建立的文件的属组都须要是magedu,且magedu组中每一个成员在此目录中只能删除本身的文件; 解答: # mkdir /backup/test # cd /backup # chown :magedu test # chmod g=rwx,o=,g+s,o+t test 1三、配置当前主机内核参数,以容许在不一样的网络接口间转发数据包;要求此项配置即刻生效而且在从新启动系统后不会失效。 解答: # vi /etc/sysctl.conf 把net.ipv4.ip_forward = 0 改成net.ipv4.ip_forward = 1 # sysctl -p 1四、启用本机的VNC服务,并确保root可用可使用redhat做为密码登陆系统; # yum install vnc-server # vncpasswd redhat redhat # vncserver & vi /root/.vnc/xstartup 去年注释 unset SESSION_MANAGER exec /etc/X11/xinit/xinitrc twn改为gnome-session # vncserver -kill :1 # vncserver & 1五、配置本机每隔两天在凌晨3点20备份一次/etc目录,备份文件存放至/backup目录,文件名形如:etc-2011-11-20.tar.bz2; # 20 3 */3 * * tar -cjf /backup/etc-`date +%F`.tar.bz2 /etc/ 1六、使用find命令完成以下任务: (1)找到/etc目录下属于root用户且至少7分钟没有访问过的普通文件,并将它们复制到/tmp/test目录; 要求:/tmp/test目录须要本身事先建立,而且为其建立符号链/users/test; (2)找到/users目录下全部没有属主且没有属组的文件,并将其属组修改成gentoo,将其属组修改成magedu; # mkdir /tmp/test && ln -s /tmp/test /users/test # find /etc/ -user root -amin +7 -type f -exec cp {} /tmp/test/ \; # find /users/ -nouser -nogroup -exec chown gentoo:magedu {} \; 1七、为centos用户的家目录建立磁盘使用限额,要求其可以使用的磁盘空间最大为100M,软限制为120M;要求完成后验正其有效性; # mount -o remount,usrquota,grpquota /users/ # quotacheck -cmug /users/ # setquota -u centos 102400 122880 0 0 -a /users/ # su - centos # dd if=/dev/zero of=./centos.quota bs=30M count=1 # dd if=/dev/zero of=./centos.quota.1 bs=30M count=1 # dd if=/dev/zero of=./centos.quota.2 bs=30M count=1 # dd if=/dev/zero of=./centos.quota.3 bs=30M count=1 1八、为逻辑卷lv1建立快照卷lv1_snap,要求此卷只读,且大小为1G;然后经过此卷将数据备份至/backup目录归档压缩存放; # lvcreate -s -L 1G -n lv1_snap -p r /dev/myvg/lv1 # mount /dev/myvg/lv1_snap /mnt/ # tar -cjf /backup/lv1_snap.tar.bz2 /backup/ 1九、写一个脚本analyzelog.sh,完成日志分析: 说明:此脚本能够接受选项(i,d,t,a),使用格式:analyzelog <-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.一、access_log.2,下载地址为:ftp://172.16.0.1/pub/docs #!/bin/bash # Author: Honway.Liu # Date: 2012-03-02 # Description: ########################################### ########## Script Start ################# ########################################### #Part 1: Define some function ########################################### ACCESS_COUNT() { echo "The $OPTARG access count: `grep $OPTARG $FILENAME | wc -l`" } DATE_COUNT() { echo "The $OPTARG access count list:" cat $FILENAME | grep $OPTARG | cut -d' ' -f1 | sort | uniq -c | sort -n | awk -F ' ' '{print $2 ":\t"$1 }' } TYPE_COUNT() { T=`cat $FILENAME | cut -d' ' -f7 | grep ${OPTARG}$ | wc -l` echo "The $OPTARG access aount: $T" } ALL_IP_COUNT() { cat $FILENAME | cut -d' ' -f1 |sort|uniq -c| sort -n|awk -F ' ' '{print $2 ":\t"$1 }' } Usage() { cat <<EOF ####################################################### Usage :$0 <-i IPADDR|-d DATE|-t FILETYPE|-a> FILENAME" Accept date type: 01/Mar/2012 ####################################################### EOF } # Part 2: Please give a option else whill exit if [ $# -le 1 ]; then Usage exit fi ######################################################## # Part 3: Main script. while getopts ":i:d:t:a" OPT ; do shift $[$OPTIND-1] FILENAME=$1 if [ -z $FILENAME ]; then Usage exit 0 fi case $OPT in i) ACCESS_COUNT ;; d) DATE_COUNT ;; t) TYPE_COUNT ;; a) ALL_IP_COUNT ;; *) Usage ;; esac done
相关文章
相关标签/搜索