前言
之前写过一篇 《 在公司做的项目和自己在学校做的有什么区别? 》不知道大家还有印象没有,里面提到了在工作中可能需要等上Linux服务器,查看一些信息(特别是查日志找Bug)。 我在大学的时候也有过Linux的课程,在期间也做过Linux相关的笔记: 但是,在学校学完,没咋练手(还是太菜了),去到公司可以说是全忘光了。这篇文章主要来回顾以前的笔记,以及记录一下在工作中比较常用的一些命令。
一、查看日志线上出现了问题,登上线上的机器查日志是非常常见的操作了。我第一次登上线上机器查日志的时候,我还只记得以下的几个命令(假设现在我们的日志文件叫做
现在日志每天产出的大小大概1GB: 如果是小文件的话,单纯的
同样地,如果是小文件,单纯的 平时我还是很喜欢用
面对比较大的日志文件,这我们就得配合
这么一搞,就能将 现在我们已经能根据关键字搜到对应的记录了,接着我想看一下那条记录的日志上下文【这样就能知道这条数据大概的执行状态了】 首先,我们先要查出对应记录的行号,在 现在行数是29506,我们一般只要看一下29506的前10行和后10行就差不多知道问题出现在哪了,于是我们可以这样做:
如果关键字不太准确(日志输出的记录太多了),我们可以使用
有的时候,我们想统计这个日志输出了多少行,我们可以使用这条命令:
参考资料:
二、查进程和端口查进程有两个命令:
上面两个命令都是列出所有的进程,我们还是通过 把进程查出来干嘛?知道它的进程ID了,我们可以把他给杀掉。
查端口也是一个很常见的操作,常见命令: l:listening n:num t:tcp u:udp p:display PID/Program name for sockets 查看某个端口详细的信息: 三、查看系统的状态3.1 TOP实时查看进程的状态TOP命令查看进程的状态,其中有个load average可能不是那么好理解,下面来解释一下: load average:在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。 load average 有三个值,分别代表:1分钟、5分钟、15分钟内运行进程队列中的平均进程数量。
Linux进程可以分为三个状态:
比如现在系统有2个正在运行的进程,3个可运行进程,那么系统的load就是5,load average就是一定时间内的load数量均值。 3.2free查看内存使用状况linux的内存管理机制的思想包括(不敢说就是)内存利用率最大化,内核会把剩余的内存申请为cached,而cached不属于free范畴。 如果free的内存不够,内核会把部分cached的内存回收,回收的内存再分配给应用程序。所以对于linux系统,可用于分配的内存不只是free的内存,还包括cached的内存(其实还包括buffers)。
Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。磁盘的操作有逻辑级(文件系统)和物理级(磁盘块) 参考资料:
最后我工作时长比较短,所以可能会有很多命令会忽略掉了,欢迎在评论区补充比较常用的命令。后续如果某些命令比较常见的,我再分享哈~ |
|