本文共 7060 字,大约阅读时间需要 23 分钟。
linux培训测试题目和个人作答 有不对的请多指教
解答
挂载光盘 进入紧急救援模式 boot 后输入linux rescue # chroot /mnt/sysimage # passwd 改root的密码 # mv /var/tmp/grub.test /boot/grub/grub.conf# # grub # root (hd0,0) # setup (hd0) # quit #vim /etc/inittab 把 启动级别中的3和5别改为对应的3和5级别 # vi /etc/rc.d/rc.local 删除最后一行#exit
#reboot 2、创建一个空间大小为10G的RAID5设备其chuck大小为32k要求此设备开机时可以自动挂载至/backup目录 解答 需要4个5G的id为fd的磁盘 #fdisk /dev/sda #partprobe /dev/sda # 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 vim /etc/fstab 添加 /dev/md1 /backup ext3 defaults 0 0 或者 # echo "/dev/md1 /backup ext3 defaults 0 0" >>/etc/fstab 3、创建一个由两个物理卷组成的大小为8G的卷组myvg要求其PE大小为8M而后在此卷组中创建一个大小为4G的逻辑卷lv1此逻辑卷要能在开机后自动挂载至/users目录 解答 创建两个4G的分区 #fdisk /dev/sda #partprobe /dev/sda #pvcreate /dev/sda{9,10} #vgcreate myvg -s 8M /dev/sda{9,10} #lvcreate -L 4G -n lv1 myvg #mke2fs -j -L LV1 /dev/myvg/lv1 #mkdir /users #vim /etc/fstab 添加LABEL=LV1 /users ext3 defaults 0 0 或者 echo "LABEL=LV1 /backup ext3 defaults 0 0" >>/etc/fstab 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为其附加组 解答 可用一个脚本实现 #bin/bash useradd -u 300 -M -s /sbin/nologin mysql groupadd -g 600 magedu useradd -d /users/gentoo -G magedu gentoo echo gentoo | passwd --stdin gentoo useradd -d /users/centos -G magedu centos echo centos | passwd --stdin centos useradd -d /users/www www 5、创建一个2G的分区文件系统为ext3卷标为DATA块大小为1024预留管理空间为磁盘分区的3%要求开机后可以自动挂载至/data目录并且自动挂载的设备要使用卷标进行引用 #fdisk /dev/sda #partprobe /dev/sda #mkfs -t ext3 -L DATA -b 1024 -m 3 /dev/sda11 #vim /etc/fstab 添加LABEL=DATA /data ext3 defaults 0 0或者echo "LABEL=DATA /data ext3 defaults 0 0" >> /etc/fstab
6、缩减前面创建的逻辑卷lv1的大小至2G要求gentoo的家目录等不能丢失缩减完成后以gentoo用户下载http://172.16.0.1/pub/Sources/new_lamp/httpd-2.2.19.tar.bz2至gentoo自己的家目录 #umount /dev/myvg/lv1 要先卸载#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 7、复制文件/etc/rc.d/rc.sysinit至/data目录其属主为root用户属组为root组要求此文件可以被任何人读取可以被gentoo用户和magedu组读写但centos没有任何访问权限 #mount /dev/sda11 /data #mount -o remount,acl /dev/sda11 #cp /etc/rc.d/rc.sysinit /data #cd /data #setfacl -m u:gentoo:rw- /data/rc.sysinit #setfacl -m g:magedu:rw- /data/rc.sysinit #setfacl -m u:centos:--- /data/rc.sysinit 8、配置centos用户能以root用户的身份执行useradd,userdel、usermod和passwd命令但不能修改root用户的密码且命令执行时不需要输入密码而后以centos的身份删除用户www但不要删除其家目录 解答#visudo
编辑在最后添加 centos ALL=(root) NOPASSWD:/usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd, ! /usr/bin/passwd root #su - centos #sudo /usr/sbin/userdel www 9、配置本地的yum源指向而后安装mysql-server和httpd软件包 解答 #vim /etc/yum.repos.d/local.repo [base] name=Server baseurl=ftp://172.16.0.1/yum/Server gpgcheck=0 enabled=1 #yum install mysql-server httpd 10、下载并编译安装axel软件包所在的地址ftp://172.16.0.1/pub/Sources/downloader要求 1)软件的默认安装目录为/usr/local/axel 2)安装完成以后所有用户可以直接执行axel命令而且不用输入命令的完整的路径解答
#lftp 172.16.0.1/pub/Sources/downloader #get axel-2.2.19.tar.bz2 #wget ftp://172.16.0.1/pub/Sources/downloader/axel-2.2.19.tar.bz2 #tar xfv axel-2.2.19.tar.bz2 #cd axel-2.2.19 #./configure --prefix=/usr/local/axel #make #make install #vim /etc/profile 添加 PATH=$PATH:/usr/local/axel/bin #. /etc/profile 12、新建目录/backup/test其属组为magedu且此组具有读写权限其它用户没有任何权限magedu组成员在此目录中创建的文件的属组都需要是magedu且magedu组中每个成员在此目录中只能删除自己的文件解答
#mkdir /backup/test
#cd /backup #chown :magedu test #chmod g+w test/ #chmod o=--- test/ #chmod g+s,o+t test/ 13、配置当前主机内核参数以允许在不同的网络接口间转发数据包要求此项配置即刻生效并且在重新启动系统后不会失效。解答
#vim /etc/sysctl.conf 把net.ipv4.ip_forward=0 改变为net.ipv4.ip_forward=1 #sysctl -p 立即生效 14、启用本机的VNC服务并确保root可用可以使用redhat作为密码登录系统解答
#vncpasswd 设置密码 #vncserver & 开启服务 #cd .vnc #vim xstartup 编辑配置文件 #gnome-session #vncserver -kill :1关闭服务 15、配置本机每隔两天在凌晨3点20备份一次/etc目录备份文件存放至/backup目录文件名形如etc-2011-11-20.tar.bz2解答
which tar 查看tar的命令路径 crontab -e进入编辑 20 3 */3 * * /bin/tar jcf /backup/etc-`date +%F`.tar.bz2 /etc 16、使用find命令完成如下任务 1找到/etc目录下属于root用户且至少7分钟没有访问过的普通文件并将它们复制到/tmp/test目录 要求/tmp/test目录需要自己事先创建并且为其创建符号链/users/test 2找到/users目录下所有没有属主且没有属组的文件并将其属组修改为gentoo将其属组修改为magedu解答
#mkdir /tmp/test #ln -sv /tmp/test /users/test #find /etc -user root -amin +7 -type f -exec cp {} /tmp/test \; #find /users/ -nouser -nogroup -exec chown gentoo:magedu {} \; 17、为centos用户的家目录创建磁盘使用限额要求其能够使用的磁盘空间最大为100M软限制为120M要求完成后验正其有效性解答
#vim /etc/fstab 家目录默认类型里输入usrquota #mount -o remount /users 重新挂载 #quotacheck -cmu /users/ #quotaon /users #edquata -u centos 在soft 输入102400 在hard 输入122880 可以通过 #su - gentoo #dd if=/dev/zero of=./centos.1 bs=1M count=30 这个命令创建大文件来验证一下 18、为逻辑卷lv1创建快照卷lv1_snap要求此卷只读且大小为1G而后通过此卷将数据备份至/backup目录归档压缩存放解答
#lvcreate -L 1G -s -n lv1_snap -p r /dev/myvg/lv1 #mkdir /mnt/snapshot #mount /dev/myvg/lv1_snap /mnt/snapshot #cd /mnt/snapshot #tar -jcv -f /backup/lv1.tar.bz2 * 19、写一个脚本analyzelog.sh完成日志分析 说明此脚本可以接受选项(i,d,t,a),使用格式analyzelog <-i IP|-d DATE|-t TYPE|-a> LOG_FILE (1)当用户使用选项-i时统计出LOG_FILE文件中指定IP地址的访问次数通常每一行为一次grep "$1" | wc -l (2)当用户使用选项-d时统计出LOG_FILE文件中指定日期某一天如16/Feb/2012内每个IP地址访问的次数如 192.168.0.133 192.168.0.19517 ... (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 解答vim analyzelog.sh
#!/bin/bash
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 }'###注awk -F ' ' '{print $2 ":\t"$1 }'可以替换成sed '1,$s@\(.*\)[[space]]\{1\}\(.*\)@\2:\1@g'
} 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 }' ###注awk -F ' ' '{print $2 ":\t"$1 }'可以替换成sed '1,$s@\(.*\)[[space]]\{1\}\(.*\)@\2:\1@g' } Usage() { cat <<EOF Usage :$0 <-i IPADDR|-d DATE|-t FILETYPE|-a> FILENAME" Accept date type: 01/Mar/2012 EOF } if [ $# -lt 1 ]; then Usage exit fi 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本文转自 ZhouLS 51CTO博客原文链接:http://blog.51cto.com/zhou123/796319
转载地址:http://jswnm.baihongyu.com/