03 2020 档案
摘要:原文标题:迈向5G之路,颠覆性的5G系统架构? 本文部分图片,资料摘自《迈向5G C-RAN:需求、架构与挑战》 突如一夜春风来,随着Polar码与LDPC码作为5G编码候选方案,通信圈里也掀起了对于5G编码技术讨论的热潮。管窥一斑,既然一个小小的编码方案都能将通信圈的热情点燃到了最高点,那么5G的
阅读全文
摘要:1、移动边缘计算的部署 移动边缘计算改变了4G系统中网络和业务分离的状态,通过对传统无线网络增加MEC平台网元,将业务平台(包含内容、服务、应用)下沉到移动网络边缘,为移动用户提供计算和数据存储服务。MEC平台的具体部署方式主要分为两类,包括宏基站场景的部署以及小小区基站场景的部署。 (1)宏基站场
阅读全文
摘要:1、MEC的优势 MEC 运行于网络边缘,逻辑上并不依赖于网络的其他部分,这点对于安全性要求较高的应用来说非常重要。另外,MEC 服务器通常具有较高的计算能力,因此特别适合于分析处理大量数据。同时,由于 MEC 距离用户或信息源在地理上非常邻近,使得网络响应用户请求的时延大大减小,也降低了传输网和核
阅读全文
摘要:1、1G~5G发展变革 1G:第一代移动通信系统出现在蜂窝系统理论提出之后,主要满足人们无线移动通话的需求。 2G:第二代蜂窝移动通信系统出现在数字蜂窝技术的发展与成熟之后,为了进一步提高通话的质量,推出了数字化语音业务的第二代蜂窝移动通信系统。 3G:20世纪末,IP和互联网技术的快速发展改变了人
阅读全文
摘要:摘要 物联网技术的快速发展和云服务的推动使得云计算模型已经不能很好的解决现在的问题,于是,这里给出一种新型的计算模型,边缘计算。边缘计算指的是在网络的边缘来处理数据,这样能够减少请求响应时间、提升电池续航能力、减少网络带宽同时保证数据的安全性和私密性。这篇文章会通过一些案例来介绍边缘计算的相关概念,
阅读全文
摘要:x.509所包含的证书字段 字段 描述 版本 当前证书的X.509所包含的版本号 序列号 证书颁发机构(CA)生成的唯一序列号 签名算法 签名使用的签名算法,如SHA1withRSA 证书颁布发者 发布并对证书进行签名的组织名称 有效期 此证书有效的开始时间和结束时间 对象名称 证书所代表的实体,比
阅读全文
摘要:1.drbd简介 drbd是通过网络(tcp连接)在不同服务器之间实现基于block级别进行数据实时同步的软件。类似于inotify+rsync,只不过inotify+rsync是按文件级别来同步的,而drbd是工作在文件系统下层的,实现的是block同步和拷贝,效率相对较高。且inotify+rs
阅读全文
摘要:Web服务器会做些什么 (1) 建立连接——接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。 (2) 接收请求——从网络中读取一条HTTP 请求报文。(3) 处理请求——对请求报文进行解释,并采取行动。(4) 访问资源——访问报文中指定的资源。(5) 构建响应——创建带有正确首部
阅读全文
摘要:4.1 TCP连接 4.1.2 TCP流是分段的、由IP分组传送 TCP 的数据是通过名为 IP 分组(或 IP 数据报)的小数据块来发送的 每个 TCP 段都是由 IP 分组承载,从一个 IP 地址发送到另一个 IP 地址的。每个 IP分组中都包括: • 一个 IP 分组首部(通常为 20 字节)
阅读全文
摘要:• 报文是如何流动的;• HTTP 报文的三个组成部分(起始行、首部和实体的主体部分);• 请求和响应报文之间的区别;• 请求报文支持的各种功能(方法);• 和响应报文一起返回的各种状态码;• 各种各样的 HTTP 首部都是用来做什么的。 3.1 报文流 3.1.1 报文流入源端服务器HTTP 使用
阅读全文
摘要:2.1URL 分以下三部分 • URL 的第一部分(http)是 URL 方案(scheme)。方案可以告知 Web 客户端怎样访问资源。在这个例子中,URL 说明要使用HTTP 协议。• URL 的第二部分(www.joes-hardware.com)指的是服务器的位置。这部分告知Web 客户端资
阅读全文
摘要:HTTP 使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,它也能够确保数据在传输的过程中不会被损坏或产生混乱。这样,用户在访问信息时就不用 担心其完整性了。 1.1 Web客户端和服务器 浏 览 一 个 页 面 时( 比 如 http://www.oreilly.com/index.htm
阅读全文
摘要:SOA(面向服务的架构),服务消费者通过服务名称,在众多服务中找到要调用的服务的地址到列表,称为服务的路由。 在请求到来时,为了将请求均衡地分配到后端服务器,负载均衡程序将从服务对应的地址列表中,通过相应的负载均衡算法和规则,选取一台服务器进行访问,这个过程称为服务的负载均衡, 当服务规模较小时,可
阅读全文
摘要:一、系统调优概述 系统的运行状况: CPU -> MEM -> DISK*-> NETWORK -> 应用程序调优 分析是否有瓶颈(依据当前应用需求) 调优(把错误的调正确) 性能优化就是找到系统处理中的瓶颈以及去除这些的过程。性能优化其实是对OS 各子系统达到一种平衡的定义,这些子系统包括: CP
阅读全文
摘要:通过yum命令只下载rpm包不安装 方法一:yumdownloader 如果只想通过 yum 下载软件的软件包,但是不需要进行安装的话,可以使用 yumdownloader 命令; yumdownloader 命令在软件包 yum-utils 里面。 [root@localhost ~]# yum
阅读全文
摘要:简介 在centos5中生成和管理用户空间中的进程以及完成系统的初始化使用的是init,并且是依次启动。在centos6中则是使用的upstart,在一定程度上实现了并行启动,但是仍然存在依赖关系,到了centos7中开始使用systemd,真正的实现并行启动、延时按需启动。 systemd的特性
阅读全文
摘要:1.nginx静态文件缓存 如果要熟练使用nginx来实现文件的缓存,那下面的几个指令你必须要牢记于心 作用:设置缓存数据的相关信息 Syntax: proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name
阅读全文
摘要:在Linux下可以使用blkid命令对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。 语法 blkid -L | -U blkid [-c ] [-ghl
阅读全文
摘要:WEB正确日志格式分析 域 内容 含义 $1 192.168.1.5 远程主机IP %h $2 - 占位符 %l $3 - 占位符 %u $4 21/Mar/2020:16:34:53 服务器完成请求处理时间,日/月/年:小时:分钟:秒:时区 %t $5 +0800 时区 $6 GET 方法 $7
阅读全文
摘要:nmap典型用法 [root@node01 ~]# nmap 192.168.1.220 Starting Nmap 6.40 ( http://nmap.org ) at 2020-03-21 13:08 CST Nmap scan report for 192.168.1.220 Host is
阅读全文
摘要:1. load average 定义 linux系统中的Load对当前CPU工作量的度量。简单的说是进程队列的长度。 Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。 通过系统命令"w"查看当前load average情况 [root@node01 ~]#
阅读全文
摘要:阅读目录 uptime cat /proc/loadavg 何为系统负载呢? 进阶参考 uptime 另外还有一个参数 -V(大写),是用来查询版本的 [root@node01 ~]# uptime -V uptime from procps-ng 3.3.10 procps是一个实用程序包,主要包
阅读全文
摘要:mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具。报告CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。 语法: mpstat [-P {|ALL}] [i
阅读全文
摘要:首先我们使用dstat命令来查看下我们的CPU情况,他能够实时的输出我们的信息, dstat 2 10(每2秒采集一次共采集10次)安装 [root@node01 ~]# yum -y install dstat [root@node01 ~]# dstat 2 10 You did not sel
阅读全文
摘要:Linux环境下安装MongoDB 说明:这里使用软件版本为:mongodb-linux-x86_64-rhel62-3.2.8.tgz 官网下载 本文所使用的安装包下载 提取码:zj43 具体步骤如下: 1)上传软件包到服务器并进行解压 [root@docker-02 ~]# tar xvzf m
阅读全文
摘要:查看网卡信息 查看当前系统所连接的所有网卡(包括已经驱动了和没有驱动) [root@docker-02 ~]# lspci | grep -i eth 02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Co
阅读全文
摘要:开放虚拟主机文件 修改主配置文件 解开注释,使用虚拟主机配置文件。 vim /usr/local/apache2/conf/httpd.conf 1 Include conf/extra/httpd-vhosts.conf 虚拟主机参数详解 <VirtualHost >:指定虚拟主机 Documen
阅读全文
摘要:Apache 访问控制 Apache访问控制 版本:Apche 2.3 前 通过设置访问控制,可对网站进行权限管理,提高安全性。 参数介绍 <Directory />: 行为对根目录的限制 Options:允许使用控制目录特征的指令.他们包括Options 和XBitHack 参数: 1、All:准
阅读全文
摘要:Apache 域名跳转配置 域名跳转 就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 。 参数格式 参数: Apache mod_rewrite 规则重写 1) R[=code](force redirect) 强制外部重定
阅读全文
摘要:%% 百分号(Apache2.0.44或更高的版本) %a 远端IP地址 %A 本机IP地址 %B 除HTTP头以外传送的字节数 %b 以CLF格式显示的除HTTP头以外传送的字节数,也就是当没有字节传送时显示’-‘而不是0。 %{Foobar}C 在请求中传送给服务端的cookieFoobar的内
阅读全文
摘要:Apache 静态缓存配置 静态文件缓存 静态缓存在客户端下进行缓存,可以设置缓存文件类型与缓存时间,提升客户端访问站点速度。 语法格式 ExpiresByType type/encoding “<base> [plus] <num><type>” 配置静态缓存 1、模块解注释 vim /apach
阅读全文
摘要:Apache 防盗链配置 盗链 网站内有许多的图片地址,或一些我们可以用到的资源,在这种情况下,我可以通过赋值其他图片链接地址,到我自己的平台上,这样相当于盗取了一张图片的链接,那么盗链会有什么危害呢? 当我们盗取一张图片链接放入我们自己的平台时,我们每次访问平台也会连带 链接图片一起访问,要知道我
阅读全文
摘要:浏览器访问限制配置 user_agent收入的浏览器中,我们通过百度,谷歌很容易就可以查到相关的一些资料,方便了我们对知识的查找,但在某些特定情况下,我们并不希望有人可以通过某写搜索引擎直接访问到我们的网页。举例如果我开放了一个公网的服务,这个网页带宽很小,只能容纳几个人访问,所有在这种条件下我们并
阅读全文
摘要:1、查看当前MPM工作模式 /usr/local/apache2/bin/apachectl -V Server version: Apache/2.4.27 (Unix) Server built: Dec 24 2017 07:11:28 Server's Module Magic Number
阅读全文
摘要:Apache 工作模式详解 Apache 2.X 支持插入式并行处理模块,称为多路处理模块(MPM)。在编译apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的MPM可供选择,它们会影响到apache的速度和可伸缩性。 Apache启动会通过指定IP监听PID端口 会开通过主进
阅读全文
摘要:LoadModule auth_basic_module modules/mod_auth_basic.so #基本认证模块 LoadModule auth_digest_module modules/mod_auth_digest.so #使用MD5的用户验证模块 LoadModule authn
阅读全文
摘要:参数说明 1、Global Environment 全局环境配置,决定Apache服务器的全局参数3、Virtual Hosts—虚拟主机,虚拟主机不能与Main Server主服务器共存,当启用了虚拟主机之后,Main Server就不能使用了2、Main server configuration
阅读全文
摘要:1、关闭DNS和名字解析 * HostnameLookups on | off | double 2、关闭客户端主机名解析 Apache 1.3之前HostnameLookups默认是打开的。这样客户端在访问服务器时,服务器将要解析客户端的主机名,并将其保存在日志文件中。对客户端进行域名反向解析会大
阅读全文
摘要:# 查看编译的模块文件httpd -lapachectl -l # 查看apache版本信息,操作系统位数,apr版本 httpd -Vapachectl -V # 查看编译过的模块,并查看哪一个是 static静态编译,哪一些是shared动态加载的。 httpd -Mapachectl -M #
阅读全文
摘要:Apache 部署HTTPS 系统:Linux Centos 7.4 x64 应用:Apache 2.4.6 需要安装:mod_ssl 注:确认开启 Include conf/extra/httpd-ssl.conf 模块。 配置HTTPS 1、编辑SSL配置文件 vim /etc/httpd/co
阅读全文
摘要:简介 linux 内存释放通过如下命令,将cache与buff根据环境进行释放操作,避免重启释放内存。 操作 1、将内存中buff数据保存磁盘 sync 2、清理cache与buff缓存 echo 3 > /proc/sys/vm/drop_caches
阅读全文
摘要:TCP并发请求溺出 调优:系统开启某个监听端口后,当多个TCP请求连接监听端后,会把多个请求交给backlog的默认监听队列由socket server一并处理,backlog有自己的队列长度默认128,当机器处理能力较慢且并发请求值较高时就要考虑对backlog队列进行调优。 注:backlog就
阅读全文
摘要:Linux系统TCP最大连接数 Linux系统可接连接到最大的TCP连接数,高并发情况下可进行扩展加大,最大为65536。 限制最大TCP连接数 修改文件:/etc/sysctl.conf 生效命令:sysctl -p /etc/sysctl.conf # 最大孤儿套接字(orphan socket
阅读全文
摘要:系统TCP连接内存大小限制 TCP的每一个连接请求,读写都需要占用系统内存资源,可根据系统配置,对TCP连接数,内存大小,限制调优。 查看系统内存资源 记录内存 详情:cat /proc/meminfo 命令:free -m TCP连接内存限制 内核调优 修改文件:/etc/sysctl.conf
阅读全文
摘要:Time_wait状态 表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可回到CLOSED可用状态了。 如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。 Time_wait作用
阅读全文
摘要:Linux系统随机端口 默认Linux系统开启的随机端口范围为 32768 ~ 65535。客户端连接服务监听端口需要使用到随机端口连接。 Linux系统随机端口调优 1、添加内核配置参数:/etc/sysctl.conf net.ipv4.ip_local_port_range = 1024 65
阅读全文
摘要:Netfilter介绍 linux内核中的netfilter是一款强大的基于状态的防火墙,具有连接跟踪(conntrack)的实现。conntrack是netfilter的核心,许多增强的功能,例如,地址转换(NAT),基于内容的业务识别(l7, layer-7 module)都是基于连接跟踪。 n
阅读全文
摘要:Linux 文件时间属性介绍 atime:(access time)显示的是文件中的数据最后被访问的时间,比如系统的进程直接使用或通过一些命令和脚本间接使用。(执行一些可执行文件或脚本) mtime: (modify time)显示的是文件内容被修改的最后时间,比如用vi编辑时就会被改变。(也就是B
阅读全文
摘要:Linux 线程栈介绍 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等;和堆相比,栈通常很小。 Linux 查询线程栈 1、查看默认的线程栈大小,单位是字节(KBytes) [root@master ~]# ulimit -s 819
阅读全文
摘要:系统最大线程数说明 系统可开启的最大线程数,可根据系统本身负载配置进行调优。 查看系统最大线程数 1、查看系统开启的最大线程数。 [root@node01 ~]# ulimit -u 3818 2、查系统支持的最大线程数,一般会很大,相当于理论值。 [root@node01 ~]# cat /pro
阅读全文
摘要:系统级开启文件句柄 max-file系统级别的能够打开的文件句柄的数量,Centos7默认是794168。 Max-file 与 ulimit -n 的区别 max-file 表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户或进程的。 ulimit -n 控制进程级别能够打
阅读全文
摘要:开启最大文件数 系统可以开启的最大文件描述符(可同时开启最多的文件数),最大开启65535,可根据需求进行调优。 查看系统当前可开启最大文件描述符数 [root@node01 ~]# ulimit -n 1024 [root@node01 ~]# echo '* - nofile 65535' >>
阅读全文
摘要:8086汇编 Loop 指令 功能:实现循环(计数型循环) 指令的格式 loop 标号 CPU 执行loop指令时要进行的操作: (cx)=(cx)-1; 判断cx中的值不为零则转至标号处执行程序如果为零则向下执行。 用cx和loop 指令相配合实现循环功能的三个要点: (1)在cx中存放循环次数;
阅读全文
摘要:8086汇编 中断 中断:CPU不再接着(刚执行完的指令)向下执行,而是转去处理中断信息。 内中断:由CPU内部发生的事件而引起的中断 外中断:由外部设备发生的事件引起的中断 8086的内中断 CPU内部产生的中断 除法错误,比如:执行div指令产生的除法溢出 单步执行 执行into指令 执行int
阅读全文
摘要:8086汇编 cmp 指令 cmp 是比较指令,功能相当于减法指令,只是不保存结果。cmp 指令执行后,将对标志寄存器产生影响。 格式:cmp 操作对象1,操作对象2功能:计算操作对象1–操作对象2 原理:通过做减法运算影响标志寄存器,标志寄存器的相关位的取值,体现比较的结果。 cmp 指令说明 一
阅读全文
摘要:8086汇编 rep 指令 rep指令常和串传送指令搭配使用功能:根据cx的值,重复执行后面的指令 串传送指令1: movsb 功能:(以字节为单位传送) (1) ((es)×16 + (di)) = ((ds) ×16 + (si)) (2) 如果DF = 0则: (si) = (si) + 1
阅读全文
摘要:8086汇编 call 指令 字面意思:调用子程序实质:流程转移指令,它们都修改IP,或同时修改CS和IPcall指令实现转移的方法和 jmp 指令的原理相似格式:call 标号 返回指令:ret、retf call 指令说明 CPU执行call指令,进行两步操作: (1)将当前的 IP 或 CS和
阅读全文
摘要:8086汇编 jcxz 指令 指令格式:jcxz 标号 功能:如果(cx)=0,则转移到标号处执行当(cx)≠0时,什么也不做(程序向下执行) 当(cx)=0时,(IP)=(IP)+8位位移) 8位位移=“标号”处的地址-jcxz指令后的第一个字节的地址; 8位位移的范围为-128~127,用补码表
阅读全文
摘要:8086汇编 Loop 指令 功能:实现循环(计数型循环) 指令的格式 loop 标号 CPU 执行loop指令时要进行的操作: (cx)=(cx)-1; 判断cx中的值不为零则转至标号处执行程序如果为零则向下执行。 用cx和loop 指令相配合实现循环功能的三个要点: (1)在cx中存放循环次数;
阅读全文
摘要:8086 汇编 jmp 指令 功能:修改CS、IP的指令、可以通过改变CS、IP中的内容,来控制CPU要执行的目标指令。 背景:一般情况下指令是顺序地逐条执行的,而在实际中,常需要改变程序的执行流程。转移指令, 可以控制CPU执行内存中某处代码的指令 可以修改IP,或同时修改CS和IP的指令 转移方
阅读全文
摘要:8086汇编 程序编译 源程序到执行可执行文件的过程 ↓ 源程序文件.asm -> 目标文件.obj -> 连接 -> 可执行文件.exe -> 运行程序 编译 MASM.exe 工具编译 ; 开始编译文件,也可以不写入文件名 ; 简化过程结尾加“;”号:masm 文件.asm; 1)> masm
阅读全文
摘要:8089汇编 源程序 汇编程序:包含汇编指令和伪指令的文本。 汇编语言由汇编指令和伪指令构成,想要组合成源程序进行编译就需要这么做。 汇编指令 对应有机器码的指令,可以被编译为机器指令,最终被CPU执行 伪指令 没有对应的机器码的指令,最终不被CPU所执行。 指导编译器将汇编语言转换为机器码。 源程
阅读全文
摘要:8086汇编 栈操作 栈结构 一、说明 栈是一种只能在一端进行插入或删除操作的数据结构。 栈有两个基本的操作:入栈和出栈。 入栈:将一个新的元素放到栈顶; 出栈:从栈顶取出一个元素。 栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。 栈的操作规则:LIFO(Last In First Out
阅读全文
摘要:8089汇编 运算符指令 汇编指令不区分大小写、指令 寄存器,数字(进制符) mov、add 指令 一、根据下面指令分析 ; 存入、将001AH值存储ax寄存器 mov ax, 001AH ; 存入、将0026H值存储bx寄存器 mov bx, 0026H ; 相加、al高位1A + bl高位26、
阅读全文
摘要:8089汇编 标志寄存器 在8086CPU的指令集中,有的指令的执行是影响标志寄存器的,比如:add、sub、mul、div、inc、or、and等,它们大都是运算指令,进行逻辑或算术运算; 有的指令的执行对标志寄存器没有影响,比如:mov、push、pop等,它们大都是传送指令。 使用一条指令的时
阅读全文
摘要:8086汇编 段寄存器 段寄存器存放内存中不同地址段的存储,专门的寄存器存放段地址来提供使用。 8086CPU中主要使用4个段寄存器下面会有说明。 三种段 数据段 将段地址放在 DS中用mov、add、sub等访问内存单元的指令时,CPU将我们定义的数据段中的内容当作数据段来访问; 代码段 将段地址
阅读全文
摘要:8086汇编 Debug 使用 Debug是DOS系统中的著名的调试程序,也可以运行在windows系统实模式下。 使用Debug程序,可以查看CPU各种寄存器中的内容、内存的情况,并且在机器指令级跟踪程序的运行。 常用指令: 用R命令查看、改变CPU寄存器的内容 用D命令查看内存中的内容 用E命令
阅读全文
摘要:8086汇编 CPU 结构 8086 CPU 组成 一、结构说明 8086CPU主要由三块部分组成、通过内部总线实现CPU内各个器件之间的联系: 运算器进行信息处理:处理指令运算使用。 寄存器进行信息存储:存储地址数据使用。 控制器协调各种器件进行工作:发送读写执行使用。 二、寄存器 寄存器是CPU
阅读全文
摘要:8086汇编 计算机传输详解 基础了解 一、计算机存储单元 计算机数据可以被存储在内存与磁盘中,对于计算机来说他们不同的数据有着不同的含义,他们可以被分为指令与数据,而这些存储在计算机的数据都会有着固定的大小,根据计算机的存储单元来决定。 数据量:B、KB、MB、GB、TB... 存储单元:http
阅读全文
摘要:什么是汇编语言 汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成
阅读全文
摘要:主流商用SD-WAN方案真的算是SDN吗? 对SD-WAN名字中Software Defined的认知更多的停留在传统SDN所强调的控制面和转发面分离的模糊概念上。那么是不是SD-WAN中采用的转控分离就是沿袭学术界SDN的经典套路,采用类似Google 基于Openflow 构建的横跨全球数据中心
阅读全文
摘要:Cisco SD-WAN (Viptela) 1. 思科SD-WAN融合计划 vManage支持IPS,vEdge不支持IPS 私有云, 公有云 AWS和微软云(暂时) viptela主要产品线有两条: 1条,在国外,思科云可直接部署,独立运营团队; 1条,在中国viptela不支持思科云方式部署,
阅读全文
摘要:SD-WAN功能 在这些底层技术的基础之上,SD-WAN最终能为客户提供哪些创新型服务、解决哪些具体问题? 统一管理与监控:SD-WAN整合了路由器、防火墙、DPI检测、广域网加速等功能,确保企业真正意义上实现对应用的管理与监控。 安全性:可通过使用IPSec或TLS/DTLS加密来保护传输中的数据
阅读全文
摘要:SD-WAN是什么? SD-WAN,即软件定义广域网络,是将SDN技术应用到广域网场景中所形成的一种服务。这种服务用于连接广阔地理范围的企业网络、数据中心、互联网应用及云服务,旨在帮助用户降低广域网的开支和提高网络连接灵活性。 SD-WAN是一种应用于WAN传输连接的基于软件的网络应用技术,它可以使
阅读全文
摘要:基本概念 应用层涉及协议比较多,本章以这些为例讲解 DNS DNS服务作用:负责 域名解析,将域名解析成IP地址域名:域名由根域名、顶级域名、二级域名...组成,其中全世界的ipv4根域名服务器由13台服务器组成,一个为主在美国,其他辅助服务器美国9个,欧洲2个(英国和瑞典),日本一个 网络安全 网
阅读全文
摘要:5.1 基本概念 TCP:需要将传输的文件分段传输,建立连接会话,实现可靠传输和流量控制UDP:一个数据包就能够完成数据通信,不需要建立连接会话和流量控制,不使用可靠传输 5.2 传输层的功能 5.2.1 传输层协议和应用层协议之间的关系 常见的应用层协议使用的端口http=TCP+80https=
阅读全文
摘要:4.1 基本概念 4.2 网络层提供的服务 负责在不同网络之间尽力转发数据包,基于数据包的IP地址转发,不负责丢失重传,不负责数据包顺序 4.3 网络层如何转发数据包 发送端1、应用程序准备要传输的文件2、传输层 将文件分段并编号3、网络层 添加目标IP地址、源IP地址4、数据链路层 分两张情况,一
阅读全文
摘要:3.1 基本概念 帧由帧头、帧尾、物理层地址、校验值组成,在网络上传输时变成bits(比特流) 3.2 数据链路层的三个基本问题 封装成帧透明传输差错控制 3.3 两种数据链路层 点到点信道的数据链路层采用PPP协议 广播信道的数据链路层采用CSMA_CD协议,即载波监听、多点接入、碰撞检测 3.4
阅读全文
摘要:2.1 物理层的基本概念 2.2 数据通信的基础知识 2.3 物理层下面的传输媒体 10M、100M网络中,使用的网线是1,2,3,6这4根线,其他4根没有用到,1000M的网络中,8根线都用到同类机器相连,用交叉线,不同类机器相连,用直通线。现在的网卡(适配器)设备,可以自动协商线序,所以网线顺序
阅读全文
摘要:1.1 基本概念 局域网:覆盖范围小、自己花钱购买设备、带宽固定、自己维护、100米内、带宽 10M 100M 1000MInternet:由ISP组成、自己的机房、对网民提供访问Internet连接广域网:距离远、花钱租带宽带宽:用户到ISP(运营商)之间的带宽,不同ISP之间带宽不一定等于用户购
阅读全文
摘要:网络测速 speedtest-cli顾名思义,这个命令为网络测速命令,基于Python编写,测试系统网络的上传下载速度,GitHub托管的项目地址,以下列出常见的用法安装命令 pip install speedtest-cli 使用命令 # 查看帮助,具体选项说明自行查看,这里列出几个常用的 spe
阅读全文
摘要:# 安装epel yum -y install epel-release # 安装dnf,注意需要先安装epel yum -y install dnf yum只下载不安装 # centos7下 yum install --downloadonly --downloaddir=/tmp <packag
阅读全文
摘要:话说在5G时代,苟日新,日日新,又日新,一个个新的概念层出不穷,让人目不暇接。 网络切片就是在5G引入的新概念之一。 一看到切片,首先想到的必然是把一个完整的东西切成薄片。于是切面包或者切西瓜这一系列画面映入脑海。 然而,网络就是一台台硬件设备,还有上面飞奔的数据,这切片到底是咋回事?这就引出了下面
阅读全文
摘要:禁用root以外的超级用户 1检测方法 cat /etc/passwd 查看口令文件,文件格式如下 login_name:password:user_ID:group_ID:comment:home_dir:command 若user_ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0
阅读全文
摘要:1.1 企业中安全优化配置原则 尽可能不给服务器配置外网ip ,可以通过代理转发或者通过防火墙映射.并发不是特别大情况有外网ip,可以开启防火墙服务. 大并发的情况,不能开iptables,影响性能,利用硬件防火墙提升架构安全 1.1.1 生产中iptables的实际应用 主要应用方向 1、主机防火
阅读全文
摘要:1.1 为什么要虚拟化CPU 虚拟化技术是指在x86的系统中,一个或以上的客操作系统(Guest Operating System,简称:Guest OS)在一个主操作系统(Host Operating System,简称:Host OS)下运行的一种技术。这种技术只要求对客操作系统有很少的修改或甚
阅读全文
摘要:一 iSCSI简介 Internet小型计算机系统接口是一个机遇TCP/IP的协议,用于通过IP网络仿真SCSI高性能本地存储总线,从而为远程存储设备提供数据传输和管理。作为SAN协议,iSCSI跨本地和广域网扩展SAN,通过分布式服务器和数组提供独立于位置的数据存储检索。 二 iSCSI优点 使用
阅读全文
摘要:1. ARP协议简介 ARP(Address Resolution Protocol)协议称为地址解析协议,用于将主机IP地址解析为主机的MAC地址,即IP<-->MAC之间一一映射。RARP协议相反,是将MAC地址解析为IP地址。 ARP解析时分两种情况: 解析目标和自己在同一网段。A解析同网段的
阅读全文
摘要:网站架构中,负载均衡技术是实现网站架构伸缩性的主要手段之一。所谓"伸缩性",是指可以不断向集群中添加新的服务器来提升性能、缓解不断增加的并发用户访问压力。通俗地讲,就是一头牛拉不动时,就用两头、三头、更多头牛来拉。 负载均衡有好几种方式:http URL重定向、DNS的A记录负载均衡、反向代理负载均
阅读全文
摘要:站点版 (一)、企业站 搜狐:http://mirrors.sohu.com/ 网易:http://mirrors.163.com/ 阿里云:http://mirrors.aliyun.com/ 腾讯:http://android-mirror.bugly.qq.com:8080/(仅针对APP开发
阅读全文
摘要:1 概述 1.1 产生背景 随着Internet的发展,人们对网络可靠性的要求越来越高。特别是对于终端用户来说,能够实时与网络其他部分保持联系是非常重要的。一般来说,主机通过设置默认网关来与外部网络联系,如图1所示: 图1 常用局域网组网方案 主机将发送给外部网络的报文发送给网关,由网关传递给外部网
阅读全文
摘要:1.安装jdk yum安装jdk [root@server-01 ~]# yum -y list java* [root@server-01 ~]# yum -y install java-1.8.0-openjdk.x86_64 jdk下载:http://www.oracle.com/techne
阅读全文
摘要:1.ZooKeeper中的角色 在比较老的ZooKeeper版本中,只有两种角色:leader和follower。后来引入了一种新角色Observer,Observer角色除了不能投票(以及和投票相关的能力)外,其它和follower功能一样。 所以,在ZooKeeper中: 投票角色:leader
阅读全文
摘要:ZooKeeper有两种日志、一种快照。日志分为事务日志和ZooKeeper运行时的系统日志。 1.事务日志和快照 ZooKeeper集群中的每个服务器节点每次接收到写操作请求时,都会先将这次请求发送给leader,leader将这次写操作转换为带有状态的事务,然后leader会对这次写操作广播出去
阅读全文
摘要:zkServer.sh读取的默认配置文件是$ZOOKEEPER_HOME/conf/zoo.cfg。如果要用其它配置文件。如下传递配置文件参数: zkServer.sh start your_config zkServer.sh stop your_config zkServer.sh status
阅读全文
摘要:1.znode znode的官方说明:http://zookeeper.apache.org/doc/r3.4.12/zookeeperProgrammers.html#sc_zkDataModel_znodes ZooKeeper以一种类似于文件系统的树形数据结构实现名称空间。名称空间中的每个节点
阅读全文
摘要:1.简介 ZooKeeper提供了一个非常简单的命令行客户端zkCli,它在ZooKeeper安装目录的bin目录下。 [root@node02 ~]# ls /usr/local/zookeeper/bin/ README.txt zkCleanup.sh zkCli.cmd zkCli.sh z
阅读全文
摘要:以3节点的集群为例:192.168.1.220、192.168.1.221、192.168.1.222。因为前面配置单机ZooKeeper和伪集群ZooKeeper已经解释过所有步骤和配置项的意义,所以这里就直接给步骤。 假设已经在3个节点上都安装好了jdk(这是前提),并下载好了ZooKeeper
阅读全文
摘要:ZooKeeper有三种安装模式:单机安装(standalone)、伪集群模式、集群模式: standalone模式:只在一台机器上安装ZooKeeper,并只启动一个ZooKeeper实例。 伪集群:在一台机器上开启多个ZooKeeper实例来模拟集群。通过加载不同配置文件,分配不同数据目录来实现
阅读全文
摘要:CentOS上,除了os类的yum源,还需要配置几个常用的源:epel、ius。 有很多国内很多镜像站点都提供了各类仓库的镜像站点,个人感觉比较全的是阿里云http://mirrors.aliyun.com和清华大学开源镜像站点https://mirrors.tuna.tsinghua.edu.cn
阅读全文
摘要:进程状态以及状态转换 进程并非总是处于运行中,例如CPU没运行在它身上时它就是非运行的。进程在创建之后会改变状态,不同的状态之间可以实现状态切换,可以通过ps或top等命令捕获进程的状态。包含以下几种状态: 创建态(new):进程正在被创建中,过程非常短暂,用户无法捕捉 运行态(running):进
阅读全文
摘要:进程基础 程序和进程 什么是程序?什么是进程?程序和进程之间的关系?相信在任何介绍进程基础的地方都会解释一下程序和进程之间的关系,这是一个常识性的知识。 单独来看程序和进程,它们的概念都非常的简单。粗略去看,程序是一个或多个文件,进程是操作系统上能做某些事情的东西。 更标准一点,程序是由编程人员编码
阅读全文
摘要:锁 计算机领域中,锁机制使用的非常多。它主要是为了避免多个进程访问同一资源时,可能出现的数据不一致问题。 例如,cat命令输出一个比较大的文件内容,cat命令的特性是需要先将所有磁盘文件数据读取到内存后再输出,所以cat输出一个大文件可能需要花费一些时间。如果在cat在加载文件时,在另一个终端上向这
阅读全文
摘要:信号量 信号量(Semaphore)也称为信号灯,典故来源于荷兰:火车根据旗标来决定是否通行。其实就是红绿灯的作用。如图。 通过红绿灯理解信号和信号量,感觉它们似乎是一样的。但是,信号量机制是根据红绿灯的事件让人等待(进程阻塞)或不等待(进程继续运行),只有这两种行为;而信号机制是根据红绿灯事件做出
阅读全文
摘要:消息队列 消息队列(Message Queue)用于在进程之间传递较小的数据,进程可以向一个或多个消息队列中放入数据(消息),其它进程可以从消息队列中按照各种方式(例如最典型的先进先出FIFO方式)取出消息,从而实现进程间通信。 消息队列是一种生产者消费者模型,生产者生产消息放入队列,等待被消费者消
阅读全文
摘要:文件映射(Memory-mapped file)是将磁盘上文件的某段数据映射到内核的一段物理内存上,然后将此物理内存映射到一个或多个进程的虚拟内存中。映射了文件的进程可以直接读、写这段内存来达到读、写磁盘文件的功能。如果多个进程请求映射的文件区段相同,则只映射一次。 所以,文件映射进行了两次映射,一
阅读全文
摘要:套接字 套接字(Socket)用于协调不同计算机上的进程间通信,也就是基于网络的通信。当然,也可以在本机上使用套接字进行进程间的通信。 套接字通信的方式非常多,有Unix域套接字、TCP套接字、UDP套接字、链路层套接字等等。但最常用的肯定是TCP套接字。所以,这里介绍下TCP Socket通信方式
阅读全文
摘要:管道 管道是操作系统提供的一种最基本的进程间通信方式。每创建一个管道,就有两个文件描述符,一个是负责读管道的,一个是负责写管道的。所以,使用管道通信时,可以看作是两个文件描述符加一段内核空间中的内存,如图。 管道只能协调有亲缘关系的进程间通信,所谓亲缘,比如父子进程、兄弟进程。当某进程创建一个管道后
阅读全文
摘要:1.采用自定义配置文件的实现方法 1.1 自建CA 自建CA的机制:1.生成私钥;2.创建证书请求;3.使用私钥对证书请求签名。 由于测试环境,所以自建的CA只能是根CA。所使用的配置文件如下。 [default] name = root-ca /* 变量*/ default_ca = CA_def
阅读全文
摘要:主要用于输出证书信息,也能够签署证书请求文件、自签署、转换证书格式等。 openssl x509工具不会使用openssl配置文件中的设定,而是完全需要自行设定或者使用该伪命令的默认值,它就像是一个完整的小型的CA工具箱。 openssl x509 [-in filename] [-out file
阅读全文
摘要:用于签署证书请求、生成吊销列表CRL以及维护已颁发证书列表和这些证书状态的数据库。因为一般人无需管理crl,所以本文只介绍openssl ca关于证书管理方面的功能。 证书请求文件使用CA的私钥签署之后就是证书,签署之后将证书发给申请者就是颁发证书。在签署时,为了保证证书的完整性和一致性,还应该对签
阅读全文
摘要:虽说配置文件很多设置不用修改就能直接使用,但是了解它是配置openssl相关事项所必须的。而且要实现复杂多功能,必然要对配置相关了然于心。 1.man config 该帮助文档说明了openssl.cnf以及一些其他辅助配置文件的规范、格式及读取方式。后文中的所有解释除非特别指明,都将以openss
阅读全文
摘要:伪命令req大致有3个功能:生成证书请求文件、验证证书请求文件和创建根CA。由于openssl req命令选项较多,所以先各举几个例子,再集中给出openssl req的选项说明。若已熟悉openssl req和证书请求相关知识,可直接跳至后文查看openssl req选项整理,若不熟悉,建议从前向
阅读全文
摘要:进程间通信 单机操作系统上的进程可以分为两类: 1.独立进程:这类进程不会和其它进程有任何交流。 2.协作进程:两个或多个进程之间需要交流。 例如,ls /tmp命令是独立运行的,不依赖于其它进程,而cat a.log | grep 'abc'命令中的两个进程是协作进程,grep进程依赖于cat进程
阅读全文
摘要:I/O操作和DMA、RDMA 用户进程想要执行IO操作时(例如想要读磁盘数据、向磁盘写数据、读键盘的输入等等),由于用户进程工作在用户模式下,它没有执行这些操作的权限,只能通过发起对应的系统调用请求操作系统帮忙完成这些操作。这里因为系统调用产生中断将陷入到内核,进行一次上下文切换操作。 内核进程帮忙
阅读全文
摘要:两个缓冲空间:kernel buffer和io buffer 先看一张图,稍后将围绕这张图展开描述。图中的fd table、open file table以及两个inode table都可以不用理解,只需要知道它们体现出来的文件描述符和磁盘文件之间的对应关系:文件描述符fd(例如图中的fd=3)是对
阅读全文
摘要:OOM和swap分区 进程的虚拟内存空间是映射到整个物理内存空间的,所以在进程自身看来它拥有了整个物理内存,它也能使用整个物理内存,只需在使用的时候请求操作系统帮忙分配更多空间即可。 但是,操作系统上并非只运行了一个进程,如果一个进程无休止的申请物理内存空间,最终会导致物理内存耗尽或即将耗尽,使得操
阅读全文
摘要:页翻译:快速地址转换 虽然操作系统通过页表也能将虚拟页翻译成内存中对应的页帧,但是它仍然很慢。另一方面,如果访问每个页都需要操作系统来参与帮忙翻译,这会频繁陷入内核,效率是非常低的。所以,这里再次将任务交给硬件CPU去做。 提示:操作系统将底层任务交给硬件提高效率 前文介绍段的虚拟地址翻译,以及这里
阅读全文
摘要:分页和页表 除了分段,空间管理的第二种常见方式是分页。 Linux将虚拟内存划分成固定大小的页(Linux中的页大小是4KB),并且以页作为操作内存的最小单元。例如一次性读取一页,虚拟内存中的页称为虚拟页。对应的,物理内存也会划分成固定大小的页来管理,称为物理页,也常称为页框或页帧(page fra
阅读全文
摘要:栈空间:用户栈和内核栈 程序的执行流程 进程其实都是在执行任务,而任务其实就是函数定义的(函数也称为方法、子程序等,本质都一样),所以进程的作用就是不断的执行函数。程序启动时,第一个要执行的函数是main()函数(有些语言隐藏了这个函数,但任何程序一定会有一个程序入口函数),然后在main()函数中
阅读全文
摘要:进程的地址空间布局:分段 Linux的虚拟地址空间采用“分段+分页”结合的方式实现。先看分段,之后再介绍分页。 分段是将内存划分成各个段落(Segment),每个段落的长度可以不同,且虚拟地址空间中未使用的空间不会映射到物理内存中,所以操作系统不会为这段空间分配物理内存。这样的话,内核为刚创建的进程
阅读全文
摘要:资源隔离:虚拟内存 前面描述的所有操作系统基础知识都是进程和CPU资源相关的内容,另一个操作系统中和进程相关的比较重要的话题是内存资源。 操作系统主要目的是执行程序,而程序在执行时,程序自身以及程序所访问的数据、所产生的数据都在内存里(至少所有数据的流向都会经过内存)。此外,现代操作系统可以同时运行
阅读全文
摘要:CPU的归属:Idle进程 操作系统并不总是繁忙。例如个人PC上任务比较轻,多数时候都无法充分利用CPU,导致CPU处于空闲状态。但CPU既然通电了,它就得运行,那么在它没有任务需要执行的时候,CPU在干嘛呢? 操作系统提供了一个称为idle的进程(也可能idle处于某个永不退出的内核式进程内,而不
阅读全文
摘要:操作系统的服务端口:系统调用 用户进程工作在用户态,它是受限的,很多涉及到硬件的操作都无法执行,但是它们又想要取得结果,就只能请求工作在内核态的操作系统帮助完成这些操作,并将操作结果交给用户进程。 系统调用(system call)就是操作系统提供给用户进程请求操作系统做一些特权操作的接口,即为用户
阅读全文
摘要:要想在任何需要的时候回到操作系统,这相当于是改变了CPU的正常执行流程,所以一个非常熟悉的字眼——中断(Interrupt)就出现了。通过中断,可以保证回到操作系统,从而将CPU的控制权交给操作系统。 中断的字面意思就是打断正常执行流程,但是注意,它表示的是打断流程而不是终止流程,这是不同的概念。中
阅读全文
摘要:限制进程:内核态和用户态 进程可分为两种类型。一是操作系统自身运行时的内核类进程,也称为操作系统进程。另一种即非内核类进程,不是操作系统自身的进程,而是想要实现某些功能,用户自己去启动的程序产生的进程,也称为用户类进程或用户进程。 操作系统自身也是一个程序,它启动之后也有很多内核进程在后台工作,而且
阅读全文
摘要:假象:“并行”运行多个进程 现代操作系统都支持多任务同时执行。在这里,操作系统对我们用户“营造了一种假象”,让CPU看上去是用不完的,能够不断地添加新的程序使它们同时运行。 但每核CPU在某一时刻都只能执行一个进程。使用操作系统的人是不会去关注CPU是单核还是多核的,每个人都希望操作系统能同时运行多
阅读全文
摘要:openssl dhparam用于生成和管理dh文件。dh(Diffie-Hellman)是著名的密钥交换协议,或称为密钥协商协议,它可以保证通信双方安全地交换密钥。但注意,它不是加密算法,所以不提供加密功能,仅仅只是保护密钥交换的过程。在openvpn中就使用了该交换协议。关于dh算法的整个过程,
阅读全文
摘要:对称加密工具。了解对称加密的原理后就很简单了,原理部分见下文。 openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-k password] [-S salt] [-sa
阅读全文
摘要:rsautl是rsa的工具,相当于rsa、dgst的部分功能集合,可用于生成数字签名、验证数字签名、加密和解密文件。 pkeyutl是非对称加密的通用工具,大体上和rsautl的用法差不多,所以此处只解释rsautl。 openssl rsautl [-in file] [-out file] [-
阅读全文
摘要:该伪命令是单向加密工具,用于生成文件的摘要信息,也可以进行数字签名,验证数字签名。 首先要明白的是,数字签名的过程是计算出数字摘要,然后使用私钥对数字摘要进行签名,而摘要是使用md5、sha512等算法计算得出的,理解了这一点,openssl dgst命令的用法就完全掌握了。 openssl dgs
阅读全文
摘要:该伪命令用于生成加密的密码。 [root@docker-01 ~]# whatis passwd sslpasswd (1ssl) - compute password hashes passwd (1) - update user's authentication tokens 使用openssl
阅读全文
摘要:1.1 openssl speed 测试加密算法的性能。 支持的算法有: openssl speed [md2] [mdc2] [md5] [hmac] [sha1] [rmd160] [idea-cbc] [rc2-cbc] [rc5-cbc] [bf-cbc] [des-cbc] [des-ed
阅读全文
摘要:openssl rsa和openssl pkey分别是RSA密钥的处理工具和通用非对称密钥处理工具,它们用法基本一致,所以只举例说明openssl rsa。 它们的用法很简单,基本上就是输入和输出私钥或公钥的作用。 openssl rsa [-in filename] [-passin arg] [
阅读全文
摘要:genrsa用于生成RSA私钥,不会生成公钥,因为公钥提取自私钥,如果需要查看公钥或生成公钥,可以使用openssl rsa命令。 使用man genrsa查询其用法。 openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-id
阅读全文
摘要:1.1 ssl命令系列前言 openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖于openssl命令才能执行,所以称为伪命令(pseudo-command),每个伪命令都有各自的功能,大部分comma
阅读全文
摘要:1.1 背景知识 对称加密 :加密解密使用同一密钥,加解密速度快。随着人数增多,密钥数量急增n(n-1)/2。 非对称加密 :使用公私钥配对加解密,速度慢。公钥是从私钥中提取出来的,一般拿对方公钥加密来保证数据安全性,拿自己的私钥加密来证明数据来源的身份。 单向加密 :不算是加密,也常称为散列运算,
阅读全文
摘要:数组 awk数组特性: awk的数组是关联数组(即key/value方式的hash数据结构),索引下标可为数值(甚至是负数、小数等),也可为字符串 在内部,awk数组的索引全都是字符串,即使是数值索引在使用时内部也会转换成字符串 awk的数组元素的顺序和元素插入时的顺序很可能是不相同的 awk数组支
阅读全文
摘要:break和continue break可退出for、while、do...while、switch语句。 continue可让for、while、do...while进入下一轮循环。 [root@docker-01 ~]# awk ' > BEGIN{ > for(i=0;i<10;i++){ >
阅读全文
摘要:流程控制语句 注:awk中语句块没有作用域,都是全局变量。 if (condition) statement [ else statement ] expr1?expr2:expr3 while (condition) statement do statement while (condition)
阅读全文
摘要:awk布尔值 在awk中,没有像其它语言一样专门提供true、false这样的关键字。 但它的布尔值逻辑非常简单: 数值0表示布尔假 空字符串表示布尔假 其余所有均为布尔真 字符串"0"也是真,因为它是字符串 awk中,正则匹配也有返回值,匹配成功则返回1,匹配失败则返回0 awk中,所有的布尔运算
阅读全文
摘要:gawk支持的正则 . # 匹配任意字符,包括换行符 ^ $ [...] [^...] | + * ? () {m} {m,} {m,n} {,n} [:lower:] [:upper:] [:alpha:] [:digit:] [:alnum:] [:xdigit:] [:blank:] [:sp
阅读全文
摘要:数据类型 gawk有两种基本的数据类型:数值和字符串。在gawk 4.2.0版本中,还支持第三种基本的数据类型:正则表达式类型。 数据是什么类型在使用它的上下文中决定:在字符串操作环境下将转换为字符串,在数值操作环境下将转换为数值。这和自然语言中的一个词语、一个单词在不同句子内的不同语义是一样的。
阅读全文
摘要:awk变量 awk的变量是动态变量,在使用时声明。 所以awk变量有3种状态: 未声明状态:称为untyped类型 引用过但未赋值状态:unassigned类型 已赋值状态 引用未赋值的变量,其默认初始值为空字符串或数值0。 在awk中未声明的变量称为untyped,声明了但未赋值(只要引用了就声明
阅读全文
摘要:输出操作 awk可以通过print、printf将数据输出到标准输出或重定向到文件。 print print elem1,elem2,elem3... print(elem1,elem2,elem3...) 逗号分隔要打印的字段列表,各字段都会自动转换成字符串格式,然后通过预定义变量OFS(outp
阅读全文
摘要:getline用法详解 除了可以从标准输入或非选项型参数所指定的文件中读取数据,还可以使用getline从其它各种渠道获取需要处理的数据,它的用法有很多种。 getline的返回值: 如果可以读取到数据,返回1 如果遇到了EOF,返回0 如果遇到了错误,返回负数。如-1表示文件无法打开,-2表示IO
阅读全文
摘要:awk工作流程 参考自:man awk的"AWK PROGRAM EXECUTION"段。 man --pager='less -p ^"AWK PROGRAM EXECUTION"' awk 执行步骤: 1、解析-v var=val.....选项中的变量赋值。 2、编译AWK源代码为AWK可解释的
阅读全文
摘要:awk数据筛选示例 筛选行 # 1.根据行号筛选 awk 'NR==2' a.txt # 筛选出第二行 awk 'NR>=2' a.txt # 输出第2行和之后的行 # 2.根据正则表达式筛选整行 awk '/qq.com/' a.txt # 输出带有qq.com的行 awk '$0 ~ /qq.c
阅读全文
摘要:修改字段或NF值的联动效应 注意下面的分割和计算两词:分割表示使用FS(field Separator),计算表示使用预定义变量OFS(Output Field Separator)。 修改$0,将使用FS重新分割字段,所以会影响$1、$2... 修改$1、$2,将根据$1到$NF等各字段来重新计算
阅读全文
摘要:详细分析awk字段分割 awk读取每一条记录之后,会将其赋值给$0,同时还会对这条记录按照预定义变量FS划分字段,将划分好的各个字段分别赋值给$1 $2 $3 $4...$N,同时将划分的字段数量赋值给预定义变量NF。 引用字段的方式 $N引用字段: N=0:即$0,引用记录本身 0<N<=NF:引
阅读全文
摘要:详细分析awk如何读取文件 awk读取输入文件时,每次读取一条记录(record)(默认情况下按行读取,所以此时记录就是行)。每读取一条记录,将其保存到$0中,然后执行一次main代码段。 [root@docker-01 ~]# awk '{print $0}' a.txt 如果是空文件,则因为无法
阅读全文
摘要:awk命令行结构和语法结构 awk命令行结构 awk [ -- ] program-text file ... (1) awk -f program-file [ -- ] file ... (2) awk -e program-text [ -- ] file ... (3) 其中 program
阅读全文
摘要:下载 [root@docker-01 ~]# wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gnu/gawk/gawk-4.2.0.tar.gz 解压进入解压目录 [root@docker-01 ~]# tar xf
阅读全文
摘要:awk的所有代码(目前这么认为)都是写在语句块中的。 例如 [root@docker-01 ~]# awk '{print $0}' a.txt [root@docker-01 ~]# awk '{print $0}{print $0;print $0}' a.txt 每个语句块前面可以有patte
阅读全文
摘要:awk用法入门 awk 'awk_program' a.txt awk示例: [root@docker-01 ~]# awk '{print $0}' a.txt # 输出a.txt中的每一行 ID name gender age email phone 1 Bob male 28 abc@qq.c
阅读全文