看故障现象根据经验就知道原因;
第一次碰到,先定位问题,故障不一定是我的问题,开发、测试、硬件、网络,也可能我的问题;如果问题在我,根据错误提示信息、系统日志、错误日志去分析问题。
系统问题可以用top看cpu、df看磁盘、uptime看负载、ps看进程、sar看流量。
应用程序就是看日志提示解决问题,如果是开发问题,可以通过邮件等方式,描述故障现象和定位过程发送给开发对接人和我的领导。
如果是网络问题,路由、交换机可以找网络工程师,可以抓包tcpdump;
如果是硬件问题,可以找厂商。
公网
A:1.0.0.1~126.255.255.254/18
B:128.0.0.1~191.255.255.254/16
C:192.0.0.1~223.255.255.254/24
D:224.0.0.1~239.255.255.254
E:240.0.0.1~255.255.255.254
私网
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
其他
169.254.0.0~169.254.255.255 DHCP失效时分配的网址
127开头的都是本机 127.255.255.255除外 它是广播地址
224.0.0.18 VRRP协议交换机侦听此地址
1)交换机开机时MAC地址表没有任何记录
2)源主机通过交换机发送数据帧给目标主机,交换机学习数据帧中的源MAC和对应接口标识并记录到MAC地址表中
3)如果交换机的MAC地址没有目的MAC地址所对应的接口记录,则会进行广播泛洪
4)只有拥有对应的MAC地址的主机才会进行回应响应
5)交换机会从目的主机回复的消息中学习到MAC地址和对应的接口标识并记录到MAC地址表中,之后两台主机可以通过交换机的MAC地址表进行单播通信
交换机通过MAC地址表的记录实现数据帧的转发,MAC地址表默认老化时间300S
是一个错误侦测与回馈机制,发送错误和控制消息来探测节点的网络连通性
ping
pathping 例子:pathping www.baidu.com 跟踪数据包路径,计算机丢包情况
traceroute
TCP UDP
可靠性 可靠 不可靠
连接性 面向连接 无连接
报文 面向字节流 面向报文(保留报文的边界)
效率 传输效率低 传输效率高
双工性 全双工 一对一、一对多、多对一、多对多
流量控制 有(滑动窗口) 无
拥塞控制 有(慢开始、拥塞避免、快重传、快恢复) 无
URG 紧急位
ACK 确认位
PSH 急迫位
RST 重置位
SYN 同步(连接)位
FIN 断开位
性能监控方面: free 查看内存 top 动态监控cpu 负载 等 df 查看磁盘使用 ps 查看进程 iostat 查看io
用户方面:useradd 创建用户 chmod 修改权限 chown 设置归属
查询方面: sed grep awk cat more less which whereis
安全优化: 设置防火墙规则 限制root 用户远程登录 设置历史命令条目及登录超时 chattr锁定文件 时间同步 配置yum更新源
内核系统优化:
sysctl.conf 文件中 net.ipv4.ip_forward 设置路由转发 net.ipv4.tcp tw recycle = 1 开启time-wait 快速回收 net.ipv4.ip_local_port_range = 1024 65000 设置外向连接端口范围 /etc/security/limits.conf nofile 设置文件最大打开数 nproc 设置最大进程数 rss 设置最大常驻集大小 menlock 锁定内存地址空间
使用shell脚本进行重复性的操作
一键部署公司的业务服务
日志的监控和分割 备份 配置crontab -e 进行计划性任务
巡检
硬链接与源文件共享inode ,也就是说,他们都指向同一份数据,占用的磁盘空间也相同,删除一共硬链接并不影响源文件内容和其他硬链接,相当于给文件起了一共别名
软连接与源文件不仅inode不同,源文件删除了。软连接也就失效了,类似于一个快捷方式、
find 查找文件
locate 查找系统中已经建立的文件索引库
whereis 可以查找指定命令的二进制文件、源代码文件
which 查找命令所在的目录
- 物理层
- 数据链路层
- 网络层
- 传输层
- 会话层
- 表示层
- 应用层
三次握手 : pc1 向 pc2 发送一个 SYN 报文,pc 回复一个 SYN + ACK 报文 pc1 再次发送一个ACK报文
四次挥手: pc1发送一个FIN / ACK 报文给pc2 (此时pc1客户端进入等待断开连接状态)
pc2接收到pc1发送的请求断开报文之后回复一个ACK报文进行确认
pc2紧接着发送一个FIN / ACK 报文给pc1(此时pc2客户端进入等待断开连接状态)
pc1收到后发送ACK报文进行确认 (此时pc1进入时间等待状态 60秒后默认结束)
- 创建一个物理卷: pvcreate 设备名(可创建多个)
- 创建卷组 : vgcreate 卷组名 物理卷名
- 创建逻辑卷: lvcreate -L 容量大小 -n 逻辑卷名 卷组名
- 扩展卷组:先扩展物理卷 在使用 vgextend 卷组名 设备
- 扩展逻辑卷 : 随后使用 lvextend -L + 容量大小 /dev/卷组名/逻辑卷名
- 格式化 挂载使用·
- 首先检查是否安装 xfsprogs 和 xfs_quota
- 以支持配额的方式进行挂载文件系统 mount -o usrquota,grpquota /dev/vgname1/lvname1 /opt 或者永久挂载/ dev / vgname1 / lvname1 / opt xfs defaults,usrquota, grpquota 0
- 对用户和组账号进行配额限制 xfs_quota -x -c 'limit -u bsoft-80M bhard-100M isoft=40 ihard=50 lisi’ /opt/
- 验证用户在限制目录下的使用
raid 0 条带化存储 传输速率达到单个硬盘的N 倍 但它没有数据冗余
raid 1 镜像存储 实现数据冗余 但利用率为N/2
raid 5 N>=3 块盘组成 利用率 (N-1)/N (其中有一块是用来校验的)
raid 6 N>=4 块盘组成 (N-2)/ N (有两块盘用来校验)
raid 1 0 先做镜像 再做条带 利用率 N/2
grep :
-i 不区分大小写
-v 取反
-n 显示行号
-r 递归过滤文件夹中的所有内容
-w 只显示全部字符的列
-l 列出文件内容符合指定的样式文件名称
sed :
-i 替换:s 对指定的内容进行替换
d 删除选定的行
a 在当前行的下面增加一行内容
i 在当前行的上面增加一行内容
c 替换选定行为指定内容
y 字符转换 转换前后的字符必须长度相同
awk:
FS 列分隔符
NF 当前处理行的字段个数
NR 当前处理行的序号
RS 行分隔符
四表:raw 表 mangle表 nat 表 filter 表
五链:INPUT 链 OUTPUT 链 FORWARD 链 PREROUTING 链 POSTROUTING 链
firewalld防火墙9大区域:trusted(信任区域) public (公共区域) home (家庭区域) internal (内部区域) work (工作区域) dmz(隔离区域) block (限制区域) drop (丢弃区域)
free 查看交换空间内存状态
cat /etc/redat-release ; cat /etc/*release ; cat /proc/version 查看当前系统版本
uname -r 查看内核版本
cat /proc/cpuinfo、sar、 lscpu 查看cpu 信息
vmstat 查看系统内存 、交换空间、io、cpu 信息
iostat 查看磁盘io性能
top 动态的查看当前进程信息 cpu负载信息 内存信息
uptime 、 w 显示系统运行时间,登入用户和cpu负载情况
cat /proc/meninfo 查看内存
ps -T top -H 查看线程
emerg 紧急
alert 警告
crit 严重
err 错误
warning 提醒
notice 注意
info 信息
debug 调式
- 开机自检
- MBR引导
- Grup 菜单
- 加载linux内核
- init进程初始化
函数名 () {
}
function 函数名 {
}
EOF 进行免交互
EXPECT 进行免交互:
申明脚本解释器
2. swap 开启一个会话 3. expect 进行匹配 字符 4. send 代表输入字符 5. 结束符 expect eof
-i : 指定 tcpdump 监听的网络接口
-s : 指定要监听的数据包的长度
-c : 指定要监听的数据包数量 ,达到数量后自动停止抓包
-w : 指定将监听到的数据包写入文件中保存
-n : 将每个监听到的数据包中的域名转换成 IP 地址后显示
用 top 命令查看哪个进程 cpu 使用过高
再用 top -H -p 显示特定进程中的线程,锁定cpu使用过高的线程
看这个进程是否是业务进程,不是直接kill 掉即可