企业运维经典面试题汇总(4)_企信部运维面试

108 阅读11分钟

解答:

[root@yangwen /]# cd /etc/[root@yangwen etc]# touch ansheng[root@yangwen etc]# ls -lrt
total 1668
-rw-r--r--.  1 root root   1112 Mar 30  2003 minicom.users
-rw-r--r--.  1 root root  10814 Feb 20  2006 ltrace.conf
-rw-r--r--.  1 root root    662 Aug 29  2007 logrotate.conf
-rw-r--r--.  1 root root    220 Oct 13  2008 quotagrpadmins
-rw-r--r--.  1 root root    148 May 14  2009 asound.conf
.....................................
-rw-r--r--.  2 root root     80 Jan 15 12:33 resolv.conf
-rw-r--r--.  1 root root      0 Jan 15 13:45 yangwen[root@yangwen etc]#

4、在配置apache时执行了./configure –prefix=/application/apache2.2.17 来编译 apche, 在 make install 完成后,希望用户访问 apache 路径更简单,需要给/application/apache2.2.17 目录做一个软链接/application/apache,使得内部开发或管理人员通过/application/apache 就可以访问到apache 的安装目录/application/apache2.2.17 下的内容,请你给出实现的命令。(提示:apache为一个 web 服务)

解答:

[root@yangwen /]# mkdir -p /application/apache2.2.17[root@ansheng /]# ln -s /application/apache2.2.17/ /application/apache[root@ansheng /]# touch /application/apache2.2.17/ansheng[root@ansheng /]# ls /application/apache
ansheng

5、已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张,现在要求只能保留最近 7 天的访问日志!请问如何解决?请给出解决办法或配置或处理命令。(提示:可以从 apache 服务配置上着手,也可以从生成出来的日志上着手。)

创建文件脚本:

#!/bin/bashfor n in `seq 14`do        date -s "11/0$n/14"
        touch access_www_`(date +%F)`.logdone

解决方法:

[root@yangwen logs]# pwd/application/logs[root@yangwen logs]# ll
total 0
-rw-r--r--. 1 root root 0 Jan  1 00:00 access_www_2015-01-01.log
-rw-r--r--. 1 root root 0 Jan  2 00:00 access_www_2015-01-02.log
-rw-r--r--. 1 root root 0 Jan  3 00:00 access_www_2015-01-03.log
-rw-r--r--. 1 root root 0 Jan  4 00:00 access_www_2015-01-04.log
-rw-r--r--. 1 root root 0 Jan  5 00:00 access_www_2015-01-05.log
-rw-r--r--. 1 root root 0 Jan  6 00:00 access_www_2015-01-06.log
-rw-r--r--. 1 root root 0 Jan  7 00:00 access_www_2015-01-07.log
-rw-r--r--. 1 root root 0 Jan  8 00:00 access_www_2015-01-08.log
-rw-r--r--. 1 root root 0 Jan  9 00:00 access_www_2015-01-09.log
-rw-r--r--. 1 root root 0 Jan 10 00:00 access_www_2015-01-10.log
-rw-r--r--. 1 root root 0 Jan 11 00:00 access_www_2015-01-11.log
-rw-r--r--. 1 root root 0 Jan 12 00:00 access_www_2015-01-12.log
-rw-r--r--. 1 root root 0 Jan 13 00:00 access_www_2015-01-13.log
-rw-r--r--. 1 root root 0 Jan 14 00:00 access_www_2015-01-14.log[root@yangwen logs]# find /application/logs/ -type f -mtime +7 -name "\*.log"|xargs rm –f  ##也可以使用-exec rm -f {} \;进行删除[root@yangwen logs]# ll
total 0
-rw-r--r--. 1 root root 0 Jan  7 00:00 access_www_2015-01-07.log
-rw-r--r--. 1 root root 0 Jan  8 00:00 access_www_2015-01-08.log
-rw-r--r--. 1 root root 0 Jan  9 00:00 access_www_2015-01-09.log
-rw-r--r--. 1 root root 0 Jan 10 00:00 access_www_2015-01-10.log
-rw-r--r--. 1 root root 0 Jan 11 00:00 access_www_2015-01-11.log
-rw-r--r--. 1 root root 0 Jan 12 00:00 access_www_2015-01-12.log
-rw-r--r--. 1 root root 0 Jan 13 00:00 access_www_2015-01-13.log
-rw-r--r--. 1 root root 0 Jan 14 00:00 access_www_2015-01-14.log

6、调试系统服务时,希望能实时查看/var/log/messages 系统日志的更新,如何做?

解答:

[root@yangwen logs]# tail -f /var/log/messages
Jan 15 13:23:38 ansheng dhclient[869]: DHCPREQUEST on eth2 to 192.168.20.254 port 67 (xid=0x7a59bf0e)Jan 15 13:23:38 ansheng dhclient[869]: DHCPACK from 192.168.20.254 (xid=0x7a59bf0e)Jan 15 13:23:40 yangwen dhclient[869]: bound to 192.168.20.132 -- renewal in 776 seconds.
Jan 15 13:33:35 ansheng rz[1315]: [root] ansheng.tar.gz/ZMODEM: 425 Bytes, 22218 BPS
Jan 15 13:36:36 ansheng dhclient[869]: DHCPREQUEST on eth2 to 192.168.20.254 port 67 (xid=0x7a59bf0e)Jan 15 13:36:36 ansheng dhclient[869]: DHCPACK from 192.168.20.254 (xid=0x7a59bf0e)Jan 15 13:36:38 yangwen dhclient[869]: bound to 192.168.20.132 -- renewal in 686 seconds.
Jan 15 13:48:04 ansheng dhclient[869]: DHCPREQUEST on eth2 to 192.168.20.254 port 67 (xid=0x7a59bf0e)Jan 15 13:48:04 ansheng dhclient[869]: DHCPACK from 192.168.20.254 (xid=0x7a59bf0e)Jan 15 13:48:06 yangwen dhclient[869]: bound to 192.168.20.132 -- renewal in 790 seconds.

7、打印轻量级web服务的配置文件 nginx.conf内容的行号及内容,该如何做?

测试文件nginx.conf内容

[root@yangwen tmp]# cat -n nginx.conf 
     1	nginx
     2	config
     3	yangwen
     4	test     5	centos
     6	yangwen

解决方法:

方法1:

[root@yangwen tmp]# cat -n nginx.conf
     1	nginx
     2	config
     3	yangwen
     4	test     5	centos
     6	ansheng

方法2:

[root@yangwen tmp]# vim nginx.conf>>:>>set nu

方法3:

[root@yangwen tmp]# nl nginx.conf 
     1	nginx
     2	config
     3	yangwen
     4	test
     5	centos
     6	ansheng

方法4:

[root@yangwen tmp]# grep -n . nginx.conf
1:nginx
2:config
3:yangwen
4:test
5:centos
6:ansheng

8、装完Centos系统后,希望网络文件共享服务NFS,仅在3级别上开机自启动,该如何做

解答:

[root@yangwen /]# chkconfig --list nfs
nfs                 0:off     1:off     2:off     3:off     4:off     5:off     6:off[root@yangwen /]# chkconfig nfs on[root@yangwen /]# chkconfig --level 3 nfs on[root@yangwen /]# chkconfig --list nfs
nfs                 0:off     1:off     2:on 3:on 4:on 5:on 6:off

9、系统运行级别一般为 0-6,请分别写出每个级别的含义。

解答:

  1. 0 关机
  2. 1 单用户
  3. 2 多用户,没有nfs支持
  4. 3 完全多用户,
  5. 4 保留
  6. 5 X Windows
  7. 6 重启

10、yangwen 系统中查看中文乱码,请问如何解决乱码问题?

解答:

查看当前语言

echo $LANG

查看已安装语言包,如果没有中文语言包就安装中文语言包

locale -a|grep zh

修改当前字符集

LANG="zh\_CN.gb18030"

让其生效

source /etc/sysconfig/i18n

修改字符集

vi /etc/sysconfig/i18n

让其永久生效

source /etc/sysconfig/i18n

11、如何优化 yangwen系统(可以不说太具体)?

解答:

  1. 不用root,添加普通用户,通过sudo授权管理
  2. 更改默认的远程连接SSH服务端口及禁止root用户远程连接
  3. 定时自动更新服务器时间
  4. 配置国内yum源
  5. 关闭seansheng及iptables(iptables工作场景如果有外网IP一要打开,高并发除外)
  6. 调整文件描述符的数量
  7. 精简开机启动服务(crond rsyslog network sshd)
  8. yangwen内核参数优化(/etc/sysctl.conf)
  9. 更改字符集,支持中文,但建议还是用英文字符集,防止乱码
  10. 锁定关键系统文件
  11. 清空/etc/issue,去除系统及内核版本登录前的屏幕显示

12、/etc/目录为 ansheng 系统的默认的配置文件及服务启动命令的目录

a.请用 tar 打包/etc 整个目录(打包及压缩)

b.请用 tar 打包/etc 整个目录(打包及压缩,但需要排除/etc/services 文件)

c.请把 a 点命令的压缩包,解压到/tmp 指定目录下(最好只用 tar 命令实现)

解答:

a.

打包:

[root@yangwen tmp]# tar zcfP  etc.tar /etc[root@yangwen tmp]# ll
total 9072
-rw-r--r--. 1 root root 9289256 Jan 14 00:21 etc.tar

压缩:

[root@yangwen tmp]# tar zxvf etc.tar[root@yangwen tmp]# ll
total 9076
drwxr-xr-x. 83 root root    4096 Jan 14 00:15 etc
-rw-r--r--.  1 root root 9289256 Jan 14 00:21 etc.tar

b.

打包:

[root@yangwen /]# tar zcvf etc.tar.gz /etc --exclude=/etc/services[root@ansheng /]# ll etc.tar.gz 
-rw-r--r--. 1 root root 9161575 Jan 14 00:25 etc.tar.gz[root@yangwen /]# tar zxvf etc.tar

c.

[root@yangwen /]# tar zxvf etc.tar.gz -C /opt/[root@yangwen /]# ll /opt/
drwxr-xr-x. 83 root root     4096 Jan 14 00:15 etc

13.已知如下命令及结果:

[root@yangwen ~]$ echo "I am ansheng,myqq is 31333741">>yangwen.txt
[root@yangwen ~]$ cat ansheng.txt
I am yangwen, myqq is 1455328192

现在需要从文件中过滤出“yangwen” 和“ 31333741” 字符串,请给出命令.

解答:

没有逗号:I am yangwen myqq is 1455328192

[root@yangwen tmp]# cat yangwen 
I am ansheng  myqq is 1455328192

方法1:

[root@yangwen ~]$ awk '{print $3" "$6}' yangwen
yangwen 1455328192

方法2:

[root@yangwen ~]$ cut -d" " -f3,6 yangwen
yangwen 1455328192

方法3:

[root@yangwen ~]$ cut -c 6-11,20- yangwen
yangwen 1455328192

有逗号:I am yangwen, myqq is 1455328192

[root@yangwen tmp]# cat yangwen
I am yangwen, myqq is 1455328192

方法1:

[root@yangwen ~]$ cut -c 6-11,20- yangwen
yangwen 1455328192

方法2:

[root@yangwen ~]$ cut -d" " -f3,6 yangwen|sed s#,#" "#yangwen 1455328192

方法3:

[root@yangwen ~]$ awk '{print $3" "$6}' yangwen|sed s/,/" "/g
yangwen 1455328192

方法4:

[root@yangwen ~]$ awk -F '[ ,]' '{print $3" "$6}' yangwen
yangwen 1455328192

方法5:

[root@yangwen ~]$ cut -d" " -f3,5 yangwen |tr ",myqq" " "yangwen 1455328192

14、如何查看/etc/services 文件内容有多少行?

解答:

方法1:

[root@yangwen /]# wc -l /etc/services
10774 /etc/services

方法2:

[root@yangwen /]# cat -n /etc/services |tail -1
 10774	iqobject        48619/udp               # iqobject

方法3:

[root@yangwen /]# sed -n '$=' /etc/services
10774

方法4:

[root@yangwen /]# awk '{print NR}' /etc/services|tail -1
10774

方法5:

[root@yangwen /]# grep -n $ /etc/services|tail -1
10774:iqobject        48619/udp               # iqobject

15、过滤出/etc/services 文件包含 3306 或 1521 两数据库端口的行的内容。

解答:

[root@yangwen /]# grep -E "3306|1521" /etc/services
mysql           3306/tcp                        # MySQLmysql           3306/udp                        # MySQLncube-lm        1521/tcp                # nCube License Managerncube-lm        1521/udp                # nCube License Manager

1、描述 linux 系统从开机到登陆界面的启动过程

开机自检,MBR引导,读取硬盘0柱面0磁道1扇区的前446字节,加载grub菜单,在grub菜单里面加载kernel,启动init进程,init是Linux系统启动时第一个启动的进程,init读取inittab文件,先执行/etc/rc.d/rc.sysinit初始化脚本(设置主机名,加载inittab,设置网卡和一些PCI设备),根据inittab设置的级别指向相对应的脚本,如果是3模式则指向/etc/rc3.d下面的脚本以及程序,执行rc.local,最后启动mingetty进程,进入登陆界面。

2、描述 linux 下软链接和硬链接的区别

在linux系统中,链接分两种 :一种是硬链接(Hard Link),另一种被称为符号链接或软链接(Symbolic Link)。

  1. 默认不带参数情况下,ln命令创建的是硬链接。
  2. 硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号与源文件不同。
  3. ln命令不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到。
  4. 删除软链接文件,对源文件及硬链接文件无任何影响;
  5. 删除文件的硬链接文件,对源文件及软链接文件无任何影响;
  6. 删除链接文件的原文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状);
  7. 同时删除原文件及其硬链接文件,整个文件才会被真正的删除。
  8. 很多硬件设备中的快照功能,使用的就类似硬链接的原理。
  9. 软连接可以跨文件系统,硬链接不可以跨文件系统。

3、描述 linux shell 中单引号、双引号及不加引号的简单区别

单引号:

即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。

双引号:

把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。

不加引号:

不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。

4、描述 linux 运行级别 0-6 的各自含义

  1. 0 关机
  2. 1 单用户模式
  3. 2 多用户没有NFS网络支持
  4. 3 完全多用户模式(工作中常用)
  5. 4 保留
  6. 5 图形化界面
  7. 6 重启

5、描述 linux 下文件删除的原理

当一个文件的I_link=0且没有进程占用的时候,这个文件就被删除了,还有一种情况就是被进程占用的情况下,当这个文件的I_link和I_count同时为0的时候这个文件才会被真正的删除。

6、如何取得/ansheng 文件的权限对应的数字内容,如-rw-r–r– 为 644, 要求使用命令取得644 这样的数字。

解答:

方法1:

[root@yangwen ~]# stat /yangwen
  File: `/ansheng'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 16          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-01-11 05:42:44.762128948 -0500
Modify: 2015-01-11 05:42:44.762128948 -0500
Change: 2015-01-11 05:42:44.762128948 -0500
[root@yangwen ~]# stat /yangwen |sed -nr 's#^.\*s: ((.\*)/-r.\*#\1#gp'0644

awk方法:

[root@yangwen ~]# stat /yangwen |awk -F "[(/]" 'NR==4{print $2}'0644

State方法:

[root@yangwen ~]# stat -c %a /yangwen
644

[root@yangwen]# ll /yangwen |cut -c2-10|tr rwx- 4210|awk -F "" '{print $1+$2+$3 $4+$5+$6 $7+$8+$9}'644

7、linux下通过 mkdir 命令创建一个新目录/yangwen/ett,它的硬链接数是多少,为什么?

解答:

[root@yangwen ~]# mkdir /ansheng/ett -p[root@yangwen ~]# ll -d /yangwen/ett/
drwxr-xr-x. 2 root root 4096 Jan 11 06:02 /yangwen/ett/

它的链接数是2,本身算一个链接,ett目录下的.为ett目录的又一个链接,所以链接数为2

[root@yangwen]# ll -i
total 4
1046536 drwxr-xr-x. 2 root root 4096 Jan 11 06:02 ett[root@yangwen]# ll -di ett/.
1046536 drwxr-xr-x. 2 root root 4096 Jan 11 06:02 ett/.

8、请执行命令取出 linux 中 eth0 的 IP 地址(请用 cut,有能力者也可分别用 awk,sed 命令答)。

解答:

cut方法1:

[root@yangwen ~]# ifconfig eth0|sed -n '2p'|cut -d ":" -f2|cut -d " " -f1
192.168.20.130

awk方法2:

[root@yangwen ~]# ifconfig eth0|awk 'NR==2'|awk -F ":" '{print $2}'|awk '{print $1}'192.168.20.130

Awk多分隔符方法3:

[root@yangwen ~]# ifconfig eth0|awk 'NR==2'|awk -F "[: ]+" '{print $4}'192.168.20.130

Sed方法4:

[root@yangwen ~]# ifconfig eth0|sed -n '/inet addr/p'|sed -r 's#^.\*ddr:(.\*)Bc.\*$#\1#g'192.168.20.130[root@ansheng ~]# ifconfig eth0|sed -n '/inet addr/p'|sed 's#^.\*ddr:##g'|sed 's#B.\*$##g'192.168.20.130

9、请给出默认情况 eth0 网卡配置文件的路径及客户端 DNS 的路径。

解答:

Eth0网卡配置路径:/etc/sysconfig/network-scripts/ifcfg-eth0 客户端DNS配置路径:/etc/resolv.conf

10、查找当前目录下所有文件,并把文件中的 www.baidu.com 字符串替换成 www.abc.cc

解答:

[root@yangwen ~]# find ./ -type f|xargs sed -i 's#www\baidu\.com#www\.abc\.cc#g'

11、问题:如何赋予 yangwen 文件 -rw-r–r-x 权限属性

解答:

[root@yangwen ~]# touch yangwen[root@yangwen ~]# ll
total 0
-rw-r--r--. 1 root root 0 Jan 11 06:33 yangwen[root@yangwen ~]# chmod 645 yangwen
[root@yangwen ~]# ll
total 0
-rw-r--r-x. 1 root root 0 Jan 11 06:33 yangwen

12、执行下面命令时发现提示需要输入密码,请问提示输入的密码是哪个用户的密码。

[test@yangwen ~]$ sudo su - yangwen

解答:输入的是执行sudo命令的用户密码。

相关说明:
在这里插入图片描述
13、请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出。

echo "yangwen";echo "yangwen"

解答:

[root@ansheng ~]# echo -n "yangwen";echo "yangwen"yangwen

14、请给出如下格式的 date 命令 例:11-02-26。在给出实现按周输出 比如:周六输出为 6,请分别给出命令。

解答:

[root@yangwen ~]# date +%y-%m-%d
15-01-11

15、当从 root 用户切到普通用户时,执行 ifconfig 会提示。

[root@yangwen ~]$ ifconfig
-bash: ifconfig: command not found

提示:c58 会遇到, c64 没有此问题。

请问这是为什么?如何解决,请给出详细解决过程。

解答:没有找到这个命令,ifconfig命令所在目录没有添加到PATH环境变量里面,解决步骤:

[root@yangwen ~]# /sbin/ifconfig

或者写入PATH环境变量

16、扩展问题:打印三天前的日期格式如:2011-02-26

解答:

root@yangwen ~]# date +%F
2015-01-11[root@yangwen ~]# date +%F -d '3 day ago'2015-01-08[root@yangwen ~]# date +%F -d '-3 day'2015-01-08

17、已知/yangwen/test.txt 文件内容为:

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK