LinuxSRE
Linux-SRE
白-胖-子
白胖子 sunmy@sunmy.pro
展开
-
常见编程语言都是什么类型的?不同类型的语言有什么区别?
根据变量的类型是否可以改变分为静态语言和动态语言静态语言:变量的类型需要事先声明,之后变量值可变更的,但值得类型不能再变更,编译时会进行变量类型的语法检查动态语言: 变量的类型不需要实现声明,而且可变,赋值即定义,编译时不进行变量类型检查,只有程序运行时才会发现是否有问题根据不同类型数据是否需要强制转换分为强类型和弱类型强弱使用print('a'+1)来测试强类型语言: 不同类型的数值进行操作之前必须先强制转换为同一类型弱类型语言: 不同类型的数据可以操作,自动隐式转换强类型静态语言:原创 2021-10-21 17:40:15 · 375 阅读 · 0 评论 -
Nginx常见优化项和优化参数设置详解
优化Ngxin提高安全性实现高并发通过对Nginx的优化设置,使Nginx提高安全性的同时支持更多并发请求过通对Nginx所在宿主机Linux内核参数进行调整,使其更符合用于支持高并发访问的Web服务器Nginx配置优化编辑nginx.conf配置文件设置nginx多进程通过设置nginx工作进程数量,可以实现更⾼的并发量worker_processes 8; #启动工作进程数数量,建议设置成cpu逻辑核数相同值设置nginx单个工作进程最大并发连接数worker_connec原创 2021-09-10 00:57:12 · 2093 阅读 · 0 评论 -
使用shell脚本计算文本中数字求和
问题:文件abc中有且只有一行数字32 2 43 6 77,编写shell脚本通过循环求和。准备文本echo "32 2 43 6 77" > abc编写脚本 1 #!/bin/bash 2 # 3 #***************************************************************************** 4 #Author: sunmy 5 #Mail:原创 2021-09-07 16:54:49 · 4261 阅读 · 0 评论 -
zabbix主动模式和被动模式的区别
zabbix监控主被动模式被动模式zabbix服务器从监控端拉数据,主动模式zabbix agent主动向服务器推数据。zabbix监控默认为被动模式,zabbix agent被动的接受Zabbix Server的监控指令并返回数据。zabbix主动模式为zabbix agent主动向zabbix Server发送请求拿来监控项并返回数据。zabbix主被动模式详解zabbix被动模式zabbix agent被动的接受zabbix server周期性发送过来的数据收集指令原创 2021-09-05 18:26:21 · 2873 阅读 · 0 评论 -
zabbix添加nginx自定义监控项的步骤
目的使用zabbix监控nginx,通常可以添加自定义监控项,主要监控nginx活动连接和当前状态等具体内容。nginx主要自定义监控项的取值通过curl nginx的自带状态页,获得Active connections当前处于活动状态的客户端连接数accepts 已接受到的请求数handled 已处理完成的请求数,通常等于accepts,除非超了排队requests 客户发过来的请求项Reading 正在读取的请求报文,值越大表示排队严重Writing 正在返回的响应报文,值越大表原创 2021-09-05 17:42:05 · 366 阅读 · 0 评论 -
Linux集群Cluster简介【面试必看】
集群ClusterCluster:集群,为解决某个特定问题将多台计算机组合起来形成的单个系统通常我们所说的集群是指计算机集群随着计算机性能的增长,其价格会成倍增长单台计算机的性能是有上限的,不可能无限制地垂直扩展为降低成本提高性能,计算机集群技术应运而生!系统性能扩展方式:Scale UP:垂直扩展,向上扩展,增强,性能更强的计算机运行同样的服务Scale Out:水平扩展,向外扩展,增加设备,并行地运行多个服务调度分配问题,Cluster集群分类按操作系统分类从操作系统原创 2021-08-24 14:28:48 · 575 阅读 · 0 评论 -
分布式对象存储Ceph核心组件【面试必看】
CephCeph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。Ceph核心组件OSDs (必须)提供存储数据,对象存储守护进程一个服务器上的磁盘上的存储服务可以理解为一块磁盘创建一个OSDs,每个磁盘都会启动一个OSD进程iygeceph集群至少需要至少三个服务器和至少三个OSD若干个对象守护程序数据的复制、恢复和重新平衡都是由OSDs维护的Monitors (必须)维护整个ceph的状态是ceph的监视器在一个主机上运行的一个守护进行监控同时负原创 2021-08-18 11:52:58 · 779 阅读 · 1 评论 -
互联网架构-中间件【面试必看】
中间件是为软件和软件通信提供服务的软件中间件的定义中间件(英语:Middleware),又译中间件、中介层,是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。中间件位于客户机服务器的操作系统之上,管理着计算资源和网络通信。 – 维基百科说人话:中间件是程序(应用)和程序(应用)利用接口API通信的中间程序,中间件为软件和软件间的通讯提供服务中间件释义IDC的定义:中间件是一种独立的系统软件服.原创 2021-08-17 22:54:20 · 568 阅读 · 0 评论 -
简述 :(){ :|: & };: 代码的意义
面试题:请简述以下shell 代码的意义,并说明运行此段代码会对服务器产生什么影响?:(){ :|: & };:分析这么看不直观,加个壳看的就清楚了#!/bin/bash:(){ :|: & };:还看不明白么?那么好,我们言归正传!shell函数声明的方式:shell脚本中函数声明的方式通常有以下三种#语法一:func_name (){...函数体...}#语法二:function func_name {...函数体...}原创 2021-08-03 13:00:21 · 3938 阅读 · 3 评论 -
Linux脚本编程Shell中关于 () 和 {}的区别
小括号和花括号的作用在bash中,小括号(CMD1;CMD2;…)和 花括号{ CMD1;CMD2;…; } 都可以将多个命令组合在一起,批量执行(list) list is executed in a subshell environment (see COMMAND EXECUTION ENVIRONMENT below). Variable assignments and builtin commands that affect the shell's environment原创 2021-08-03 10:04:23 · 1008 阅读 · 0 评论 -
简述MySQL主从复制的原理【面试必看】
MySQL 主从复制主节点和从节点同步数据,每个节点保持数据一致MySQL 主从复制的作用实现负载均衡读写分离实现数据库备份实现数据库高可用和故障切换MySQL 主从复制原理和过程MySQL主从复制依赖二进制日志实现主节点更新数据主节点将更新操作写入二进制日志主节点为每个Slave的I/O Thread启动一个dump线程,用于向其发送binary log events从节点通过向I/O Thread向Master请求二进制日志事件,从节点将请求到的二进制日志时间保存于原创 2021-07-28 20:56:44 · 1047 阅读 · 0 评论 -
Kubernetes(K8s)主要组件简要介绍【面试必看】
K8s主要组件Kubernetes ComponentsThe worker node(s) host the Pods that are the components of the application workload. The control plane manages the worker nodes and the Pods in the cluster. 1 Master 组件 1.1 kube-apiserver # 集群接口 1.2 ETCD原创 2021-07-27 22:52:54 · 4709 阅读 · 1 评论 -
Linux系统根下常见目录功能简介
Linux的文件系统分层结构FHS文件系统层次标准:FHS Filesystem Hierarchy Standard文件和目录被组织成一个单根倒置树结构文件系统从根目录下开始,用“/”表示根文件系统(rootfs):root filesystem标准Linux文件系统(如:ext4),文件名称大小写敏感,例如:MAIL, Mail, mail, mAiL以 . 开头的文件为隐藏文件路径分隔符 /文件名最长255个字节包括路径在内文件名称最长4095个字原创 2021-07-22 17:49:14 · 339 阅读 · 2 评论 -
Redis 和 Memcached简单比较
Redis和Memcached两者均基于 C 语言开发均属于非关系型键值对数据库均为轻量级数据库应用均可应用于Cache缓存和Session持久化Redis比较Memcached的优势:支持数据的持久化:可以将内存中的数据保持在磁盘中,重启redis服务或者服务器之后可以从备份文件中恢复数据到内存继续使用支持更多的数据类型:支持string(字符串)、hash(哈希数据)、list(列表)、set(集合)、zset(有序集合)支持数据的备份:可以实现类似于数据的mas原创 2021-07-01 16:58:47 · 213 阅读 · 0 评论 -
Database 数据库 和 Data Structure 数据结构的区别与联系
Database 数据库数据库,顾名思义,就是存放数据的仓库数据库是“按照数据结构来组织、存储和管理数据的仓库”。DBMS 数据库管理系统通常我们口头上所讲的数据库是指数据库软件,专业的名词叫做DBMS即Database Management System 数据库管理系统常见数据库管理系统软件DB2RedisOracleMySQLMariaDBMongoDBPostgreSQLMicrosoft SQL ServerData Structure 数据结构数据结构是原创 2021-07-01 16:41:13 · 2115 阅读 · 0 评论 -
负载均衡⽤的什么,有什么区别?
LVS:在lvs/nginx/haproxy当中是性能最强的负载均衡器,尤其是DR模式,⽤⼾的请求经过LVS后转发给real server进⾏相应,但是响应报⽂是web直接通过⽹关进⾏响应,但是没有七层的转发功能,因此在七层的URL判断、域名处理功能都不⽀持,NAT和隧道模式很少使⽤。12种调度算法wrr和wlc默认调度,Haproxy:同时⽀持4层和七层,性能没有LVS强,但是官⽅资料表⽰单机可以承受100W并发,通常可以达到数⼗万并发,通常会使⽤Haproxy 作为4层负载均衡服原创 2021-06-25 13:20:34 · 146 阅读 · 0 评论 -
有什么是Apache能干可Nginx干不了的事情么?
问题:Nginx基本覆盖了Apache的全部功能。有很多Apache老的模块是Nginx不具备的,但那些过时的模块也不常用。请问Nginx是否可以完全取代Apache,有什么是Apache能做,而Nginx做不了的呢?回答:AJP协议是apache基金会开发的协议,apache httpd和tomcat传输可以使用http协议,也可以使用专有的AJP协议。Nginx不能支持AJP协议和tomcat传输,这一点是Apache能干可Nginx干不了的事情!哈哈哈!...原创 2021-06-25 09:29:29 · 221 阅读 · 0 评论 -
HAProxy调度算法简介
HAProxyHAProxy是法国开发者威利塔罗(Willy Tarreau) 在2000年使用C语言开发的一个开源软件,具备高并发(一万以上)、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支持正则表达式及web状态统计HAProxy调度算法HAProxy通过固定参数 balance 指明对后端服务器的调度算法,该参数可以配置在listen或backend选项中。HAProxy的调度算法分为静态和动态调度算法,但是有些算法可以根据参数在静态和动态算法中相原创 2021-06-21 13:28:20 · 418 阅读 · 0 评论 -
Linux负载均衡集群LVS十二种调度算法
LVSLinux Virtual Server1995 中国 章文嵩Linux内核默认组件接受用户请求并转发给后端服务器由后端服务器响应请求LVS四种工作模式DR 直接路由模式TUN 隧道模式NAT 地址转换模式FULLNAT 全部地址转换模式关于四种工作模式的详细介绍:https://blog.csdn.net/timonium/article/details/117594756LVS十二种调度算法ipvs scheduler:根据其调度时是否考虑各RS当前的负载状态原创 2021-06-05 23:20:46 · 307 阅读 · 0 评论 -
Linux负载均衡集群LVS四种工作模式原理及比较
LVSLinux Virtual Server1995 中国 章文嵩Linux内核默认组件接受用户请求并转发给后端服务器由后端服务器响应请求LVS集群四种工作模型DR模式DR 直接路由 默认模式速度最快,效率最高DR模式LVS和后端服务器使用MAC地址判断,不能跨路由解决VIP冲突可以在路由器上写IP和MAC绑定(不建议使用)关闭免费ARP,虽然请求单不应答ignore,对外发布announce。Gratuitous ARP也称为免费ARP,无故ARPRS服务器默默拥有VIP却原创 2021-06-05 14:33:54 · 278 阅读 · 0 评论 -
Linux内核中数据包的传输过程
三种报文流向流入本机:PREROUTING --> INPUT-->用户空间进程当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。如果数据包是进入本机的(目的IP为本机IP),数据包就会到达INPUT链。数据包到达INPUT链后,任何进程都会收到它。流出本机:用户空间进程 -->OUTPUT--> POSTROUTING本机上运行的程序可以发送数据包,这些数据包经过OUTPUT链,然后到达POSTROUTIN原创 2021-06-05 00:03:36 · 942 阅读 · 1 评论 -
HTTP 常用响应代码
HTTP 响应代码HTTP响应报文中的status 状态码表示HTTP 请求是否已成功完成。状态代码由 section 10 of RFC 2616定义http协议状态码分类响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)服务器错误 (500–599)。http常见响应代码成功响应200: 成功,请求数据通过响应报文的entity-body部分发送;OK重定向301: 请求的URL指向的原创 2021-05-27 17:33:55 · 284 阅读 · 0 评论 -
如何避免MySQL主从复制数据不一致?
1. 避免主从复制不一致主库binlog采用ROW格式主从实例数据库版本保持一致主库做好账号权限把控,不可以执行set sql_log_bin=0从库开启只读,不允许人为写入定期进行主从一致性检验2. 主从不一致修复方法2.1 将从库重新实现虽然这也是一种解决方法,但是这个方案恢复时间比较慢,而且有时候从库也是承担一部分的查询操作的,不能贸然重建。2.2 使用percona-toolkit工具辅助PT工具包中包含pt-table-checksum和pt-table-sync两原创 2021-05-19 14:16:24 · 423 阅读 · 0 评论 -
MySQL面试题: InnoDB中一颗的B+树可以存放多少行数据?
假设定义一颗B+树高度为2,即一个根节点和若干叶子节点。那么这棵B+树的存放总行记录数=根节点指针数*单个叶子记录的行数。这里先计算叶子节点,B+树中的单个叶子节点的大小为16K,假设每一条目为1K,那么记录数即为16(16k/1K=16),然后计算非叶子节点能够存放多少个指针,假设主键ID为bigint类型,那么长度为8字节,而指针大小在InnoDB中是设置为6个字节,这样加起来一共是14个字节。那么通过页大小/(主键ID大小+指针大小),即16384/14=1170个指针,所原创 2021-05-14 15:11:48 · 748 阅读 · 0 评论 -
DNS服务53端口TCP和UDP的区别
DNS服务使用53端口DNS服务同时使用TCP53端口和UDP53端口,请问这两个端口分别有什么用途?UDP 53 用户用来查询,区域的传输,主从复制TCP 53 只用于区域传输,禁用则不能主从复制原创 2021-05-07 13:07:45 · 13683 阅读 · 0 评论 -
Linux各版本通用取系统发行版本大版本号的方法
编写Shell脚本时,我们常常需要根据系统的版本特性,编写不一样的内容。对系统大版本的判断就尤为重要。为了Shell脚本的通用性,通常,我们会在脚本头对服务器大版本进行定位,然后调用不同功能的函数实现特定的功能。本篇介绍了CentOS和Ubuntu中取系统大版本号的几种方法,为编写Linux脚本时判断系统版本提供了解决方案。原创 2021-04-29 16:28:04 · 404 阅读 · 0 评论 -
Ubuntu20破解管理员root密码忘记密码找回
其实没有破解啦,只不过进入高级模式修改了root密码而已Ubuntu20 启动Ubuntu 20也是由grub2引导启动Ubuntu20进入高级模式修改root密码拼手速按shift进入Ubuntu内核选择菜单显示界面选择默认内核按e进行添加内核参数界面结果发现不行只能重新来过拼手速按shift进入菜单界面按e进行编辑往下翻找到linux开头跟着内核并包括recovery的行找到recovery前面的ro修改为rw按键盘上Ctrl+x组合键启动原创 2021-04-25 22:35:40 · 3973 阅读 · 3 评论 -
CentOS8破解管理员root密码
CentOS 8启动过程使用systemd-analyze blame查看CentOS 8 启动时加载的内容[01:51:24 rooter@C8-3-55 ~]#systemd-analyze blame 43.797s rsyslog.service 4.747s kdump.service 4.502s tuned.service 4.297s mariadb.service 2.166s Net原创 2021-04-25 15:11:54 · 594 阅读 · 0 评论 -
CentOS7破解管理员root密码
CentOS 7启动流程UEFi或BIOS初始化,运行POST开机自检选择启动设备引导装载程序, centos7是grub2,加载装载程序的配置文件:/etc/grub.d//etc/default/grub/boot/grub2/grub.cfg加载initramfs驱动模块加载内核选项内核初始化,centos7使用systemd代替init执行initrd.target所有单元,包括挂载/etc/fstab从initramfs根文件系统切换到磁盘根目录systemd执行默认ta原创 2021-04-25 13:35:13 · 264 阅读 · 0 评论 -
CentOS6破解管理员root密码
CentOS 6 启动管理CentOS 启动流程POST加电自检MBR引导GRUB引导加载内核GRUB启动阶段GRUB是硬件加载操作系统的中介第一阶段是直接以二进制的形式放在磁盘上primary boot loader:1st stage:MBR的第446个字节1.5st: mbr之后,加载文件系统驱动secondary boot loader:加载内核GRUB定义了内核的位置/boot/grub/grub.conf 中写了内核位置[root@C6-56 ~]# hex原创 2021-04-25 10:15:35 · 278 阅读 · 0 评论 -
Linux使用ping命令扫描整个网段
ping命令可以向目标主机发送ICMP包,从而判断到达目标主机的网络是否畅通但ping命令一次只能与一个主机进行通讯,为了达到使用ping命令扫描整个网段主机的目的,我们需要编写shell脚本实现使用for循环配合ping命令逐个扫描#!/bin/bashfor i in {1..254};do ping -c1 -W1 10.0.0.$i \ && echo "10.0.0.$i" is alive \ || echo 10.0.0.$i is unrea原创 2021-04-20 10:08:17 · 8745 阅读 · 0 评论 -
Linux查找所有开启多线程的程序
#查找系统中开启了多线程的程序,显示程序及其PIDpstree -p 查看进程和线程其中带有花括号的就是多线程的进程proc下有很多数字文件夹,这些数字就是PIDcat /proc/PID/status 其中有threads查看有多少线程通过pstree -p配合sed命令取出开启了多线程的程序pstree -p 结果中其中带有花括号的就是多线程的进程root@u20-58:/home/u20# pstree -psystemd(1)─┬─VGAuthService(740)原创 2021-04-20 09:20:57 · 283 阅读 · 0 评论 -
TCP/IP四层模型
TCP/IP实际应用TCP/IP协议协议栈 上百个协议的集合最重要的是TCP和IP,因此用来做名称互联网前身ARPARP网络中使用TCP/IP协议代替了NCP协议90年代初最早使用的是IPX/SPX随着微软技术的不断更新,NT4.0适合企业级的服务器产品,果断地使用了TPC/IP协议作为默认的网络协议,局域网和互联网不需要转换Linux 默认使用TCP/IPTCP/IP协议是开源的,可以免费试用rcf1180文档详细的记录了TPC/IP的具体内容ietf.org/r原创 2021-04-14 23:28:47 · 255 阅读 · 0 评论 -
常见网络设备分类和工作分层
中继器和集线器 物理层 1层直接转发电信号,不进行任何多余的处理中继器 repeater基于物理层 再次放大信号只有两个口集线器 hub多端口的中继器共享带宽 半双工群发 网卡自动过滤,可监听网桥和交换机 数据链路层 2层交换机属于数据链路层,也就是二层,MAC是二层的重要标识网桥 Brigge桥接线器口少,可以连接不同的电缆内存记录 接口和MAC的对应关系根据MAC地址对数据帧进行转发可以分割冲突域,冲突域约小,性能越好交换机 Switch工作模式于网桥相同原创 2021-04-14 22:33:41 · 2542 阅读 · 0 评论 -
单播、组播、广播和冲突域、广播域和单工、半双工、全双工
三种通讯方式ifconfig查看单播一个源,单个或多个目标点对点通讯多播或组播一个源,给一个组进行发送集群中内部通讯广播一个源,所有目标[01:01:08 rooter@C8-3-55 ~]#ifconfigeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500冲突域和广播域冲突域:双向通讯 冲突域广播域:能收到广播报文,则在广播域三种通讯机制网卡的工作模式是和对端协商出来的协商出来的是最低速度原创 2021-04-14 22:18:50 · 760 阅读 · 0 评论 -
ISO七层网络模型
开放系统互连 OSI1984年ISO发布了OSI Open System Interconnection 标准只要符合标准,就互联互通互相兼容OSI七层结构提供了标准规范应用层 Application典型协议:http、https、ftp、ssh、smtp、pop3、mysql、telnet不同应用程序的协议,提供位应用软件而设计的接口,软件和软件之间的通信。表示层 Presentation进行编码、格式转化,压缩、加密UTF8 正确的编码会话层 Session实现两个主机原创 2021-04-14 22:15:13 · 712 阅读 · 0 评论 -
7⽂件查找和压缩问题和练习
在linux中查找当前⽬录111.txt⽂件命令是____。Linux系统中,删除/data/files⽬录下1周前修改过且⼤于10MB的⽂件?怎么查找/test路径下⽤户jorm的以abc开头的⽂件:____。查看当前⽬录下30天以前.log结尾. ⼤于1G的⽂件,并把它移动到/tmp下?使⽤tar命令打包备份/etc⽬录?找出/data⽬录下所有的空⽬录,并移动到/tmp⽬录下?如何在/home⽬录找到⼤于1G的⽂件并删除?列出常见打包⼯具并写出常⽤解压参数?如何显⽰某个⽬录下的所有⽬.原创 2021-04-10 16:55:27 · 190 阅读 · 0 评论 -
Linux利用df和sed取分区利用率
df 查看硬盘使用情况dfsed 查找硬盘使用率的数字sed -rn '/^\/dev\/sd/s#.* ([0-9]+)%.*#\1#p'-r 支持扩展的正则表达式-n 停止全部自动打印,如果不加,则把全部内容都打印出来^/dev/sd/ 查找以 /dev/sd/开头的行s# # # 摆出查找替换的姿势.* ([0-9]+)%.* 找到以任意长度字符开通中间是空格后面接一个以上数字和一个百分号的部分将([0-9]+)一个以上部分用小括号进行分组\1 替换为前边小括号分组的部分,或原创 2021-04-09 13:34:08 · 603 阅读 · 0 评论 -
6文本处理和正则表达式
使用哪个 Linux 命令可以在终端中显示 /etc/passwd 文件的后4行内容?tail -n4 /etc/passwd如何将 /etc/passwd 文件的第 5 行到第 7 行的信息保存的 /root/user.txt 文件中?sed -n '5,7p' /etc/passwd | tee /root/user.txtlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown.原创 2021-04-07 00:14:27 · 220 阅读 · 0 评论 -
Linux利用grep配合正则表达式显示非空注释行内容
显示 /etc/inittab 文件中以 ‘#’ 号后跟着一个或多个空白字符开头并且之后是任意个非空白字符的行查看/etc/inittab的内容[04:16:42 rooter@C8-3-55 ~]#cat /etc/inittab# inittab is no longer used.## ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.## Ctrl-Alt-Delete is handled by /usr/l.原创 2021-04-06 16:48:51 · 1511 阅读 · 0 评论