linux学习-系统检测和维护

系统检测和维护

常用命令

fdisk -l  查看当前磁盘的详细信息(结合lsblk)  
结果解释:
      在Linux 是通过hd*x 或 sd*x 表示的,其中 * 表示的是a、b、c …… …… x表示的数字 12、3 …… …… hd大多是IDE硬盘;sd大多是SCSI或移动存储
   磁盘大小=   磁头->柱面->扇面->每个扇区固定大小512bytes
   df  显示文件系统磁盘空间的使用情况
        df   默认显示所有当前已挂载文件系统的磁盘空间使用情况
        df -h  以人类可读方式显示
        df -h /bin   显示某一个文件夹所在磁盘的使用情况
        
du 显示指定的文件(目录)已使用的磁盘空间的总
-h文件大小以K,M,G为单位显示(human-readable)
-s只显示各档案大小的总合(summarize)
free  显示当前内存和交换空间的使用情况 
netstat  是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
     yum  install net-tools  -y
-a  显示所有连接和监听端口
-t  (tcp)仅显示tcp相关选项  
-u  (udp)仅显示udp相关选项
从整体上看,netstat的输出结果可以分为两个部分:
一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q""Send-Q"指的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。
netstat -a | grep 52   根据查询结果集筛选想要的结果
netstat -t | grep 52 

ip addr 网卡网络配置详解

    lo 是回环地址,经常被分配到127.0.0.1地址上,用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。
	ens33:网卡名
	<BROADCAST,,MULTICAST,UP,LOWER_UP> 这个叫作net_device flags,网络设备状态标识。
	UP 表示网卡处于启动的状态;
	BROADCAST 表示这个网可以发送广播包;
	MULTICAST 表示网卡可以发送多播;
	LOWER_UP表示网线插着;
	MTU1500是指最大传输单元 MTU 为 1500,这是以太网的默认值。MTU 是二层 MAC 层的概念。MAC 层有 MAC 的头,以太网规定连 MAC 头带正文合起来,不允许超过 1500 个字节。正文里面有 IP 的头、TCP、HTTP的头。如果放不下,就需要分片来传输。
	
	qdisc 全称是queueing discipline,中文叫排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc ( 排队规则 ) 把数据包加入 队列。 最简单的 qdisc 是 pfifo,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。pfifo_fast 稍微复杂一些,它的队列包括三个波段 ( band ) 。在每个波段里面,使用先进先出 规则。 三个波段 ( band ) 的优先级也不相同。band 0 的优先级最高,band 2 的最低。如果 band 0 里面 有数据包,系统就不会处理 band 1 里面的数据包,band 1 和 band 2之间也是一样。 数据包是按照服务类型 ( Type of Service,TOS ) 被分配多三个波段 ( band ) 里面的。TOS 是 IP 头 里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。  然而这里是mq,还木有搞懂是什么样的队列处理方式。 lo中的fq_codel是多队列处理,每一个数据流都有一个队列处理。
    link/ether:这个是MAC地址,唯一的,一块网卡一个MAC。

进程与服务

进程概念

(a)进程是正在运行的程序实体,并且包括这个运行的程序中占据的所有系统资源,比如说CPU(寄存器),IO,内存,网络资源等。
(b)很多人在回答进程的概念的时候,往往只会说它是一个运行的实体,而会忽略掉进程所占据的资源。比如说,同样一个程序,同一时刻被两次运行了,那么他们就是两个独立的进程。
	Linux中的三种进程
(1)交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。 
(2)批处理进程和终端没有联系,是一个进程序列。
(3)监控进程(也称系统守护进程) Linux系统启动时启动的进程,并在后台运行。例如,httpd是著名的Apache服务器的监控进程。   

进程相关命令

top

显示当前系统中耗费资源最多的进程 
	用途: 可以通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高
	信息解读
	前五行是系统整体的统计信息。
	
	第一行是任务队列信息,同 uptime 命令的执行结果。
13:01:49   当前时间 
up 13 min   系统运行时间 
1 user   当前登录用户数 
load average: 0.00, 0.03, 0.06   系统负载,即任务队列的平均长度。 
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 
 
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下: 
Tasks:
total   进程总数 
running   正在运行的进程数 
sleeping   睡眠的进程数 
stopped   停止的进程数 
zombie   僵尸进程数 
 
Cpu(s): 
us   用户空间占用CPU百分比 
sy   内核空间占用CPU百分比 
ni   用户进程空间内改变过优先级的进程占用CPU百分比 
id   空闲CPU百分比 
wa   等待输入输出的CPU时间百分比 
hi   硬中断(Hardware IRQ)占用CPU的百分比
si   软中断(Software Interrupts)占用CPU的百分比
st   (Steal time) 是当 hypervisor 服务另一个虚拟处理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比。
 
最后两行为内存信息。内容如下: 
Mem: 
total   物理内存总量 
used   使用的物理内存总量 
free   空闲内存总量 
buffers   用作内核缓存的内存量 
 
Swap: 
total   交换区总量 
used   使用的交换区总量 
free   空闲交换区总量 
cached   缓冲的交换区总量。 
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 
该数值即为这些内容已存在于内存中的交换区的大小。 
相应的内存再次被换出时可不必再对交换区写入。 

ps

report a snapshot of the current processes  显示瞬间的进程状态

-e /-A 显示所有进程,环境变量
-f 全格式
 
ps –ef | grep  java  #表示查看所有进程里 CMD 是 java 的进程信息;
启动3个会话窗口:
   man  ls     第一个会话窗口
   man  ps     第2个会话窗口
ps -ef |grep man |grep -v grep       第3个会话窗口   看到两个帮助进程    看到含有man帮助的两个进程,并且 不包含grep自身在内
       
ps -ef|grep结果详解
UID      :程序被该 UID 所拥有
PID      :就是这个程序的 ID
PPID     :则是其上级父程序的ID
C        :CPU使用的资源百分比
STIME    :系统启动时间
TTY      :登入者的终端机位置
TIME     :使用掉的CPU时间。
CMD      :所下达的是什么指令
ps -ef | grep 关键字
ps -ef |grep sshd
ps -ef|grep sshd|grep -v grep    排除grep本身进程,显示含有sshd的
ps -e --no-header|grep -v ps|wc -l

kill

杀死一个进程
背景,当程序出错造成死锁,或者内存消耗过大造成卡机,杀;
格式: kill -9 PID 
示例:kill -9  324,
使用后一般使用下面命令释放内存:#free 
kill命令的改进killall
	(1) Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,
	例如:# killall -9  NAME
	(2)使用后一般使用下面命令释放内存:#free 
     
   	 启动3个会话窗口:
   ping www.baidu.com     第一个会话窗口
   ping  localhost     第2个会话窗口
ps -ef |grep ping  |grep -v grep       第3个会话窗口   看到两个ping进程    看到含有ping的两个进程,并且 不包含grep自身在内
   可以看到pid 
   kill -9     pid        pid  动态的

定时任务

第一步,查看cron服务是否开启
       service crond status  
       或者
       systemctl status  crond
第二步 ,查看当前的定时任务
       crontab -l
第三步 ,编辑 crontab -e
第四步 ,检查效果
取消定时任务  crontab -r 
定时任务格式:
    分0-59     小时0-23   日1-31       月1-12      星期0-6     命令
        “*”代表取值范围内的数字 ,
         “/”代表”每隔”,
         “-”代表从某个数字到某个数字,    10-15  *  *  *  *    每一小时的10到15分钟   
         “,”分开几个离散的数字          10,12,15  *  *  *  *     每一小时的第10,12,15执行
*/5      *       *         *     *   ls             指定每小时的第5分钟执行一次ls命令
30     5       *         *     *     ls             指定每天的 5:30 执行ls命令 
30     7       8         *     *     ls             指定每月8号的7:30分执行ls命令
30     5       8         6     *     ls             指定每年的6月8日5:30执行ls命令 
30     6       *         *     0     ls             指定每星期日的6:30执行ls命令
[注:0表示星期天,1表示星期1, 以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30     3       10,20     *     *     ls            每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25     8-11    *         *     *     ls             每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15   *       *         *     *     ls             每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30     6       */10      *     *     ls             每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]                                        
50     7       *         *     *     root     run-parts 每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件    /etc/cron.daily   [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。
示例:
crontab  -e     编辑定时器
* * * * *  date>>aaa.log       每分钟把当前时间追加到aaa.log一次
*/3 * * * *  ls / >>bbb.log    每隔3分钟 把ls /的执行结果追加到bbb.log中
5,10,15,20 10-20  * * *   ls /var>>ccc.log    每天10:05  10:10  10:15,10:20,  11:05  11:10  11:15,11:20,  ... 20:05  20:10  20:15,20:20   定时任务可以执行一次  
crontab -r  取消定时任务

完结撒花,see you娜拉

猜你喜欢

转载自blog.csdn.net/weixin_44834205/article/details/126402391