- 博客(110)
- 收藏
- 关注
原创 【golang】切片
基本概念切片看上去是一个可变长度的数组,实际上底层是一个结构体。结构体包含三个基本元素:1,指针(*[]type),指向一个连续的内存空间,也就是一个数组; 2,元素个数(len),可以访问的元素的个数;3,指针指向的数组的空间的长度(cap)其中,len个元素会被初始化为默认零值,未初始化的元素不可访问。切片结构体详解如下图:代码func TestSliceInit(t *testing.T) { // var s0 []int //如果声明时不赋值,此时切片中...
2022-05-06 17:44:12
780
原创 脚本内使用目录正则出现的问题
问题描述:在脚本中使用目录通配 `{a,b}`,当执行脚本时,并不能获取到通配结果。但是直接在命令行执行,是没有问题的。问题分析:当脚本执行时,变量带上了单引号,导致执行 ls 命令时,无法识别通配不优雅的解决:没有找到完美的方法,希望能得到大佬帮助。目前使用了不是很优雅的方式规避了该问题。...
2021-09-24 10:16:37
245
原创 SRE认知之监控概述
监控监控理念当为监控系统和警报系统增加新的规则时,我们应该关注一下问题: 该规则是否能够检测到一个目前检测不到的、紧急的、有操作性的,并且即将发生或者已经发生的用户可见故障? 是否可以忽略该警报?什么情况可能会导致用户忽略该警报,如何避免? 这条警报是否确实显示了用户正在收到影响?是否存在用户没有收到影响也会触发这条规则?例如测试环境和系统维护状态下的警报是否应该被过滤掉? 收到警报后,是否要进行某个操作?是否需要立即执行该操作,还是可以等到第二天早上再进行?该操
2021-07-05 16:57:59
642
原创 /etc/hosts 映射name使用 tab 补全功能
/etc/hosts 映射name使用 tab 补全功能通过中控机登陆对端服务器时,通过ssh ip方式有一个明显弊端:ip很难被记住,当ip数量庞大时,这是一个很麻烦的事情,我们可以通过/etc/hosts映射(ip HostName)来规避这个问题。同时,需要在登陆时,键入HostName 可以使用tab键补齐。下面内容详细的解决/etc/hosts 中映射名使用 tab 补齐问题。编辑如下文件:/var/local/complete.sh#!/bin/bash### Comple.
2021-04-12 14:16:42
303
原创 CDN的基本概念和产生背景
内容分发网络技术发展与基本原理1.1 CDN的基本概念和产生背景WWW(万维网)的出现,使互联网发生了质的变化和急速发展,使其从单纯的数据通信网络发展成为在全世界范围内共享和发送信息的分布式网络。广义的互联网,由两层组成:以TCP/IP为代表的网络层和以网为网为代表的应用层。国际标准化组织定义了网络7层参考模型,称之为开放系统互连模型(OSI),该模型对计算机网络标准化程度的发展和网络...
2018-10-01 01:01:57
2063
原创 A Docker of LAMP & Wordpress扩展1
A Docker of LAMP & Wordpress扩展1架构逻辑一个nginx调度器,提供缓存、反响代理功能,一方面提升响应速度,另一方面提供负载能力,都是为了减轻服务器压力,提升用户体验感。两个后端服务器,提供httpd功能和php解析功能。两个httpd的默认发布目录都挂在到一个nfs服务器共享目录上。一个nfs服务器,同时提供一个mysql(应该拆分),保证ph...
2018-09-08 01:52:48
944
原创 查询一个表中如age第N大的段数据
查询一个表中如age第N大的段数据测试表:MariaDB [jinyong]> show tables;+-------------------+| Tables_in_jinyong |+-------------------+| user |+-------------------+1 row in set (0.01 sec)Mar...
2018-09-04 00:36:54
714
原创 QUIC概述
QUIC概述感谢罗成罗成。Quic 全称 quick udp internet connection,即:快速UDP互联网链接。是由Google提出的基于UDP协议的多路并发传输协议。QUIC诞生背景从上世纪90年代互联网开始兴起,大部分互联网流量传输都使用经典的一些协议:使用IPV4进行路由、使用TCP进行链接层的流量控制、使用SSL/TLS保证传输安全、使用DNS进行域名解析、...
2018-09-02 19:55:16
5420
原创 Linux下查看系统负载部分命令
系统负载命令关于查看系统负载,首先得明白什么是系统,自上而下系统层次是什么样子的?查询的时候才能有的放矢。查看系统负载都要看什么?下面仅仅是部分介绍 load averages:系统平均负载 cpu usage:cpu利用率 kernnel errors:内核错误 cpu balance:cpu均摊情况 precess usage:进程使用情况...
2018-08-25 16:55:52
5150
原创 A docker of LAMP & WordPress优化——缓存
A docker of LAMP & WordPress优化项目描述:项目描述:Docker基于LXC实现了把lamp+wordpress架构封装到一个完整的文件系统中,docker提供了所需的一切代码,运行环境等。由于docker使用独立于主机的文件系统,可以确保架构在不同的主机环境中仍然保持运行环境不变,这样为整个架构服务的迁移提供了极大的便捷性。WordPress是使用P...
2018-08-25 03:42:08
593
原创 nginx配置文件简单概述
nginx配置文件概述更多配置点击这里nginx配置文件分为四大模块: 全局变量模块 event事件模块 http模块 mail邮件模块 event模块events { worker_connections 2000; # use [ kqueue | rtsig | epoll | /dev/poll | select | pol...
2018-08-24 15:45:57
252
原创 nginx配置缓存的优化——有无缓存对服务器的影响
nginx配置缓存的优化前提:nginx前端服务器:172.25.254.34后端lamp平台服务器:172.25.254.11nginx反响代理修改配置nginx主配置文件,使得172.25.254.11成为解析php动态脚本的app server,并分别尝试添加缓存和去掉缓存后对服务器性能的影响。主要用到的主配置文件信息(172.25.254.34):http {...
2018-08-22 13:25:25
2979
原创 从499状态码,到如何使用shell脚本找一个文件中特定的字符串
记录一次面试引发的一个小问题一次面试,面试官问:你知道http状态码中499是什么吗?一脸懵逼。面试官很客气的说可以去nginx源码里面找到。面试官都这么说了,再去百度找,就太对不起自己这个准运维人员的身份了。好了话不多说,去源码找吧。进了源码我就二脸懵逼了。[root@localhost src]# pwd/linux/nginx/nginx-1.12.2/src[root@l...
2018-08-21 23:51:47
327
原创 关于httpd服务器中大量的time_wait状态
关于httpd服务器中大量的time_wait状态前提:使用客户端(172.25.254.11)访问(ab压力测试)服务器端(172.25.254.200),在服务器上发现了大量的TIME_WAIT状态。客户端ab测试:[root@localhost linux]# ab -n 10000 -c 100 http://172.25.254.200/index.html服务器端...
2018-08-18 13:13:57
2250
1
原创 使用C语言实现ll命令
使用C语言实现ll命令先来看看执行ll命令后有什么:[root@localhost day16]# lltotal 44drwxrwxrwx. 3 root root 4096 May 5 11:38 after-rwxr-xr-x 1 root root 13072 Aug 16 15:45 a.outdrwxrwxrwx. 3 root root 4096 May ...
2018-08-16 21:14:55
5184
3
原创 httpd虚拟主机服务简单学习
httpd虚拟主机为什么要使用虚拟主机?虚拟主机指的是在单一的物理主机上运行多个"网站".虚拟主机主要有三种构建方式,通过虚拟主机可以让不同的站点运行在同一个服务器上而不会被用户明显的感知到.Apache是第一个支持基于IP的虚拟主机服务虚拟主机三种方式: 基于IP地址 基于端口号 基于主机名 很重要的一点:如果开启虚拟主机!中心主机应该关闭!具体方法...
2018-08-14 13:45:43
428
原创 awk——awk基础介绍
awkawk基础awk简介awk是被设计用于文本处理,并常被用作数据提取和报告工具的解释性程序设计语言。awk的作者这样描述:awk是一个方便的且富有表现力的程序设计语言,它可以应用于各种各样的计算机和数据处理任务。awk是数据驱动的,即:描述要处理的数据以及找到数据后要做什么。和sed类似,awk的基本功能也是搜索文件中包含某些模式的行。当某行匹配到一个模式时,awk就再该行...
2018-08-02 04:20:33
491
原创 sed简单学习
SEDsed编辑器基础sed是用来解析和转换文本的工具,是简洁的程序设计语言。来自贝尔实验室。sed简介sed是非交互式的面向数据流的编辑器,提供了交互式文本编辑器的自然扩展功能。有助于编写简单的shell脚本,如:替换文本、删除某行、差入新文本等。sed特点: 自动化地编辑一个或多个文件 简化在多个文件中执行相同操作的任务 编写转换程序 模式空间...
2018-08-01 01:55:56
326
原创 Linux中的管道和过滤器
管道和过滤器管道Shell可以将两个或多个程序连接到一起,以使一个程序的输出变成另一个程序的输入,这种方式连接的两个或者多个程序就形成了管道。管道通常用于执行一些复杂的数据处理操作。这些命令之间使用控制操作符(管道符)"|"连接。管道的语法格式:command1 | command2command1 | command2 [ commandN... ]操作符"|"与">"的区别">"...
2018-07-15 16:10:40
4990
1
原创 nginx启动脚本浅析
nginx启动脚本浅析编写nginx脚本整理一下逻辑思路,要编写一个nginx启动脚本,都需要什么?nginx服务的操作需要nginx服务的支持,即服务器上必须编译安装了nginx服务nginx启动脚本说白了就是方便对nginx服务启动、关闭、状态查询、热修改的一个脚本文件依赖的几个文件nginx脚本依赖于nginx的二进制系统程序文件:/usr/sbin/nginx(这个在源码编译的时候自定义位...
2018-07-14 02:12:39
3112
1
原创 关于crontab自动执行shell脚本出现的不能执行命令问题
上一篇博客写了一个shell脚本,用来测试计算机硬件信息、cpu、内存等信息。今天把它扔进crontab里面想定期执行,并保存数据。结果出现了问题。。。先看shell脚本:#!/bin/bash#定义变量NOW,值为当前日期。格式:yyyymmddNOW=`date +%Y-%m-%d-%H:%M:%S`#定义变量OUTPUTOUTPUT=/mnt/log/$NOW.txtex...
2018-07-12 18:53:27
9074
原创 Shell重定向
Shell重定向输入和输出在Linux中一切皆文件,即使是硬件,在Linux系统中同样的表示为文件。有三个标准的POSIX字符,被成为文件描述符。每个Linux命令都会使用到0、1、2三个文件描述符与用户或其他系统程序进行交互。0——标准输入——键盘:从文件(默认是键盘)读取输入1——标准输出——屏幕:发送数据到文件(默认为屏幕)2——标准错误——屏幕:发送所有错误信息到一个文件(默认为屏幕)标准...
2018-07-11 02:03:16
729
原创 脚本输入处理——获得用户输入
脚本输入处理获得用户输入在一个交互式的Shell脚本中,一般使用read命令来获取用户输入。基本的读取read命令比较常用的语法格式:read [-p prompt] [var1 var2...]-p选项用于在尝试读取任何输入之前,显示提示信息(prompt)的内容到标准输出。一般情况用来提示用户输入哪些输入信息。read命令会每次从标准输入读取一行的内容(-u可以指定文件描述符),将第一个单词...
2018-07-09 16:23:07
3604
原创 脚本输入处理——选项处理
脚本输入处理选项处理如果一个脚本有多个命令行参数,调用这个脚本时所指定的命令行参数顺序不固定,那么即是参数的个数正确,脚本也不一定可以正常运行。如:一个脚本(process.sh),可以接受三个参数:配置文件、输入数据的文件和脚本的数据文件(default.conf、input.txt、output.txt)。此脚本读取配置文件内容,处理input.txt文件,然后将输出写入到output.txt...
2018-07-09 16:21:31
1518
原创 脚本输入处理——参数处理
脚本输入处理参数处理通常情况下,为了让Shell脚本更灵活、应用更广泛、具备多种不同行为,会在编写脚本时接收一些命令行参数,通过命令行参数指定脚本中变量的值使得脚本执行不同的操作。case语句处理命令行参数当脚本只接收一个命令行参数,并且根据参数的不同采取不同行为时,通常使用case语句来处理。编写nginx启动脚本编写脚本文件nginx.sh。(前提时源码安装了nginx服务,源码安装nginx...
2018-07-08 23:35:43
1046
原创 Bash正则表达式比较操作符
Bash正则表达式比较操作符从Bash3.0开始,Bash有了内部的正则表达式比较操作符,使用"=~"表示。大部分使用grep或者sed命令的正则表达式编写脚本的方法可以由"=~"操作符的Bash表达式处理。如果一个表达式左边的变量匹配到右边的正则表达式,则返回状态码0,否则返回1。如:检查一个数是否为十进制[root@rs1 test2]# cat digit.sh #!/bin/bash...
2018-07-07 02:58:18
4486
原创 我就是认真:shell函数学习
shell函数函数的定义当需要重复使用一个脚本中的功能,或者脚本达到一定程度时,使用函数就比较方便。定义函数语法:#函数名function_name() { #函数体,在函数中执行的命令行 commands... #参数返回,return可有可无,如果没有,则返回函数最后一条命令运行结果作为返回值;如果有,则return后跟数值n(0~255) [return ...
2018-07-07 00:49:40
194
原创 Shell中select循环语句实例
select循环语句实例Bash提供select循环,语法如下:select VAR in LISTdo command1 command2 ... commandNdoneselect循环语句由如下特点:select语句使用Bash内部变量PS3的值作为它的提示符信息。打印到屏幕上的列表LIST中的每一项都会加上一个数字编号。当用户输入的数字和某一个数字编号一致时,列表中响应的项即被赋予...
2018-07-06 04:07:42
1299
原创 Bash中的位置参数和特殊参数
Bash中的位置参数和特殊参数位置参数Bash中的位置参数是由除0意外的一个或多个数字表示的参数。位置参数是当Shell或Shell的函数被引用时由Shell或Shell函数的参数赋值,并且可以使用Bash的内部命令set来重新赋值。位置参数N可以被引用为$N,当N>=10时,需要用{}括起来。如:[root@rs1 test]# set 1 2 3 four five six 7 8 9 ...
2018-07-06 02:12:00
2969
原创 Mysql基准测试
Mysql基准测试为什么要基准测试基准测试是唯一方便有效的、可以学习系统在给丁的工作负载下会发生什么的方法。一个完善的基准测试可以:验证基于系统的一些假设,确认该假设是否符合实际情况重现一些异常行为,有备无患的得到解决方法获取当前系统性能和运行情况,为系统优化提供先决条件模拟比当前系统更高的负载,找到系统的扩展瓶颈规划未来业务增长,包括硬件、网络容量、服务类型、及其他相关资源测试应用使用可变环境的...
2018-07-05 15:35:24
1362
原创 Linux处理求两个文件交集、差集
两个文件交集、差集两个文件,如:[root@localhost grep]# cat 1.txtabcadaabbaa[root@localhost grep]# cat 2/txtabcbbfsx分析,文件1.txt和文件2.txt:1.txt - 2.txt(a) d aa (aa)2.txt - 1.txtfsx1.txt 交 2.txta b c bbcomm...
2018-06-28 08:32:15
1832
原创 配置nginx反向代理,实现动态静态页面分离
配置nginx反向代理,实现动态静态页面分离实例:nginx代理服务器(缓存服务器):172.25.254.19php处理app:172.25.254.20 (可以添加多台php app server,配置相同)静态页面处理:172.25.254.18 (可以添加多台静态页面sercver,配置相同)配置php app下载php-5.6.35.tar.bz2安装包,进行源码编译[root@php ...
2018-06-19 01:12:29
5619
原创 我就是认真:nginx总结
关于web的基础概念http服务是一个标准的C/S架构服务,客户端请求,服务端响应。一个完整的http架构包括:Client:User Agent、Browser、AB命令等压力测试工具(http request)Server:Web Server(http response)Web Object:web resource(URL)css javascript images htmlASCII:h...
2018-06-18 00:02:27
1199
原创 我就是认真:nginx作为反向代理
nginx反向代理反向代理:工作在服务器前端,如nginx正向代理:工作在客户端前端,如vpnnginx反向代理nginx可以作为七层协议上的负载均衡主机,即在应用层上的负载均衡主机,七层负载是面向服务的,报文已经被转发至用户空间,这是不同于四层负载的地方(四层负载在内核(TCP协议栈)就被转发给后台RS)。proxy模块Nginx通过proxy模块实现反向代理功能。在作为web反向代理服务器时,...
2018-06-17 04:15:45
9488
原创 我就是认真:IO模型学习
IO模型单进程:阻塞多进程:每个进程响应一个请求,缺陷:进程切换次数多,切换本身消耗大量的资源。每个进程地址空间独立,很多资源被加载到用户内存空间会有重复,内存利用效率底。线程:每个线程响应一个请求。线程也需要切换,切换量级比较轻。线程可以共享同一个进程的资源(提高内存使用效率)。但是会有资源争用问题。线程实质上是进程内部的子运行单位线程在linux上被称为轻量级进程(lwp),linux不支持源...
2018-06-16 13:53:54
334
原创 我就是认真:nginx作为web服务器
Nginx模型nginx官网,是一个俄罗斯人在2002年开始开发的,第一版在2004年问世。nginx不像传统的web服务器,一个线程响应一个请求,使用事件驱动(异步IO)架构,所以接受的连接数特别大。从而解决了c10k问题(支持三五万并发)。nginx定义:开源的,高性能、轻量级的web服务器反向代理服务器:http协议、mail协议作为web服务器,nginx的特点:高性能稳定性丰富特性简单的...
2018-06-15 15:45:31
4697
原创 Linux运维开发工程师面试问题,持续更新中。。。
Linux面试数据存储软硬连接自动挂载如何实现自动挂载,fastab 各字段的意义:编辑/etc/fstab文件。每一行代表一个挂载指令,在开机时由系统自动挂载fstab各字段的意义:第一列:要挂载的设备,是绝对路径第二列:挂载点,即挂载到哪个目录下,也是绝对路径第三列:文件系统类型;常见的linux文件系统类型如:ext系列、iso9660光驱、ntfs、swap等第四列:挂载选项...
2018-06-07 06:15:37
9898
原创 TCP三次握手和四次挥手
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:几个关键的值:SYN:同步序列编号(Synchronize Sequence Numbers),SYN=1只在三次握手中出现,表示请求连接阶段。ACK: (Acknowledgement)即是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。ack:这是会话次数标识,记录着双方通...
2018-06-07 00:27:21
316
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人