牧客Jeson
一、Shell命令合集
操作快捷键
- ctrl + r 可以快速查找历史命令
- ctrl + l 可以清空控制台屏幕
- ctrl + a \ ctrl + e 移动光标到命令行首、尾部
- ctrl + w \ ctrl + k 删除光标之前、之后的内容
VIM
- shift + zz 文件保存并退出
进程操作快捷键
- ctrl + c 强行终止程序的执行
- ctrl + z 挂起一个进程
- ctrl + d 终端中输入exit后回车
linux命令中快捷键
- shift + p 根据cpu使用率排序
- shift + m 根据内存占有用排序
空间分析
硬盘空间不足,需快速定位日志目录
1 | du -x --max-depth=1 /|sort -k1 -nr |
- du命令
- -x 表示跳过其他文件系统
- –max-depth=1 可以统计出根目录下第一级目录中所有文件大小
- sort命令
- -k 参数致命具体按照哪一列
- -n 只对数值进行排序
- -r 表示反向排序
- 整体指 第一列并按照数据大小做反序排列
系统产生很多碎片文件,导致inode资源不足
1 | find -type f|awk -F/-v OFS=/'{$NF="";dir[$0]++}END{or(i in dir)print dir[i]""i}'|sort -k1 -nr|head |
- find -type -f 查找指定类型的文件,然后将结果通过管道传递给awk
- -F/ 指定处理文件时字符串之间以/进行分割 -v OPS=/表示文件显示结果以/进行分割展示
- awk命令整体规则而言有个{}END{}格式,前面{}表示行处理操作,后面表示行处理后需要进行整体结果展示
文件操作
批量查找文件作内容替换
1 | find ./-type f -name consumer.xml -exec sed -i"s/aaaaaa/bbbbbb/g"{}\; |
- -name指定查找的文件名
- -exec参数将查找到内容传递给下一个命令去继续执行相关逻辑
- sed命令主要对文件内容进行替换,这里会将consumer文件中的aaaaaa替换成bbbbbb
批量查找文件作拷贝打包
1 | (find .-name "*.txt"|xargs tar -cvf test.tar)&&cp -f test.tar /home/. |
- 括号中 包含两条命令 他们使用管道符进行连接
- 括号外 通过&& 与第三条命令连接 最终再拷贝
网络连接状态分析
1 | netstat -n|awk '/^tcp/{++$[$NE]END{for (a in S)print a,S[a]}' |
- netstat -n负责查看主机上所有TCP UDP连接信息
- awk 负责对这些 信息进行进一步处理
- / 括起来的正则表达式
IP信息提取
提取主机上的IP信息
1 | ip a|grep "gobal"|awk'{print $2}' |awk -F/'{print $1}' |
- ip a 查看主机上所有网卡信息
- 通过grep进行条件过滤
- 再通过awk实现第二列内容输出
- 最后通过awk指定/作为分隔符来打印第一列信息
二、nginx
基础配置优化
- gzip
缓存配置优化
浏览器缓存
- 静态文件设置 expires
代理缓存(动静分离)
- proxy_cache_path
- cache levels
- my_cache:10m max_size
https ssl
- ssl_session_cache shared-SSL:10m;
- ssl_session_timeout 10m;
后端缓存 redis memcache
打开文件缓存 元数据jpg
- open_file_cache max=1000 inactive=20s;
- open_file_cache_valid 30s;
- open_file_cache_min_uses 2;
- open_file_cache_errors on;
经验
能放在客户端就放客户端
能缓存越多越好
命中率越高越好
三、nginx负载均衡
1 | http{ |
常见问题
- 客户端IP地址获取问题:服务端获取不到用户的IP
- 域名挟带问题 proxy_set_header Host $host
- 负载均衡导致session丢失问题
- session保持ip_hash,url_hash
- session复制
- session共享
- 动态负载均衡问题
- 真实的realserver状态检测 nginx_upstream_check_module 淘宝技术
四、入口网关服务注册发现
openresty 动态upstream
开源组件方案confd nginx-upsync-module
开源AP网关方案
五、curl命令最常见使用方式
1 | 查看body |
六、系统性能验收
Unixbench基于linux unix基准测试工具。
FIO性能压测是一个开源的主流的LINUX磁盘IO测试工具。
devops(开发测试部署- 持续集成、运维)
自动化
各项流程需要无缝打通
交给统一平台进行可视化管理
七、持续集成
gitlab docker jenins ansible
八、CMDB平台
自动化资产管理:物理资产、虚拟资产、信息资产
IMOOCC.OPS
Python + ansible + django
九、自动化任务平台
八、K8S打造ci/cd核心思路
- jenkins部署高可用
- 主从架构、部署到K8S中
- 通过pipeline创建管理job
- 通过API接口创建管理job
十、割接
服务内容
同构割接:对同构服务进行升级,主体结构是不变的,只是进行例行性的升级,或内容版本修改。
异构割接:整个主体结构做了改变
分类
局部割接:只操作了其中的一小部份内容,只对一小部分产生影响
全局割接:影响 整体功能,大部份内容需要做检查。
关键思路:停机维护、无缝升级如何设计