本人运维 • 几乎所有文章都基于 macOS 、vps (CentOS_7)
个人网站: www.0214.live
◼︎0-1993 ------- 安全技术: Wireshark、Nmap、Nessus、MSF、暗网、暴破 ...
◼︎1-Net --------- 网络技术: 各种服务器搭建配置详细笔记: SSR、FRP、VPN、邮箱、DNS、企业网盘 ...
◼︎2-Linux ------- 基础知识: SSH、防火墙、包管理器、正则式、三剑客、文件系统 ...
◼︎3-Script ------ 脚本笔记: Bash、Python、 AppleScript
◼︎4-Web -------- 前端技术: Nginx、Bootstrap ...
◼︎5-Django ----- Django 基础
◼︎6-Database -- MySQL 主从/主主、ProxySQL读写分离、LVS高可用; Redis、MongoDB...
◼︎7-Virtual ------ 虚拟化技术: Docker、VMware、ESXi、Openstack ....
◼︎9-DevOps ---- 运维工具: Zabbix监控、Puppet部署、ELK日志分析 ....
⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️------⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️ 🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵 口语表达 🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵 ⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️------⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬛️
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 IT 🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
🔵 AD / NFTS
AD: 控制电脑用的. 控制软件的安装等等.....
NTFS: 控制公司共享文件权限.
🔵 LDAP 轻量级目录权限访问, 一般用来控制员工权限的.
🔵 OSI 七层
🔵 DNS
🔵 CDN
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
🔵 LVS 是什么 有什么用 有几种工作模式, 分别说说原理.
🔵 Keepalived 是什么: 有什么用: 高可用实现的原理.
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 Linux 🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
🔵 Linux 系统从开机到登录界面的启动过程 ✔︎ http://oldboy.blog.51cto.com/2561410/791273
🔸 1. BIOS 自检:
按下开机键后电脑必须先检测电脑硬件是否正常,BIOS就是检测这个的!
比如你笔记本摔了一下.能开机但是进不去系统.找不到原因,这时候你就需要进BIOS看看,
如果你的BIOS 中能看到HDD,那就说明你的硬盘硬件是没问题的!!!
如果你的BIOS 中没有 HDD 也就是BIOS识别不了你的硬盘!那么基本上你的硬盘就是挂了!
这时候就算你硬盘插下来拿到别的电脑上也是坏的,所以有经验的维修人员会直接告诉你硬盘挂了!
不是人家不仔细(你也许会要求人家硬盘插到别的电脑试试的),也不是人家忽悠你,这就是自信...
BIOS 还为计算机提供最底层的硬件控制.
BIOS Basic Input/Output System. 是一段程序, 存放在单独一个芯片中.
🔸 2. MBR.GPT 引导
MBR: Master Boot Record 主引导记录:
是指一个存储设备开头的512字节! 它包含操作系统的引导器个存储设备的分区表.
GPT: GUID Partition Table 是新的分区方案, 解决了MBR的一些遗留问题.
比如MBR 最大只能支持2T的硬盘大小; 比如MBR 最多只能分4个主分区
BIOS 会有默认的启动设备! 一般是硬盘,重装系统时需要手动设置成光盘/USB 才行.
BIOS 会搜寻BIOS里设置的第一个存储设备中的 MBR 中的第一个分区的引导器.
比如你设置第一个启动设备是USB, 那么电脑开机就不会去找硬盘里面的系统,而是找U盘里面的系统.
一个U盘是可以安装好多个系统的! (U盘完全可以看成小容量的硬盘!)
BIOS 会找U盘中 MBR里的第一个分区的引导器,这里就可以选择你要启动U盘中的那个系统.
选择了某个U盘中的系统后就会读取分区表,然后就能加载操作系统了!
🔸 3. Grub 引导菜单
电脑开机,BIOS会读取 引导介质(硬盘/USB/光盘)上最前面的512字节,主引导记录(也就是MBR)
MBR只能存储一个系统的引导记录, 用MBR来引导的话一个硬盘只能装一个系统.
如果你要在一个硬盘中安装多个系统,那么你需要更加灵活的引导加载程序
由于BIOS芯片能力有限! 只能访问极少量的数据. 而引导程序一般来说不小的!
所以大部分的引导程序会分成两部分, 也就是系统其实是分两个阶段进行引导的.
第一部分是主要的引导程序,安装在MBR中. 第二部分引导程序就在硬盘的别的位置的!
BIOS会读取 MBR 中的第一个阶段的主引导程序, 主引导程序中有次引导程序在硬盘中的具体位置.
Grub 就是引导程序的第二部分! Grub 能提供 高级的GUI 界面! 而不是冷冰冰的命令行界面.
🔸4. 加载内核kernel
电脑操作其实可以分成两部分: 你能看见的(用户空间) + 你看不见的(内核空间)!
你能看到的: 各种GUI 图形界面, 鼠标的移动 等等...
你看不见的: 内核操作, 其实你的任何图形操作最终都是对内核的操作.图形只是方便你操作内核而已!
Linux 内核就是让 Linux这个操作系统运行起来的核心代码!
就像人少胳膊少腿都是不行的, 这些核心组件一个都不能少.
但是人少点衣服什么的 完全是没问题的! 就像系统上的 QQ等软件.
🔸5. 启动 init 进程
Linux下有3个特殊的进程: idle进程(PID=0)、 init进程(PID=1)、 kthreadd(PID=2)
idle 是系统创建的第一个进程. 唯一一个不是由Kernel 产生的进程. 完成加载系统后,演变为进程调度、交换...
init 是idle通过Kernel创建的. 是系统中所有其他进程的祖先进程.
init 是linux 内核启动的第一个用户级进程
Linux 中所有的进程都是init进程创建并运行的!
首先Linux内核启动, 然后在用户空间启动init进程,再由init创建出其他所有系统进程.
在系统启动完成后,init将变为守护进程,监视系统其他进程.
kthreadd 的任务就是管理和调度其他内核进程.
🔸6. 读取 etc/inittab 配置文件,
当init开始运行,它通过执行一些管理任务来结束引导进程,
这些任务都记录在 /etc/inittab 文件中
例如检查文件系统、清理/tmp、启动各种服务以及为每个终端和虚拟控制台启动getty,
在系统完全起来之后,init为每个用户已退出的终端重启getty(这样下一个用户就可以登录)。
init同样也收集孤立的进程:当一个进程启动了一个子进程并且在子进程之前终止了,这个子进程立刻成为init的子进程。
对于各种技术方面的原因来说这是很重要的,知道这些也是有好处的,因为这便于理解进程列表和进程树图。
🔸7. 其他
• etc/rc.d/sysinit
• etc/rc.d/rc (etc/rc3.d/*)
• mingetty
🔵 Linux 运维 网络监控是必须的, 所以没工具也要会看 网络流量方面的! \
🔵 磁盘的外部结构,内部结构,以及工作原理
🔵 磁盘的磁头读写数据的原理. 什么是扇区,磁道 柱面
🔵磁盘存储数据的最小单位是 某业务数据为10-100M的视频文件, 如何配置单位大小
🔵 一个硬盘最多可以分多少个主分区, 为什么
🔵 inode http://www.ruanyifeng.com/blog/2011/12/inode.html
🔵 软硬链接的区别 ❌
首先你要知道 文件在硬盘中其实是分成好几个部分 分别存储的!
就像字典! 字典是由前面几页的索引目录+内容组成的!
一个文件其实是分成两部分的, inode部分(文件名+文件属性...); 文件真正内容另一部分!
一个文件就像字典中的一个词语!
软链接可以看成快捷方式, 硬链接可以看成文件备份!
删除软链接 对源文件以及硬链接无任何影响.
删除硬链接 对源文件以及软链接无任何影响.
删除原文件 对硬链接无影响, 但是软链接会失效.
同时删除源文件+硬链接 才能真正删除一个文件.
很多硬件设备的快照功能 使用的就是类似硬链接的原理!!!
软链接可以跨文件系统. 硬链接不能跨文件系统.
硬链接文件与源文件的inode节点号相同. 而软链接文件的inode节点号与源文件不同.?????
🔵 Linux 文件删除原理 ✔︎
Linux 通过Link数量来控制文件删除.当一个文件不存在任何链接的时候,这个文件才会被删除.
每个文件都会有两个 link 计数器: i_count、i_nlink
i_count 的意义是当前文件使用者(被调用)的数量. ➜ 可以理解为 内存引用计数器
i_nlink 的意义是介质链接的数量(硬链接的数量). ➜ 可以理解为 磁盘引用计数器.
当一个文件被某一个进程引用时,对应的 i_count 就会增加.
当一个文件被创建硬链接的时候,对应的 i_nlink 就会增加.
rm 删除命令,实际是减少磁盘引用数! 也就是 i_nlink 的值.
如果文件没有其他的硬链接,你只要删除一次就可以把文件删除.
但是!如果你的文件正在被调用,比如你用vi在编辑这个文件.
这时候你是可以删除这个文件的, 但是你会发现,你打开的vi窗口没有自动关闭!
其实当你打开(调用)某个文件的时候, 该文件的 i_count 数量会增加(不为0)!
这时候就算你用rm 删除命令.把 i_nlink 的数量删到0. 系统并没有真正删除该文件.
只有当 i_nlink 和 i_count 都是0的时候! 文件才会被真正删除.
这里也就是你要退出vi后, 系统才会真正删除这个文件.
现在我们不说调用. 只说删除.
执行rm操作删除的文件是否可以被找回呢!?
rm 操作只是将文件的 i_nlink 减少了, 或者说置0了, 实际就是将文件的inode的删除了!
但是文件其实是两部分组成的 inode + 真实数据.
rm 并没有删除文件实体(真实数据).
如果执行rm后, 立刻停止电脑, 数据是可以被找回的.
如果执行rm后, 你还对磁盘进行频繁的读取,那么新的数据会很可能会覆盖掉你旧的真实数据.
这时候文件会被真正的回收了,这时候神仙也没办法了.
🔵 Linux 0-6 运行级别的各自行义 ✔︎
0:关机
1:单用户模式
2:多用户-无网络服务.
3:多用户-完整的多用户模式. 有网络支持(文本模式,工作中最常使用的模式)
4:保留,未使用
5:多用户-完整的多用户模式, 有网络支持 (X-Window 图形界面模式)
6:重新引导系统,即重启
运行级别: 操作系统当前正在运行的功能级别,
能让一些程序在某个级别启动,而在另一个级别不启动
Linux 的登录模式有0-9共十种.
Unix 一般只有1-6是有效的.不同的级别有不同的功能.
/etc/rc.d/ 中放着各种脚本,每个运行级别有对应文件夹,
你把脚本放到哪个文件夹中就会在相应级别运行该脚本
/etc/rc.d/init.d
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc/rc.d/rc6.d
标准的Linux 运行级别是 3 或者 5
模式3 就是多用户文本模式. 模式5就是 GUI 图形模式.
在终端中,我们可以键入 init <运行级别> 来切换运行级别来达到某种目的,
如输入 init 0 使系统关机,输入 init 6 使系统重启.
默认的运行级别可以通过修改 /etc/inittab 文件来改变,
该文件在接近开头的地方有一行与下面相似: id:5:initdefault:
把这一行中的数字改成你想要的运行级别。所做改变在系统重新引导之后才会生效。
不同的运行级有不同的用处,也应该根据自己的不同情形来设置。
例如,如果丢失了root口令,那么可以让机器启动进入单用户状态来设置。
在启动后的lilo提示符下输入: init=/bin/sh rw
就可以使机器进入运行级1 ,并把root文件系统挂为读写。
它会跳过所有系统认证,让你使用passwd程序来改变root口令,然后启动到一个新的运行级
🔵 脚本中单引号、双引号、不加引号的简单区别;�✔︎
脚本用变量的时候特别要注意 引号!
单引号: 所见即所得,单引号里面的内容会一模一样输出, 你引号里面写的什么就输出什么!
双引号: 双引号里面如果有变量,那么输出内容 会变成变量的内容.而不是引号里面的内容.
无引号:
不会将含有空格的字符串视为一个整体输出,
如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,
如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。
例子:
echo '`date`' ➜ 单引号时看到啥就显示啥 ➜ `date`
echo "`date`" ➜ 双引号里面的变量,会先把变量解析成具体内容在显示 ➜ Sat Oct 29 18:02:59 CST 2011
echo `date` ➜ 对于连续的字符串等内容一般不加引号也可,加双引号一般比较保险 ➜ Sat Oct 29 18:03:08 CST 2011
🔵 Crontab 的作用.以及注意点
crontab 定时执行命令!
🔵 Lunux 如何实现 系统集权分治的权限分级精细管理
🔵 服务器账户日志审计的5种解决方案
🔵 什么是文件系统, 说出你知道的文件系统.
🔵 nfs 网络文件系统的工作原理.
🔵 ext2 文件系统的原理.
🔵 文件系统的种类
🔵 什么是 rsync 有什么生产环境应用
🔵请描述ssh免密码验证的3种分发控制管理解决方案实现过程。
🔵你了解过有哪些批量部署、分发管理服务器解决方案(13种解决方案)
🔵 24.生产场景下,DELL R710服务器 6块600GSAS盘,计划装系统部署mysql从数据库提供读服务。请你描述从做RAID开始到安装系统后提供业务使用前的整个**及操作过程。
🔵25.使用linux 命令模式或rescue(救援模式)修复/etc/fstab。
🔵26.root密码忘记了,想重新获取root密码怎么做?
🔵27.请问如何优化linux系统。
🔵 网络
🔵 查看进程
🔵 防火墙
🔵
🔵 邮箱
sendmail 自建邮箱...
🔵 LNMP LAMP
🔵
28.一台LAN内主机无法上网(打不开网站),请给出你的排查步骤? 29.请描述,如何通过shell监控web及数据库服务,请给出你的思路或方法? 30.请描述下OSI7层模型及tcp/ip的3次握手。 31.mysql主从同步原理,生产情况数据库你是如何备份的?如何实现增量备份及恢复? 32.mysql常用存储引擎及原理区别。 33.请问如何优化数据库? 34.请问如何优化web服务器(apache and nginx)? 35.一台办公室内主机无法上网(打不开网站),请给出你的排查步骤? 36.作为一个运维人员,有运营人员反映我们的网站etiantian.org打开慢,这是你如何排查? 37. 请问你如何理解网站并发的概念。 38.你的公司网站并发是多少?访问量是多少? 39.描述mysql主从同步原理。 40.描述mysql主从同步部署。 41.描述mysql root密码忘了怎么办? 42.描述MyISAM与Innodb数据库引擎特点与区别? 43.描述mysql多实例部署。 44.描述如何查看mysql的命令帮助,请举例。 45.描述mysql增量备份和恢复过程。
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 Apache 🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 常用模式:
apache + php VS Nginx + PHP
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 Nginx 🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
🔵
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 数据库 🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 关系型 / 非关系型
🔵 MySQL
🔸 主从同步原理.
🔸 生产情况数据库是如何备份的.
🔸如何实现增量备份 及 恢复
🔸 Mysql 常用的存储引擎 以及区别 ; 工作中如何选择引擎.
增删查改
主从 主主
读写分离
高可用
分区分表
🔵 Redis
🔵 MongoDB
🔵 PostgreSQL
🔵 SparkSQL
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 常见端口 🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
🔸 21: FTP File Transfer Protocol 文件传输协议. 两电脑之间实现文件上传下载
🔸 22 & 23
• 22: SSH
• 23: Telnet 远程登录. 明文的! 不安全. 一般windows上用的多.
🔸 25、110 & 143
• 25 : SMTP ➜ 发邮件
simple Mail Transfer Protocol. 简单邮件传输协议. 发邮件用.
利用25端口就可以找到邮件服务器,黑掉后就可以用来转发垃圾邮件.
• 110: POP3 ➜ 接收邮件,客户端的操作不影响服务器.
• 143: IMAP ➜ 接收邮件,客户端的操作同步到服务器!
🔸 465、995 & 993
• 465: SMTPS 加密的 smtp
• 995: POP3S 加密的 pop3
• 993: IMAPS 加密的 imap
🔸 53: DNS, 域名服务器.
🔸 873: rsync
🔸 3306 MySQL
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
🔵 OSI 七层
二层交换,三层路由!
四层: 传输层: TCP/UDP
三层: 网络层: IP、ICMP、ARP、RARP
二层: 数据链路层:
🔵 三次握手、四次挥手
★★★★★ https://github.com/jawil/blog/issues/14
🔸 手动描述1
「你瞅啥?」
「瞅你咋地?」
「来咱俩唠唠。」
然后就唠上了。
🔸 生动描述2
how are you ?
fine.And you?
Fine.
俩人见面,客套完确认对方正常以后,就开始工作了。
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 TCP UDP 🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
🔸 TCP/UDP 区别 ✔︎
TCP 在传数据前必须先建立连接. 也就是三次握手,四次挥手
TCP 连接建立后, 有数据重传、流量控制等等功能, 所以是非常可靠的.
TCP 协议能正确处理丢包问题, 保证对方接收到完整的数据.
UDP 在传输数据的时候是不管对方的, 只负责把数据发出去,不管对方是否收到.所以是不可靠的.
TCP 注重数据安全性, UDP注重传输速度! 各有优点
像DNS查询这种 要的就是速度,所以就是UDP
各种视频网站好像用的是HTTP协议,而不是UDP, 不太确定的就不要说出来!
当网络差的时候, TCP 会非常明显的能感觉到, UDP 的话影响小很多!
🔸 TCP 应用场景 ✔︎
SSH、HTTP、HTTPS....
iMessage 是端到端的加密. 绝对是TCP.
🔸 UDP 应用场景 ✔︎
• DNS (53端口)
• NTP 时间同步,
• DHCP 路由器经常会广播自己的IP地址的,这里用的也是UDP
• SNMP 简单网络管理协议, 也是用的 UDP.
翻墙! 就是UDP的一个经典场景.
被墙是因为TCP被重置! 导致连接断开!一旦发送一个reset,起码会导致几分钟内不正常.
这时候用UDP, 由于UDP本身就是无连接的,没法被重置的!
那个 IPsec的VPN 好像用的就是 UDP,
🔵 Socket
🔸
🔸
🔸
🔸
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 Misc 🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
写一个防火墙配置脚本,只允许远程主机访问本机的80端口。
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸 �安全 🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
🔵 如何防止 DDOS
🔵 如何防止黑客入侵, 安全防护
🔵 你用过那些LVS ,并讲述LVS各个模式的特点和区别? 【
🔵 一千万 并发,你有那些方案?【提示这些单用LVS 成受不起的,】【送五分】
🔵讲述你如何做系统优化,提高系统性能,充分利用资源? 【系统优化题目】 【送三分】
🔵八 IO 性能不足,你如何优调? 【系统优化题目】 【送三分】
🔵九 LNMP 架构优化 优化那些 ,特别影响性能那些参数,? 【应用优化题目】【提示 一定要按大并发】 【送三分】
十 如何 MySQL 优化 【应用优化题目】【提示 一定要按大并发】 【送三分】
十一 讲术 Memecahe 工作原理和优缺?【送二分】
十二 讲术CDN工作原理和优缺? 【送二分】
十三 你如何监视服务器质量和网络质量?用个那些工具 及优缺点?【送二分】
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸