随笔1

 

 

1 .zookeeper 启动失败原因分析

a. 内存不足,看日志 ,can not allocate memory

b. zk log 日志 有大小为 0 的,清除。

c.

 

2. docker 相关

ls /var/lib/docker/ 下的所有数据都是就的docker 的,所以如果删除了旧的docker, 就可以  把这个目录 全删了,如果没删除,可能会导致docker 进程起不来 或者 新docker 创建失败,

手动执行  /usr/lib/systemd/system/docker.service  文件中的docker  启动进程,看报什么错

dm-0  lvs 类似的逻辑卷的uuid 存储在  /var/lib/docker/devicemapper/metadata/deviceset-metadata  文件中,文件存在,dm-0 不存在

 

3. 网卡相关

ip addr del 10.36.203.21/8 dev bond1:1

ip addr add 192.168.0.71/24 dev br0

ifconfig bond1:1  10.36.203.21 netmask 255.255.255.0

4. awk 相关

BEGIN  END 用法举例

cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'

格式
 \t  空格  \n 换行  print 换行  printf  不换行
 

搜索支持正则,例如找root开头的: awk -F: '/^root/' /etc/passwd   搜索   正则搜索, // 匹配

 自定义变量  -v arg1= 

awk -v time=2019-03-06 -v cluster=HATS_3956 'BEGIN{sum=0;count=0}$3==cluster && $1==time{sum=sum+$NF;count++}END{if(count != 0){printf "%d\n",sum/count}else{printf "0"}}' /data/proclog/monitor/count_channels_num.log

for 循环
awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' a
gsub
awk '$1~/cache_rs_d_HATS2193/{$1="";gsub(/^ */,"",$0); print $0}' /etc/ipvs/conf/ipvs.conf|awk '{gsub(/ /,"_",$0);print $0}'
变量匹配
for i in `ll |awk '$7==9&&$8<"01:00"{print $9}'` ; do zcat $i |awk '$5==502{print $9}'>>/tmp/zqz-115; done
 
5 .  有个故障,ATS 服务起来了,端口也监听了,但 测试端口时,用curl or  telnet 却提示unable to bind socket
 比如  772 端口,外网和内网都成功监听了,外网访问ok,内网却提示 连不过去,IP 肯定能通, 
解决: ss -an  a all ; n  端口用数字显示而非 进程名称,查到 内网端口 链接数太多了 ,全是close-wait ,6 万多,导致新的连接过不来。
close-wait  意思时  作为被动关闭方, 接受到关闭请求后,却没有下一步的动作。多是程序的原因。
但程序跑了很久了,不应该时程序的bug, 应该时中间有什么异常,导致程序未发送 关闭请求。  
最后只能通过重启服务器解决。
 
关键点:  端口监听成功,有的IP能访问成功,有的失败, 怀疑是链接数堆了,用ss  查
 
附:  tcp  3 次建联和 4次断开
 

 

 
6 .VIM 

ctrl+b\f  向上\下滚动一屏  这个比较实用,记住。 

ctrl + e/y  一行

33G:跳转到33行  

G 尾行  gg  首行

d$:删除当前光标到行尾    d^:删除当前光标至行首

e E 单词或段的尾部, b B 单词或段的 首部 , 大小写对应为单词来说意义一样,但对非标准英文单词,如主机名等,会有区别 

 :set list 显示结束符和 tab 隐藏字符。

 

Ctrl+G:显示当前位置

x 删除后面的字符 X 删除前一个字符  删除3个字符就是3x   

H、M、L分别移动到屏幕的顶部、中间和尾部。

 

7 . 看core  文件

gdb core-filename

 

8. 网卡bond  绑定

配置文件如下:

ONBOOT   yes no  开机是否启动网卡服务

BOOTPROTO   static  dhcp  静态网卡还是dhcp

TYPE   ethernet 以太网   BRIDGE 桥接模式

 

 

mode =0  模式 轮询 ,1 主备

milion =100 ,检查间隔,100ms

更改bond 绑定  需要重启 机器生效, 新建不确定。

查看

  

 

9 .traceroute ,arping , mtr

arping  arp ping ,检查目标IP的mac 地址。

ping ICMP全名为(INTERNET CONTROL MESSAGE PROTOCOL)网络控制消息协议。

fping  -g  检查网段  存活情况  

fping -g 221.204.172.200/25

 

traceroute 查路由,  ***  可能表示 屏蔽路由了,

mtr  查到哪一路丢包  

 

tcpdump 抓包

tcpdump -i bond0 网卡 any  所有

-n  主机名转化成ip  -nn 主机名和端口都用数字表示

 -t  屏蔽时间 -w  输出到文件 

tcpdump -i any -nn -t  host 127.0.0.1 and tcp port 80
tcpdump arp| icmp |tcp port |udp port
 

 10 : curl 

curl    -w "status:%{http_code}\n"

 默认请求内容输出到屏幕 , -o 输出重定向, 可以直接请求https

-L 跟随链接重定向   -X 请求方式 POST 

 -d 发送 POST 请求  , 如下  加i 看 详情

curl -H "Content-type:Application/json" -d '{"hostname": "CNC-WV-b-D40", "result": {"hostname": "hostname", "network": [{"DEVICE": "bond0", "IPADDR": "1.1.1.1"}, {"DEVICE": "bond1", "IPADDR": "10.11.100.32"}], "service_tag": "060580bD40"}}'  "url"

 

 

-H 自定义 header 

常用选项  curl -Lsvo /dev/null   -x ip:80

-i 响应头和内容

 

11 .rz 传输失败 ,加 -e Force sender to escape all control characters; normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.

-b binary 二进制传输

用 rz -e  or rz -be  

 

12. ps -eo 自定义输出, lstart 进程启动时间,etime 进程运行时间,

USER //用户名 
%CPU //进程占用的CPU百分比 
%MEM //占用内存的百分比 
VSZ //该进程使用的虚拟內存量(KB) 
RSS //该进程占用的固定內存量(KB)(驻留中页的数量) 
STAT //进程的状态 
START //该进程被触发启动时间 
TIME //该进程实际使用CPU运行的时间

13 date

date -d "30 minutes ago" 显示30分钟之前的时间 

%R  H:M

%S  显示s 

date +%s  输出时间戳

date -d @123 时间戳转可读格式

date +%s -d "2011-01-01 10:10:10"

date +%F-%T

date +%D:%T

 

14  SNI  server name indication 

支持实现虚拟主机的 443 连接

访问过程 :  tcp 3次建联, client hello  , 发送请求主机名,协商加密协议等。  server hello ,返回协商结果,确定加密协议和 套件等,验证主机名。 证书校验。 确定加密的密钥 。 握手结束。 加密通信。

参考: https://blog.csdn.net/makenothing/article/details/53292335

 

 

1. 

Structure needs cleaning


xfs_repair  -L  慎用

 

2. journalctl  -e end  -r reverse   -u user 

 

3. docker 挂载

/dev/dm-1        15G  3.0G   13G  20% /var/lib/docker/devicemapper/mnt/6122d872d659f8918095a1ba73eea4b5429b356e27fa58f73e6504451074e2b7

lrwxrwxrwx 1 root root 7 May 24 15:54 /dev/mapper/docker-8:2-7611172-4617ca811e46fe0bdc3e3d792c42783b0b5ed406d2fafeddbfc54c94ce072e9f -> ../dm-1

手动挂载

 

4 .  sudo 相关

把用户属组更改,对相应的数组设备

sudo su - 提示失败 ,查 sudo 命令的权限,u+s 才做,给用户 属主的权限

5 . ipvs 相关

ipvsadm -Lnc  查当前的链接详情

-ln --rate    链接速度

-ln --stats  链接总量

ipvsadm -ln  显示的size  值 有时候小,扩大,通过  载入模块实现,用 insmod 跟绝对路径实现载入

rmmod  删除 模块

lsmod 查看载入模块

 

相同功能有modprobe 

modprobe -l 显示  -a  加载 -r remove 

 

ipvs+ ospf

vip 不通: 

1. 查看vtysh 里邻居是否正常建立,标志 full init  

2. ospf 配置文件里是否配置,服务是否启动,/etc/quaage/ospfd.conf   systemctl status ospfd

3. 查 /etc/system.conf 的模块  ????  

4. ip  是否可用,可临时配置测试。

 

b. real -server  是否在回环口配置vip 

 

c. vip ping 没问题,但访问时通时不通 

1.   ipvs 设备管理ip 与 real-server ip  有的不在同一网段内,转发失败, 二层 mac 

2,    交换机 hash 模式错误,同一个请求, 请求包分别指向不通的lvs 机器 。

3.   real-server ip  配到了 lvs 的bond1 上,当成了ospf ip  用。

 

d, lvs  三线ip 可实现 节省ip 资源 

 

e, ipvs 管理规则 和 所配置的不一致, 可能是 存在ipvsadm store

 

 f , 今天碰到一个  由原先的 3台机器组成的lvs  集群 改成2台机器组成的集群, 出现vip 访问时通时不通的问题,

原因: 原先的第三台设备的ospf  服务正常启动, vip 在配置文件里没清除,因此会访问到, 但ipvsadm 无后端配置,直接提示 could not connect to host 

ospfd 和 zebra 命令 均来自 quagga 安装包, 

 

6.14 

升级CCTS 服务 清盘后发现节点带宽突然掉量,查状态码正常,机器无异常报警,除了入带宽增加外,which is normal ,

原因: 入带宽 有限制, 回源拉数据慢, 响应慢,堵塞, 导致出带宽 降低 ,后来 逐步放开限制后, 带宽恢复。 

 

6.26

机器打bond, 交换机无配置,报错如下:

[Wed Jun 26 14:13:46 2019] bond1: received packet on bond3 with own address as source address (addr:4a:81:66:6d:4e:f1, vlan:0)

 

6.26 

refresh 服务起来了,端口也监听起来了,但 测试端口不通, 机器其他端口都测试正常 , 查看日志报如下错误,查看服务进程发现,除主进程外,无work 进程生成,

2019/06/24 12:41:44 [alert] 657#0: worker process 658 exited with fatal code 2 and cannot be respawned

原因: 看日志 有报错 2019/06/24 12:41:44 [alert] 662#0: chdir("/data/proclog/log/refreshd/core_file/") failed (2: No such file or directory)

无 core 目录

posted @ 2019-04-01 20:11  BRUCECSDN  阅读(241)  评论(0编辑  收藏  举报