赞
踩
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
怎么实现防火墙对指定ip对指定服务可以访问?
主从复制原理就是master 开启bin-log二进制日志,从库通过change master 得到主库的相关同步信息,然后连接主库进行验证,主库的IO线程根据从库slave线程的请求,从master.info 开始记录的位置点向下开始取信息,同时把取到的位置点和最新的位置与binlog信息一同发给从库IO线程,从库将相关的sql语句存放到relay-log里面,最终从库的sql线程将relay-log里面的sql语句应用到从库上,至此整个同步过程完成,之后则将无限重复上述的过程。
完整的步骤如下:
1、索引的概念
索引就是为了提高数据的检索速度。数据库的索引类似于书籍的索引。
在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库.
2、索引的优点
1.创建唯一性索引,保证数据库表中每一行数据的唯一性
2.大大加快数据的检索速度,这也是创建索引的最主要的原因
3.减少磁盘IO(向字典一样可以直接定位)
3、索引的缺点
1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
2.索引需要占用额外的物理空间
3.当对表中的数据进行增加、删除和修改的时候,
索引也要动态的维护,降低了数据的维护速度
4、索引的分类
1.普通索引和唯一性索引
普通索引:CREATE INDEX mycolumn_index(索引名) ON mytable (表名)
唯一性索引:保证在索引列中的全部数据是唯一的
CREATE unique INDEX mycolumn_index ON mytable (myclumn)
2. 单个索引和复合索引
单个索引:对单个字段建立索引
复合索引:又叫组合索引,在索引建立语句中同时包含多个字段名,
最多16个字段
CREATE INDEX name_index ON userInfo(firstname,lastname)
3.顺序索引,散列索引,位图索引
原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability)
数据库事物特性
1, 什么是数据库事务?
数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
意思就是一连串的数据库操作,即一串增删查改的集合。
2, 数据库事务做了什么?
它把数据库从一个一致的状态转换到另一个一致的状态,比如数据库操作前是一个点,数据库操作后是一个点,
我们只管这两个点的状态,而两点之间的连线上的状态我们不管因为他们可能对我们想要的结果产生影响。
3, 第一个特性 原子性(Atomicity)
假如我们有个方法中对一个属性进行了N次的更新,但是执行到一半的时候有一个语句有问题出现了异常,这样就可能使得我们上面所说的操作后的点与我们预先的点不同,这不是我们想要的,所以原子性要求你这个方法要么全部执行成功,要么你就别执行。
4, 第二个特性 一致性(Consistency)
原子性中规定方法中的操作都执行或者都不执行,但并没有说要所有操作一起执行(一起更新那就乱套了,要哪个结果?),所以操作的执行也是有先后顺序的,那我们要是在执行一半时查询了数据库,那我们会得到中间的更新的属性?答案是不会的,一致性规定事务提交前后只存在两个状态,提交前的状态和提交后的状态,绝对不会出现中间的状态。
5, 第三个特性 隔离性(Isolation)
事务的隔离性基于原子性和一致性,每一个事务可以并发执行,但是他们互不干扰,但是也有可能不同的事务会操作同一个资源,这个时候为了保持隔离性会用到锁方案。
6, 第四个特性 持久性(Durability)
当一个事务提交了之后那这个数据库状态就发生了改变,哪怕是提交后刚写入一半数据到数据库中,数据库宕机(死机)了,那当你下次重启的时候数据库也会根据提交日志进行回滚,最终将全部的数据写入。
LVS 目前已经被集成到linux内核模块中了,也就是linux服务器,该项目在linux内核中实现了基于IP的数据请求负载均衡的调度方案,终端互联网用户从外部访问公司的外部负载均衡器,终端用户的web请求会发送到LVS调度器,调度器会根据自己预设的算法决定将请求发送给后端的 某台WEB服务器,比如轮询的话会将外部请求平均发送给后端的所有服务器。终端用户访问LVS 调度器虽然会被转发到后端的真实服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户来说的是透明的,最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式,TUN模式以及DR模式。
NAT模式要求:
LAMP架构是Linux Apache Mysql PHP 的缩写,即把Apache Mysql PHP 安装在linux系统上,组成一个环境来运行PHP网站,这里的Apache是httpd服务,这些可以安装到一个机器上,但是httpd 和PHP安装在一台机器上(php作为httpd的一个模块存在的,他们两者必须要在一起,才能实现效果)。
Apache主要实现如下功能:
第一:处理http的请求、构建响应报文等自身服务
第二:配置让apache 支持PHP程序的响应(通过php模块或者fpm)
第三:配置Apache具体处理php程序的方法,如通过反向代理将php程序交给fcgi处理
Mysql主要实现如下功能:
第一:提供PhP程序对数据的存储
第二:提供php程序对数据的读取(通常情况下从性能)
php主要实现如下功能:
第一:提供apache的访问接口,即CGI或者Fast CGI(fpm)
第二:提供php程序的解释器
第三:提供mysql数据库的连接函数的基本函数。
函数可以作为参数传递的语言可以使用装饰器。
整型–int,布尔型–bool,字符串–str,列表–list,元组–tuple,字典–dict。
装饰器: 给函数增加新功能,不修改被装饰对象的源代码和调用方法
生成器: 生成器其实是一种特殊的迭代器,它不需要__iter__() 和__next__() 方法,只需要一个yiled 关键字
迭代器: 任何实现了__iter__() 和__next__() 方法的对象都是迭代器,iter() 返回迭代器自身, next() 返回容器中的下一个值
简述面向对象中__new__和__init__区别?
第一步:浏览器发起请求
time datetime、random、os、sys
深拷贝和浅拷贝最根本的区别在于是否真正获取一个对象的复制实体,而不是引用。
假设B复制了A,修改A的时候,看B是否发生变化:
如果B跟着也变了,说明是浅拷贝,拿人手短!(修改堆内存中的同一个值)
如果B没有改变,说明是深拷贝,自食其力!(修改堆内存中的不同的值)
核心: 如果列表的元素包含可变数据类型, 一定要使用深拷贝。
一个监控系统运行的流程是:
agent 需要安装到被监控的主机上,它负责定期收集各项数据,并发送到Zabbix server 端,zabbix server 将数据存储到数据库中,zabbix web根据数据在前端进行展示和绘图,这里agent收集数据分为主动和被动两种模式:
主动:agent 请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
zabbix自定义发现怎么设置?
zabbix怎么实现微信电话短信报警得?
我当时做zabbix监控的时候使用的是睿象云实现的
使用zabbix 监控过那些服务?
进程cpu查看负载和使用率
单机内存查看
单机磁盘查看
单机查看网络
nginx mysql
grep 的使用:
grep是全面搜索正则表达式并把行打印出来,它是一种强大的文本搜索工具,与正则表达式结合使用。
如何在脚本中使用参数?
第一个参数:$1,第二个参数$2
[root@Suns ~]# sh show.sh file.txt /mnt
[root@Suns ~]# cat show.sh
#!/bin/bash
cp $1 $2
1、二者最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程 。nginx处理静态文件好,耗费内存少.但无疑apache仍然是目前的主流,有很多丰富的特性.所以还需要搭配着来.当然如果能确定nginx就适合需求,那么使用nginx会是更经济的方式。
2、nginx的负载能力比apache高很多。最新的服务器也改用nginx了。而且nginx改完配置能-t测试一下配置有没 有问题。
3、apache重启的时候发现配置出错了,会很崩溃,改的时候都会非常小心翼翼现在看有好多集群站,前端nginx抗并发,后端apache集群, 配合的也不错。
4、nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。
5、从经验来看,nginx是很不错的前端服务器,负载性能很好,nginx,用webbench模拟10000个静态文件请求毫不吃力。 apache对php等语言的支持很好,此外apache有强大的支持网络,发展时间相对nginx更久,bug少但是apache有先天不支持多核心处理负载鸡肋的缺点,建议使用nginx做前端,后端用apache。大型网站建议用nginx自代的集群功能。
6、大部分情况下nginx都优于APACHE,比如说静态文件处理、PHP-CGI的支持、反向代理功能、前端 Cache、维持连接等等。在Apache+PHP(prefork)模式下,如果PHP处理慢或者前端压力很大的情况下,很容易出现Apache进程数 飙升,从而拒绝服务的现象。
7、Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache吧!
8、一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。
Nginx、HAProxy、LVS三者的优缺点**
nginx 的优点:
LVS的优点:
2、如果是网站应用比较庞大的话,LVS/DR+Keepalived实施起来就比较复杂了,特别后面有Windows Server的机器的话,如果实施及配置还有维护过程就比较复杂了,相对而言,Nginx/HAProxy+Keepalived就简单多了。
HAProxy优点:
/etc/passwd里的内容 :每段代表的意思
用户名 密码 用户id 用户组id 用户说明 用户家目录 用户的默认脚本
**shell写过什么脚本 实现什么功能 **
*iostat
用于输出cpu和磁盘的I/O相关的统计信息。
[root@Suns ~]# iostat
Linux 3.10.0-957.21.3.el7.x86_64 (Suns) 03/31/2021 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.35 0.00 0.35 0.00 0.00 99.29
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 0.37 0.37 4.03 369195 4030672
第一行:系统版本、主机名 当前时间
avg-cpu 总体的cpu使用情况统计信息,对于多核cpu,这里指得是cpu得平均值
Device 各磁盘设备的IO统计信息。
也可以指定采样时间间隔与采样次数
vmstat
可以展现给定时间间隔的服务器的状态,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,io读写情况。
[root@Suns ~]# vmstat 2 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 305824 179676 1106552 0 0 0 2 2 5 0 0 99 0 0
表示每两秒采集一次服务器状态,1表示只采集1次
进程 内存 swap IO system cpu
前面五个*号代表五个数字,数字的取值范围和含义如下:
分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天
第一行:当前时间、系统启动时间、当前系统登录用户数目、平均负载(1分钟,10分钟,15分钟)。
第二行:进程总数、运行进程数、休眠进程数、终止进程数、僵死进程数。
第三行:%us用户空间占用cpu百分比;
%sy内核空间占用cpu百分比;
%ni用户进程空间内改变过优先级的进程占用cpu百分比;
%id空闲cpu百分比,反映一个系统cpu的闲忙程度。越大越空闲;
%wa等待输入输出(I/O)的cpu百分比;
%hi指的是cpu处理硬件中断的时间;
%si值的是cpu处理软件中断的时间;
%st用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间。
第四行:total总的物理内存;used使用物理内存大小;free空闲物理内存;buffers用于内核缓存的内存大小
第五行:交换分区
buffers指的是块设备的读写缓冲区,cached指的是文件系统本身的页面缓存。他们都是Linux系统底层的机制,为了加速对磁盘的访问。
top - 14:34:13 up 11 days, 14:01, 2 users, load average: 0.01, 0.02, 0.05
Tasks: 80 total, 1 running, 79 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1776404 total, 305400 free, 184680 used, 1286324 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1388744 avail Mem
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
PT等共享给大家!
给大家整理的视频资料:
[外链图片转存中…(img-q4Q6k3SI-1714755916418)]
给大家整理的电子书资料:
[外链图片转存中…(img-7UWRSQJQ-1714755916418)]
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。