第一阶段测试

2017-06-22  本文已影响0人  JevonWei

1、yum源的配置与使用(5分)
1). 创建一个本地yum源
base源指向https://mirrors.aliyun.com/centos/7/os/x86_64/
epel源指向https://mirrors.aliyun.com/epel/7Server/x86_64/
2). 安装开发包组

[base]
name=base
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
enbale=1
gpgcheck=0

[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
enable=1
gpgcheck=0

②.yum groupinstall "Development Tools"

2、复制/etc/ssh/sshd_config 到/tmp/中并更名为sshd_config.bak。将/tmp/sshd_config.bak文件中所有以非#号开头与包含空白字符的行保存至/tmp/sshd_config中。(5分)

cp /etc/sshd_config /tmp/sshd_config.bak  
cat /tmp/sshd_config.bak |grep -Ev '^#|^[[:space:]]*$'>/tmp/sshd_config

3、编写脚本/root/bin/sysinfo.sh显示当前主机系统信息,包括主机名,操作系统版本,内核版本,CPU型号,内存大小,硬盘分区(5分)

Vim /root/bin/sysinfo.sh 
#!/bin/bash
hostname
cat /etc/redhat-release     
uname -r
free -m
fdisk -l
Chmod +x /root/bin/sysinfo.sh

4、给root用户定义别名命令vimnet,相当于vim /etc/sysconfig/network-scripts/ifcfg-ens33,并使root执行history命令时,显示每个命令执行的具体时间。(5分)

echo "alias vimnet="vim /etc/sysconfig//etc/sysconfig/network-scripts/ifcfg-ens33"" >> ~/.bashrc
echo 'HISTTIMEFORMAT="%F %T"' >> ~/.bash_profile 
. ~/.bash_profile
. ~/.bashrc

5、指出软链接与硬链接的异同之处(至少四处)(5分)

硬链接   
1、硬链接必须在同一个分区中创建,不能跨分区,跨分区只能用软链接   
   2、硬链接不支持对目录创建,硬链接不支持跨设备跨分区   
   3、不复制原数据,仅分配一个inode号和文件名   
   4、硬链接文件使用同一个inode号   
   5、硬链接工作的相对路径相对于当前目录   
   6、链接文件没有依赖性关系,链接数会加1   
软链接
   1、可以对目录进行   
   2、可以跨分区   
   3、指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;   
   4、删除链接原文件,则链接指向失效   
   5、软链接用相对路径时相对的不是当前工作目录,而是相对软链接工作路径 

6、下载编译安装httpd 2.4最新版本,写出安装过程(5分)

1. httpd源码下载  
  httpd2.4.25下载地址http://hc.apache.org/downloads.cgi
2.将下载的httpd源码包复制到系统路径下,再此存放到了路径/app下,然后tar解压源码包到当前目录下    
  cd /app 
  tar xvf httpd-2.4.25.tar.bz2    
3. 安装开发包组    
  yum groupinstall "Development Tools"    
4. 查看帮助文件,了解如何安装
  cat README    
  cat INSTALL    
5. cd /root/httpd-2.4.25 切换到软件包目录下    
  ./configure --prefix=/app/apache  --sysconfdir=/tmp/etc/  --bindir=/tmp/etc  --enable-rewrite        
    指定所有文件默认安装在/app/apache目录下,sysconfdir=/etc/apache/为/etc/配置文件存在目录,bin二进制文件放在/tmp/bin目录下,--enable-rewrite为启用重定向特性      

    在安装过程观察有无软件包安装错误,若有,则对应安装对应的开发软件包    
    yum install 包名-devel    
6. make     根据makefile 文件,构建应用程序    
7. make install   复制文件到相应路径   
8. 安成功检测     
   /etc/  /bin目录存放在/tmp下,其他配置文件在/app/apache目录下 
9. 防火墙   
  centos6    
    service iptables stop 马上禁用    
    chkconfig iptables off 下次开机禁用   
  centos7   
    systemctl  stop firewalld.service  马上禁用   
    systemctl  disable  firewalld.service 下次开机禁用    
10. 访问测试    
   netstat -ntl 查看服务对应端口是否打开   
   iptables -vnL 查看防火墙    
   /app/apache/bin/apachectl start 开启httpd服务,apachectl的路径为/app/apache/bin/apachectl         
11. 将apachectl命令导入PATH环境变量
   PATH=PATH:/app/apache/bin/apachectl
10. apachectl start 开启服务 

7、过滤ifconfig命令结果中所有大于0且小于255的三位数(5分)

ifconfig | egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"
ifconfig | egrep -o "\<25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]"   

8、将用户mage被误删除的的家目录恢复,复制/etc/shadow到mage家目录中。并设置只有用户wang可以读取/home/mage/shadow(5分)

cp -a /etc/skel/ /home/mage
cd /home/mage
chown mage:mage mage/
chmod 700 mage/
cp /etc/shadow /home/mage
setfacl -m u:mage:r-- /home/mage/shadow

9、统计/var/log/httpd/access.log日志访问频繁前十的地址,并从大到小排序(5分)

cut -d" " -f1 /var/log/httpd/access.log |sort|uniq -c| sort -nr|head -n10|tr -s " "|cut -d" " -f3

10、开启两个终端,将终端1 中输入命令的执行结果输出,并同时输出到终端2 (5分)

echo "wangnan sb" > /dev/pts/1

11、误删除/lib64/libc.so.6系统库文件,如何恢复之,实验说明(5分)

先进入系统修复模式下   
Cp /lib64/libc.so.6 /mnt/sysimage/lib64    /mnt/sysimage为真实系统根目录

12、误删除rpm包命令,如何恢复之,实验说明 (5分)

先进入修复模式下   
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
rpm -ivh /mnt/cdrom/Packages/rpm-4.11.3-21.e17.x86_64.rpm --root=/mnt/sysimage   以root的身份将rpm包安装在系统真实目录/mnt/sysimage下
chmod /mnt/sysimage   切换进入真实系统下
mount /dev/cdrom /mnt
rpm -ivh /mnt/Packages/httpd*   测试rpm是否修复成功

13、计算2+4+6+…+96+98+100之和(5分)

echo {2..100..2} | tr -s ' ' '+' | bc

14、取/etc/sysconfig/network-scripts/ifcfg-ens33基名,用两种方法实现(5分)

echo /etc/sysconfig/network-scripts/ifcfg-ens33 |egrep -o '[^/]+?$'
basename /etc/sysconfig/network-scripts/ifcfg-ens33

15、对/etc/目录,分别执行命令,实现以下功能(5分)
(1)按从大到小顺序显示文件列表

ll /etc/ | tr -s " " | cut -d' ' -f 5,9 | sort -n -r | cut -d ' ' -f 2

(2)只显示隐藏文件

ls -aI "[^.]*" /etc

(3)只显示目录

ll -a /etc/ | egrep ^d

(4)按mtime时间显示文件列表

ls -a -t /tmp/

(5)按atime时间显示文件列表

ls -a -ut /tmp/

16、编写/root/bin/excute.sh,实现与用户交互,判断用户给予的参数是否可读,可写,可执行(5分)

#!/bin/bash
read -p "please input fimename " name || exit
[ -r $name ] && echo "file $name have read"
[ -w $name ] && echo "file $name have write"
[ -x $name ] && echo "file $name have excute"

17、编写/root/bin/create.sh可以生成新的脚本包括作者、联系方式、版本、时间和描述等,并且可以直接对其进行编辑,编辑完后自动加上执行权限(5分)

#!/bin/bash
[ $# -gt 1 ] &&{ echo "the args is error";exit;}
[ $# == 0 ] && read -s -p "please input script name: " name || name="$1"
echo "#!/bin/bash
# filename "$name"
# author:danran
# telephone:1709369XXXX
# versions:1.5 
# time is `date +%F`
# describe:This is a script to create a template"
 >"$name"
chmod +x "$name"
vim "$name"

18、写一个脚本,让它可以传递两个参数后,实现对该参数的加、减、乘、除运算并输出运算后的值(5分)

#!/bin/bash
[ $# != 2 ] && { echo "usage:file.sh num1 num2" ; exit ; }
echo "$1+$2=$[ $1+$2 ]"
echo "$1*$2=$[ $1*$2 ]"
echo "$1-$2=$[ $1-$2 ]"
[ "$2" -eq 0 ] && echo "The divisor is 0 " ||echo "$1/$2=$[ $1/$2 ]"

19、编写/root/bin/wcfile.sh统计/etc目录中的目录的个数,文件的个数,并求出/etc/目录中的目录和文件个数的总和(5分)

#!/bin/bash
dir=`ls -al  /etc/ | egrep \(^d\|^.d\) | wc -l`
file=`ls -al /etc/ | egrep \(^-\|^.-\) | wc -l`
let sum=$dir+$file
echo "the dir is $dir;the file is $file;the file and dir sum is $sum"

20、/编写/root/bin/baketc.sh 查找/etc/目录中超过1天未修改的文件,将其压缩备份至/bakup目录。若之前没有备份过则备份之,若存在的备份文件超过了2分钟则备份之,否则退出。备份的格式为YYYY-MM-DD-hh-mm-ss.xz(Y表示年,M表示月,D表示日,h表示时,m表示分,s表示秒)(5分)

 #!/bin/bash
 ls *.xz > /dev/null || { find /etc -mtime +0 > /app/tar.txt && tar Jcf /backup/
`date "+%F-%H-%M-%S"`.xz -T /app/tar.txt ;exit; }

[ -z `find /backup/*.xz  -mmin -2` ] &&  find /etc -mtime +0 > /app/tar.txt &&
tar Jcf /app/backup/`date "+%F-%H-%M-%S"`.xz -T /app/tar.txt || exit

参考答案

#!/bin/bash
DATE=`date +"%Y-%m-%d-%H-%M-%S"`
WCFILE=`ls /backup | wc -l`
[ -d /backup ] || mkdir /backup
[ $WCFILE -eq 0 ] && find /etc/ -mtime +1 | xargs tar -Jcvf /backup/$DATE\.tar.xz
FILE=$[`ls -lt /backup/* | cut -d" " -f10 | head -1 |tr -dc [:digit:]`+200]
echo "new file old time add two minute was: $FILE"
NOW=$[`date +"%Y%m%d%H%M%S"`]
echo "NOW system time is: $NOW"
[ $FILE -lt $NOW ] && find /etc/ -mtime +1 | xargs tar -Jcvf /backup/$DATE\.tar.xz

有趣的邮件

[test]
name=test
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0
enabled=1
[test2]
name=test2
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
gpgcheck=0
enabled=1
yum -y install msmtp mutt
cat .muttrc
set sendmail="/usr/bin/msmtp"
set use_from=yes
上一篇下一篇

猜你喜欢

热点阅读