
linux
平静不绝望
ALOHA HEJA HE
-
原创 【TCP】 为什么3次握手 4次挥手
1 三次握手TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手????进行初始化的。三次握手????的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。由此我们来对应客户端与服务器之间的建立连接:第一次握手????: 客户端向服务器发出连接请求报文,这时报文首部中的同部位SYN=1,同时随机生成初始序列号 seq=x,此时,客户端进程进入了 SYN-SENT状态,等待服务器的确认。2021-03-03 18:34:0316
0
-
原创 【事件通知机制epoll】 epoll - I/O event notification facility 水平触发以及边缘触发存在的问题?
1 背景:分析epoll系统调用2 工具:使用strace分析 zk 客户端连接时,server发生的系统调用bin/zkCli.sh -server 172.16.208.137:2181 和zkserver连接以后3 监控分析过程:3.1 连接事件如下3.2 对于epoll_data疑惑:3.3op类型3.4events:(边缘处罚和水平出发,默认是level Triggerd)3.5 查看man手册第七部分 man 7 epoll...2021-02-06 11:13:1726
0
-
原创 京淘项目day09
学习资料的位置前提条件:1.有两个虚拟设备:2.能够查看到IP地址:192.168.XXX.XXX京淘初始虚拟机位置:双击运行:虚拟机的设置:桥接模式:相当于将虚拟机直接接入局域网中,这时会独占IP地址.可以与本机通过局域网通信.特点:所有的在局域网中的IP都可以访问虚拟机.依赖:如果设置桥接模式,则必须有物理设备的支持.NAT模式相当于在网络环境中会开辟一块全新的网络空间.只有主机能够访问.特点:NAT模式只有主机访问,其他人通过IP地址禁止访问.通过命令2020-08-16 15:05:5469
0
-
原创 【shell】通配符匹配-模糊匹配 判断文件是否存在
1 错误定向到 /dev/nullfiles=$(ls mydir/*.jar 2> /dev/null | wc -l);if [ "$files" != "0" ] ;then #如果存在文件rm adonis/*.jar;fi2 代码files=$(ls mydir/*.jar 2> /dev/null | wc -l); if [ "$files" != "0" ] ;then #如果存在文件rm adonis/*.jar; fi...2020-06-26 22:11:411376
0
-
原创 【jvm】do while(0) 为啥被用在宏定义中
1 实例源码openjdk/jdk/src/solaris/native/java/io/io_util_md.h:95/* * Retry the operation if it is interrupted */#define RESTARTABLE(_cmd, _result) do { \ do { \ _result = _cmd; \ } while((_result == -1) && (errno == EINTR)); \}2020-06-14 12:13:2898
0
-
原创 【TCP】socket的标准参数中:logback 参数配置方法
1 Backlog是什么?BACKLOG用于构造服务端套接字ServerSocket对象,标识当服务器请求处理线程全满时,用于临时存放已完成三次握手的请求的队列的最大长度。如果未设置或所设置的值小于1,Java将使用默认值50。2NIO server端配置 // 最终由 min(backlog, /proc/sys/net/core/somaxconn) 决定Send_Q 大小 // 默认50 此处配置成100 serverSocket.bin...2020-05-31 17:30:52256
0
-
原创 【Linux】 sed 常用命令
1 sed 's/原字符串/替换字符串/'2 # 要处理的字符包含单引号 sed "s/原字符串包含'/替换字符串包含'/"3 # 将分隔符换成问号”?”: sed 's?原字符串?替换字符串?'4 # 替换所有匹配关键字 sed 's/原字符串/替换字符串/g'5 ”^”表示行首 ”$”符号如果三根斜线中间表示行尾,但是在三根斜线外却表示末行(最后一行)...2019-10-13 16:33:3080
0
-
原创 【shell 登录】为什么每次都要source .bashrc 一次呢?
1 【疑问】? 为什么每次都要source .bashrc 一次呢?2 【科普】3 【解决】shell登录配置文件的执行顺序为:/etc/profile→ (~/.bash_profile | ~/.bash_login | ~/.profile)→~/.bashrc →/etc/bashrc → ~/.bash_logout~/.bashrc 必须如下配置3 如果 ~...2019-10-13 16:32:24436
0
-
原创 【CPU 和 Load】cpu并未打满,但是load很高,说明可能存在D+R状态的进程导致load高
1 【问题】:这台实例cpu并未打满,但是load很高,其他无异常。2 【理解】:说明可能存在D+R状态的进程导致load高科普:进程的D状态: uninterruptible sleep (不可打断的睡眠状态)举例:Sometimes you will see processes on your linux box that are in D state as shown ...2019-10-13 16:26:01327
0
-
原创 【polysh】跳板机逐台机器遍历所有机器日志
详细步骤:1 安装polyshwget wget http://guichaz.free.fr/polysh/files/polysh-0.4.tar.gztar -zxvf polysh-0.4.tar.gzcd polysh-0.4supython setup.py install# 添加polysh执行目录到环境变量exportPYTHONPATH=~...2019-10-13 09:50:56201
0
-
原创 【ssh 免密登录的原理】免密登录的原理
1 ssh 免密登录的原理(其实就是公钥存储在了对方,解密使用)堡垒机 将自己的公钥放在了 所有其他机器上,其他机器只需要发送一个随机串,堡垒机用私钥加密,返回,远程主机使用公钥解密,check 正确则直接连接成功!比如:跳板机要登录其他机器,则需要把自己的公钥下发到其他机器的.ssh/authorized_keys即可!$ ssh user@host 'mkdir -p...2019-10-13 09:35:32102
0
-
原创 【Binary file standard input matches】 grep 文件报错
使用 grep -a 参数-a, --text equivalent to --binary-files=text2019-09-04 11:42:5388
0
-
原创 【vim】删除命令
dd:删除游标所在的一整行(常用)ndd:n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行d1G:删除光标所在到第一行的所有数据dG:删除光标所在到最后一行的所有数据d$:删除光标所在处,到该行的最后一个字符d0:那个是数字0,删除光标所在到该行的最前面的一个字符x,X:x向后删除一个字符(相当于[del]按键),X向前删除一个字符(相当于[backspac...2019-05-30 14:36:34244
0
-
原创 【awk】执行文件中每一行命令
awk:cat 800.txt| awk '{cmd=$0;system(cmd)}'注意$0表示本行内容2019-05-25 19:54:10583
0
-
原创 【故障】oom导致 redis超时 rec 队列打满,导致tomcat拒绝服务
1 现象描述:磁盘占用到了50% 累计 ;PRINT_GC="-XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:-PrintHeapAtGC -XX:-UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M -Xlogg...2019-05-20 23:44:32192
0
-
原创 【快速工具】top cpu load最忙的前五线程 tool
top 线程分析:在机器上执行如下三个步骤即可找到最繁忙的线程信息:1 wget https://raw.githubusercontent.com/iqiancheng/fast-profiler/master/show-busy-java-threads.sh2 sudo chmod u+x show-busy-java-threads.sh3 sudo ./show-busy...2019-04-26 23:15:14114
0
-
原创 jenkin 发布失败 没有日志
发布失败1: 例如数据库字段缺失等,导致程序无法启动发布失败2:机器配置导致失败例如GC_PARAM="-Xmx4g -Xms4g -XX:G1HeapRegionSize=2m"但是机器配置没有4G那么多空间! 改成适合大小即可...2018-12-18 19:49:4787
0
-
原创 shell 命令 分割文本文件内容 简单举例
ips_im.dat 是空格分割的ip地址;需要产生每行一个ipcat ips_im.dat | tr " " "\n" > ip_list_im.dat2018-12-14 20:42:012249
0
-
原创 【命令库】-Linux grep命令的or,and,not操作
1 OR 语义egrep 'pattern1|pattern2' filename 2 AND 语义grep -E 'pattern1.*pattern2' filename 3 NOT 语义grep -v 'pattern1' filename2017-04-19 11:55:495164
0