首页 > 技术文章 > 2018--Linux面试题

sinsenliu 2018-05-10 15:34 原文

1、企业场景面试题:
buffer与Cache的区别。

 

 

 

2、企业场景面试题:
redhat与CentOS的区别。

 

 


3、企业场景面试题: 
描述RAID 0 1 5 10的特点。

 

 


4、企业场景面试题:
32位和64位系统的却别,如何选择。

 

 


5、企业场景面试题:
SSH服务连不上如何排查。

 

 


6、企业场景面试题:
Linux的7种运行级别及对应作用。

 

 


7、企业场景面试题:
Linux系统从开机到登入之前的启动流程。

 

 


8、企业场景面试题:
一个100M(100000K)的磁盘分区,分别写入1K的文件或写入1M的文件,分别可以写多少。

 

 

 


9、企业场景面试题:
企业面试题:如果向磁盘写入数据提示No space left on device,通过df -h查看磁盘空间,发现没满,原因。企业场景什么情况下会导致这个问题呢?

解答:
1  可能是inode数量被耗尽了。
2  企业工作中邮件临时队列/var/spool/clientmquene这里很容易被大量小文件占满导致No space left on device的错误。clientmquene目录只有安装了sendmail服务,才会有,是sendmail邮件的临时队列。centos5.8默认就会装sendmail,centos6.6默认没有sendmail,但是有postfix。


Linux服务器 /var/spool/clientmqueue 目录下产生大量文件的解决办法
今天收到nagios报警邮件,其中一台server中的磁盘分区空间超过95%,登录到服务器查看
[root@hadoop-node-29 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5              19G   16G  2.8G  95% /var
到目录/var查看哪个目录中的文件最大
[root@hadoop-node-29 var]# du -sh *
找到是/var/spool目录占了很大空间,进入spool目录继续查看 找到是clientmqueue目录中的文件很多占了大部分空间。
删除所有文件
[root@hadoop-node-29 clientmqueue]# rm -rf *
结果返回-bash: /bin/rm: Argument list too long
换用命令find . -print|xargs rm  过了一段时间终于删除了所有文件
不过这种方法只是治标不治本的方法。
为什么var/spool/clientmqueue会产生大量的文件呢,查资料是因为cron执行时会将相关结果以mail方式发送到执行用户的帐号,可是当sendmail 沒有启动 那么所有信件就会暂存在这个目录中,此时就会出现这种情况。
治本的方法是在cron 任务中的后面加上 > /dev/null 2>&1
例如
* * * * * /etc/init.d/snmp_cron.sh > /dev/null 2>&1

 

 

 

10、企业场景面试题:
Linux下文件删除的原理:

解答:

Linux文件删除原理:

 

    Linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说,每个文件都有2个link计数器:i_count 和 i_nlink。

    i_count的意义是当前文件使用者(或被调用)的数量,i_nlink 的意义是介质连接的数量(硬链接的数量);可以理解为i_count是内存引用计数器,i_nlink是磁盘的引用计数器。

当一个文件被某一个进程引用时,对应i_count数就会增加;当创建文件的硬链接的时候,对应i_nlink数就会增加。

    对于删除命令rm而言,实际就是减少磁盘引用计数i_nlink。这里就会有一个问题,如果一个文件正在被某个进程调用,而用户却执行rm操作把文件删除了,那么会出现什么结果呢?当用户执行rm操作删除文件后,再执行ls或者其他文件管理命令,无法再找到这个文件了,但是调用这个删除的文件的进程却在继续正常执行,依然能够从文件中正确的读取及写入内容。这又是为什么呢?

这是因为rm操作只是将文件的i_nlink减少了,如果没其它的链接i_nlink就为0了;但由于该文件依然被进程引用,因此,此时文件对应的i_count并不为0,所以即使执行rm操作,但系统并没有真正删除这个文件,当只有i_nlink及i_count都为0的时候,这个文件才会真正被删除。也就是说,还需要解除该进程的对该文件的调用才行。

以上讲的i_nlink及i_count是文件删除的真实条件,但是当文件没有被调用时,执行了rm操作删除文件后是否还可以找回被删的文件呢?

前面说了,rm操作只是将文件的i_nlink减少了,或者说置0了,实际就是将文件名到inode的链接删除了,此时,并没有删除文件的实体即(block数据块),此时,如果及时停止机器工作,数据是可以找回的如果此时继续写入数据,那么当新数据就可能会被分配到被删除的数据的block数据块,此时,文件就会被真正的回收了,那时就是神仙也没有办法了。

 

 

 

 

11、企业场景面试题:
描述Linux下软链接和硬链接的区别:

 

答题思路2:

也可以直接画图:

 

 

 

 

 

 

 

 

 

 

请描述Linux系统优化的12个步骤。

1、登录系统。
2、禁止SSH远程。
3、时间同步。
4、配置yum更新源。
5、关闭selinux及iptables。
6、调整文件描述符数量。
7、定时自动清理/var/spool/clientmquene/目录垃圾文件。
8、精简开机启动服务。
9、Linux内核参数优化/etc/sysctl.conf,执行sysct -p生效。
10、更改字符集,防止乱码问题出现。
11、锁定关键系统文件。
12、清空/etc/issue,去除系统及内核版本登陆前的屏幕显示。

 

 


Linux系统的主要特性:
基本思想
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

 

 

 

 

 

 

 

推荐阅读