共计 1392 个字符,预计需要花费 4 分钟才能阅读完成。
作为面试官,面试候选人时,常常会考 linux 的根底命令,毕竟招来的人基本功要好,要能干活,通常 linux 命令是我必考候选人的一关,这也是老板要求的,如果很罕用的命令都不会,我感觉候选人可能 linux 服务器接触的少(因为从面试人的反馈来说,有的人会通知我,平时这些都是运维来操作的,我作为一个业务开发没怎么关注过),那基本上这样的面试者可能给我的面试印象就大打折扣了。
记得之前我出过一道这样的面试题,旨在考 linux 基本功,题目粗心是:在运维过程中,如果收到服务器磁盘告警,该如何解决?(如何找到哪个目录占用磁盘空间大,或者如何找出占用磁盘空间大的前几个目录或文件?)
其实这道题答复的比拟完满的候选人比拟少,有答 df 的,有答不晓得的,也有答 du 的,然而持续诘问的话,答复的不置可否。对本人答案又不自信了。
上面我来大略的说一下作为面试官(或者我本人),个别想听到什么样的答案?
首先第一层,我想听到 df 命令的答案,个别我会先用 df - h 查看 linux 服务器的文件系统的磁盘空间(分区 / 设施文件门路)占用总体的状况,不便晓得哪个设施目录磁盘有余了。
[root@xxx /tmp]# df -h
文件系统 容量 已用 可用 已用 % 挂载点
devxxx 16G 0 16G 0% /dev
xxx 16G 24K 16G 1% /dev/shm
xxx 16G 266M 16G 2% /run
xxx 16G 0 16G 0% /sys/fs/xxxx
/dev/vda1 99G 28G 67G 30% /
/dev/vdb1 493G 393G 75G 85% /data
xxx 3.1G 0 3.1G 0% /run/user/0
ip:/eee x.0P xT x.xP 6% /mnt/yyy/ddd
从上图看 (已用 %) 列,能够看到,/data 目录占用了 85%,是已应用占比最大的,当磁盘告警时,有些公司的告警策略会通知运维人员,哪个文件系统超了多少 percent(80% 或 90%,具体看告警阈值的设定是多少),须要去解决,如果没有通知是哪个文件系统门路的话,首先得用 df -h 查看。
其次第二层,我想听到的是 du 命令这个答案,当我晓得哪个文件系统占比高须要解决(删除)文件之后,我得晓得要去哪个目录删哪些文件,此时必定是要找到此文件系统目录中,哪个目录占比大?这样删除大文件后能很快解除磁盘告警。
[root@job1 /data]# du -sh ./* | sort -hr | head -n 10
183G ./tmp
93G ./tmp_ddd
71G ./logs
35G ./aaa
14G ./home
51M ./bbb
3.1M ./ccc
20K ./ddd
16K ./eee
8.0K ./fff
下面是我平时喜爱用的一个 du 命令,兴许他无奈一把找出具体哪个文件大,然而胜在够快和直观,可能不同开发所用的命令会略有不同,但大体罕用的参数差不多,有 -ah 的,有 -sh 的,有加 max-depth 的,大同小异,鄙人习惯了上述代码中的命令,速度快,不需递归上来,如果要持续找,能够继续应用该命令。
简略介绍下上述命令的含意:
du:
- s 或 --summarize 仅显示总计
- h 或 --human-readable 以 K,M,G 为单位,进步信息的可读性
sort:
-h: 按文件大小升序排列
-hr: 按文件大小倒序排列,-r 为 reverse 的意思
head:
-n 10: 取后果集前十个
#如果想取后果集后十个,能够用 tail -n 10
专一 Web 开发,后盾开发,欢送关注和交换