21、什么是 inode ?
一般来说,面试不会问 inode 。但是 inode 是一个重要概念,是理解Unix/Linux 文件系统和硬盘储存的基础。
- 理解 inode,要从文件储存说起
- 文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector) 。每个扇区储存512 字节 (相当于 0.5KB)。
- 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block) 。这种由多个扇区组成的块”,是文件存取的最小单位。”块”的大小最常见的是 4KB,即连续八个 sector组成一个 block。
- 文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做 inode,中文译名为”索引节点”。
- 每一个文件都有对应的 inode,!里面包含了与该文件有关的一些信息
简述 Linux 文件系统通过 i 节点把文件的逻辑结构和物理结构转换的工作过程?
如果看的一脸懵逼,也没关系。一般来说,面试官不太会问这个题目
- Linux 通过 inode 节点表将文件的逻辑结构和物理结构进行转换。
- inode 节点是一个 64 字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。在 inode 节点表中最重要的内容是磁盘地址表。在磁盘地址表中有 13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。
- Linux 文件系统通过把 inode 节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的 inode 节点号,通过该 inode 节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构。
22、什么是硬链接和软链接?
硬链接: 由于 Linux 下的文件是通过索引节点(inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配 inode每添加一个一个硬链接,文件的链接数就加 1。
不足:
- 不可以在不同文件系统的文件间建立链接
- 只有超级用户才可以为目录创建硬链接
软链接: 软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接
不足:
- 因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
实际场景下,基本是使用软链接。总结区别如下:
- 硬链接不可以跨分区,软件链可以跨分区。
- 硬链接指向一个 inode 节点,而软链接则是创建一个新的 inode 节点。
- 删除硬链接文件,不会删除原文件,删除软链接文件,会把原文件删除。
23、RAID 是什么?
RAID 全称为独立磁盘几余阵列(Redundant Array of Independent Disks),基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。RAID 通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统只会把它当做一个硬盘RAID 分为不同的等级,各个不同的等级均在数据可靠性及读写性能上做了不同的权衡。在实际应用中,可以依据自己的实际需求选择不同的 RAID 方案
当然,因为很多公司都使用云服务,大家很难接触到 RAID 这个概念,更多的可能是普通云盘、SSD 云盘酱紫的概念
三、安全
24、一台 Linux 系统初始化环境后需要做一些什么安全工作?
- 添加普通用户登陆,禁止 root 用户登陆,更改 SSH 端口号
- 修改 SSH 端口不一定绝对哈。当然,如果要暴露在外网,建议改下。l
- 服务器使用密钥登陆,禁止密码登陆
- 开启防火墙,关闭 SElinux ,根据业务需求设置相应的防火墙规则4、装 fail2ban 这种防止 SSH 暴力破击的软件
- 设置只允许公司办公网出口 IP 能登陆服务器(看公司实际需要)
- 也可以安装 VPN 等软件,只允许连接 VPN 到服务器上。
- 修改历史命令记录的条数为 10 条
- 只允许有需要的服务器可以访问外网,其它全部禁止
- 做好软件层面的防护
- 设置 nginx waf 块防止 SQL 注入。
- 把 Web 服务使用 www 用户启动,更改网站目录的所有者和所属组为 www 。
25、什么叫 CC 攻击? 什么叫 DDOS 攻击?
- CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问从而使你的系统资源消耗殆尽。
- DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击
攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的
怎么预防 CC 攻击和 DDOS 攻击?
- 防 CC、DDOS 攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。
流量清洗这一块,主要是买 SP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间.
26、什么是网站数据库注入?
由于程序员的水平及经验参差不齐,大部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断。
应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的 SQL 注入。SQL注入,是从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,如果管理员没查看日志的习惯,可能被入侵很长时间都不会发觉。
如何过滤与预防?
数据库网页端注入这种,可以考虑使用 nginx waf 做过滤与预防
27、Shell 脚本是什么?
一个 Shell 脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(shell 脚本)来完成这些日常工作任务。
三、实战
28、如何选择 Linux 操作系统版本?
一般来讲,桌面用户首选 Ubuntu ; 服务器首选 RHEL 或 CentOS ,两者中首选 CentoS
根据具体要求:
- 安全性要求较高,则选择 Debian 或者 FreeBSD
- 需要使用数据库高级服务和电子邮件网络应用的用户可以选择 SUSE想要新技术新功能可以选择 Feddora ,Feddora 是 RHEL 和 CentOs的一个测试版和预发布版本。
- [重点] 根据现有状况,绝大多数互联网公司选择 Centos 。现在比较常用的是 6 系列,现在市场占有大概一半左右。另外的原因是 Centos 更侧重服务器领域,并且无版权约束CentOS 7 系列,也慢慢使用的会比较多了。
29、如何规划一台 Linux 主机,步骤是怎样?
- 确定机器是做什么用的,比如是做 WEB 、DB、还是游戏服务器
- 不同的用途,机器的配置会有所不同。
- 确定好之后,就要定系统需要怎么安装,默认安装哪些系统、分区怎么做
- 需要优化系统的哪些参数,需要创建哪些用户等等的.
30、请问当用户反馈网站访问慢,你会如何处理?
有哪些方面的因素会导致网站网站访问慢?
1、服务器出口带宽不够用
本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
2、服务器负载过大,导致响应不过来
可以从两个方面入手分析:
分析系统负载,使用 w 命今或者 uptime 命令查看系统负载。如果负载很高则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等
3、数据库颈
如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、网站开发代码没有优化好
例如 SQL 语句没有优化,导致数据库读写相当耗时。
针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如CPU、内存、带宽的使用情况
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/111792.html