1.描述Linux运行级别0-6的各自含义
0:关机模式
1:单用户模式<==破解root密码
2:无网络支持的多用户模式
3:有网络支持的多用户模式(文本模式,工作中最常用的模式)
4:保留,未使用
5:有网络支持的X‐windows支持多用户模式(桌面)
6:重新引导系统,即重启
2.描述Linux系统从开机到登陆界面的启动过程
-
开机BIOS自检,加载硬盘。
-
读取MBR,MBR引导。
-
grub引导菜单(Boot Loader)。
-
加载内核kernel。
-
启动init进程,依据inittab文件设定运行级别
-
init进程,执行rc.sysinit文件。
-
启动内核模块,执行不同级别的脚本程序。
-
执行/etc/rc.d/rc.local
-
启动mingetty,进入系统登陆界面。
3.描述Linux下软链接和硬链接的区别
在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。
-
默认不带参数的情况下,ln创建的是硬链接,带‐s参数的ln命令创建的是软链接。
-
硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同,
-
ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。
-
删除软链接文件,对源文件和硬链接文件无任何影响。
-
删除文件的硬链接文件,对源文件及软链接文件无任何影响。
-
删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。
-
同时删除源文件及其硬链接文件,整个文件才会被真正的删除。
-
很多硬件设备的快照功能,使用的就是类似硬链接的原理。
-
软链接可以跨文件系统,硬链接不可以跨文件系统。
4.如果一台办公室内主机无法上网(打不开网站),请给出你的排查步骤?
-
首先确定物理链路是否联通正常。
-
查看本机IP,路由,DNS的设置情况是否达标。
-
telnet检查服务器的WEB有没有开启以及防火墙是否阻拦。
-
ping一下网关,进行最基础的检查,通了,表示能够到达服务器。
-
测试到网关或路由器的通常情况,先测网关,然后再测路由器一级一级的测试。
-
测试ping公网ip的通常情况(记住几个外部IP),
-
测试DNS的通畅。ping出对应IP。
-
通过以上检查后,还在网管的路由器上进行检查。
5.网站打开慢,请给出排查方法,如是数据库慢导致,如何排查并解决,请分析并举例?
-
可以使用top free 等命令分析系统性能等方面的问题
-
如是因为数据库的原因造成的,就需要查看慢查询日志去查找并分析问题所在
6.如何选择Linux操作系统版本?
一般来讲,桌面用户首选Ubuntu;服务器首选RHEL或CentOS,两者中首选CentOS。
根据具体要求:
-
安全性要求较高,则选择Debian或者FreeBSD。
-
需要使用数据库高级服务和电子邮件网络应用的用户可以选择SUSE。
-
想要新技术新功能功能可以选择Feddora,Feddora是RHEL和CentOS的一个测试版和预发布版本。
-
根据现有状况,绝大多数互联网公司选择CentOS。现在比较常用的是6系列,现在市场占有大概一半左右。另外的原因是CentOS更侧重服 务器领域,并且无版权约束。
7.生产场景如何对linux系统进行合理规划分区?
分区的根本原则是简单、易用、方便批量管理。根据服务器角色定位建议如下:
-
单机服务器:如8G内存,300G硬盘
分区:/boot 100‐200M,swap 16G,内存大小8G*2,/ 80G,/var 20G(也可不分),/data 180G(存放web及db数据)
优点:数据盘和系统盘分开,有利于出问题时维护。
RAID方案:视数据及性能要求,一般可采用raid5折中。
-
负载均衡器(如LVS等)
分区:/boot 100‐200M,swap 内存的1‐2倍,/ ,
RAID方案:数据量小,重要性高,可采用RAID1
-
负载均衡下的RS server
分区:/boot 100‐200M,swap 内存的1‐2倍,/
优点:简单方便,因为有多机,对数据要求低。
RAID方案:数据量大,重要性不高,有性能要求,数据要求低,可采用RAID0
-
数据库服务器mysql及oracle如16/32G内存
分区:/boot 100‐200M,swap 16G,内存的1倍,/ 100G,/data 剩余(存放db数据)
优点:数据盘和系统盘分开,有利于出问题时维护,及保持数据完整。
RAID方案:视数据及性能要求主库可采取raid10/raid5,从库可采用raid0提高性能(读写分离的情况下。)
-
存储服务器
分区:/boot 100‐200M,swap 内存的1‐2倍,/ 100G,/data(存放数据)
优点:此服务器不要分区太多。只做备份,性能要求低。容量要大。
RAID方案:可采取sata盘,raid5
-
共享存储服务器(如NFS)
分区:/boot 100‐200M,swap 内存的1‐2倍,/ 100G,/data(存放数据)
优点:此服务器不要分区太多。NFS共享比存储多的要求就是性能要求。
RAID方案:视性能及访问要求可以raid5,raid10,甚至raid0(要有高可用或双写方案)
-
监控服务器cacti,nagios
分区:/boot 100‐200M,swap 内存的1‐2倍,/
优点:重要性一般,数据要求也一般。
RAID方案:单盘或双盘raid1即可。三盘就RAID5,看容量要求加盘即可。
8.如何查看当前的Linux服务器的运行级别?
‘who ‐r’ 和 ‘runlevel’命令可以用来查看当前的Linux服务器的运行级别。
9.请简述如何查看Linux的系统版本
uname ‐a
10.查看Linux运行多少时间
uptime
11.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:
-
在下午4:50删除/abc目录下的全部子目录和全部文件;
-
从早8:00~下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内;
-
每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;
crontab ‐e 50 16 * * * rm ‐rf /abc/
* 8‐18/1 * * * awk '{print $1 > "/backup/bak01.txt"}' /xyz/x1
50 17 * * 1 tar ‐czf backup.tar.gz /data
12.请在3月23号21点18分的时候,重启服务器
crontab ‐e 18 21 23 3 * init 6
13.如何查看Linux的默认网关?
用 “route ‐n” 和 “netstat ‐nr” 命令,我们可以查看默认网关。
除了默认的网关信息,这两个命令还可以显示当前的路由表。
14.如何查看一个文件夹inode节点数有多少?
find / ‐xdev ‐printf '%h\n' | sort | uniq ‐c | sort ‐k 1 ‐n
15.写一个脚本查找最后创建时间是3天前,后缀是*.log的文件并删除
find / ‐name “*.log” ‐ctime +3 ‐exec rm ‐f {} \;
16.如果某文件夹下文件太多无法ls该如何解决?
ls ‐f
17.如何用tcpdump嗅探80端口的访问看看谁最高?
tcpdump ‐i eth0 ‐tnn dst port 80 ‐c 1000 | awk ‐F”.” ‘{print $1″.”$2″.”$3″.”$4″.”}’ | sort |uniq ‐c | sort ‐nr | head‐5
18.如何查看/var/log目录下的文件数?
ls /var/log/ ‐1R | grep “‐” | wc ‐l
19.如何查看Linux系统每个ip的连接数?
netstat ‐n | awk ‘/^tcp/ {print $5}’ | awk ‐F: ‘{print $1}’ | sort | uniq ‐c | sort ‐rn
20.shell下生成32位随机密码
cat /dev/urandom | head ‐1 | md5sum | head ‐c 32 >> /pass
21.统计出apache的access.log中访问量最多的5个ip
cat access.log | awk ‘{print $1}’ | sort | uniq ‐c | sort ‐n ‐r | head ‐5
22.请用多种方式在linux系统中设置环境变量,并指出各种方式的区别。
-
控制台中设置,不赞成这种方式,因为他只对当前的shell 起作用,换一个shell设置就无效了:
PATH="PATH":/NEW_PATH (关闭shell Path会还原为原来的path)
-
修改 /etc/profile 文件,如果你的计算机仅仅作为开发使用时推存使用这种方法,因为所有用户的shell都有权使用这个环境变量,可能会给系统带来安全性问题。这里是针对所有的用户的,所有的shell 在/etc/profile的最下面添加: export PATH="$PATH:/NEW_PATH"
-