文件属性 chattr
chattr(chang attribute )是一个Linux操作系统命令,用于更改文件的属性,防止root误删除。它允许用户设置文件的特殊属性,例如只读、隐藏、不可修改等。
1.1. 文件属性添加与查看
语法:chattr [选项]... 文件名...
+:添加属性
-:删除属性
i:设置文件为不可修改(immutable)
a:设置文件只能追加内容,不能修改和删除(Append Only)
d:设置文件为无法被删除(不能删除或重命名)
c:设置文件被压缩
u:设置文件被更新(每当文件被访问时,文件系统都会将该文件拷贝到磁盘上,并更新访问时间)
s:设置文件为安全删除(使用rm命令删除文件时,实际上只是截断文件内容,并不会真正删除文件)
1.查看文件属性
[root@linux-server ~]# lsattr file1 file2
---------------- file1
---------------- file2
2.设置权限
[root@linux-server ~]# chattr +a file1 #不允许修改,只允许追加
[root@linux-server ~]# chattr +i file2 #不允许做任何操作
[root@linux-server ~]# lsattr file1 file2
-----a---------- file1
----i----------- file2
测试
[root@linux-server ~]# echo 111 > file1 #>覆盖,不被允许,只允许追加
-bash: file1: Operation not permitted
[root@linux-server ~]# rm -rf file1 #不能删除
rm: cannot remove ‘file1’: Operation not permitted
[root@linux-server ~]# echo 111 >> file1 #追加
[root@linux-server ~]# echo 111 > file2
-bash: file2: Permission denied
[root@linux-server ~]# echo 111 >> file2
-bash: file2: Permission denied
[root@linux-server ~]# rm -rf file2
rm: cannot remove ‘file2’: Operation not permitted
[root@linux-server ~]# mv file2 file4
mv: cannot move ‘file2’ to ‘file4’: Operation not permitted
取消权限
[root@linux-server ~]# chattr -a file1
[root@linux-server ~]# chattr -i file2
进程管理
关于进程 process =======================================================
判断当前服务是否运行
ps -ef | grep 服务名 或 ps aux |grep 服务名
lsof -i:端口号
systemctl status 服务名 或 service 服务名 status
1.进程介绍
1.1什么是进程?
进程是已启动的可执行程序的运行实例。 +d表示进程名。 进程有以下组成部分 (1)已分配内存的地址空间; (2)安全属性,包括所有权凭据和特权; (3)程序代码的一个或多个执行线程; (4)进程状态。 程序和进程的区别 程序:二进制文件,静态/usr/bin/passwd,/usr/sbin/useradd 进程:是程序运行的过程,动态,有生命周期及运行状态。
1.2进程的生命周期
进程的生命周期包括以下几个阶段:
- 就绪状态:进程等待分配到CPU资源来执行。
- 执行状态(R):进程正在CPU上执行,进行计算、处理I/O操作或与其他进程进行通信。
- 可中断的睡眠状态(S):进程等待某个事件(如I/O操作)完成,并可被其他事件或进程唤醒。
- 不可中断的睡眠状态(D):此进程也处于睡眠状态,但与S状态不同,进程只会执行一些不允许被中断的操作,如磁盘访问,而不会响应其他事件或进程。
- 暂停状态(T):进程被暂停执行,直到接收到恢复执行的信号,可以是由信号触发(如SIGSTOP)或被调试器暂停。
- 僵尸状态(Z):进程结束执行,已经释放除进程标识(PID)之外的所有资源(其父进程尚未回收其资源)。僵尸进程不占用系统资源,但需要被清理。
- 死亡状态(X):进程结束执行,并且其所有资源都已被系统回收。在进程实际应用中不会被观察到
进程的生命周期可以是动态变化的。进程可以从创建阶段转变为就绪状态,然后执行,再转变为阻塞状态,最后终止。此外,进程也可以通过系统调用(如sleep())主动放弃CPU,或者通过信号等外部事件被中断,造成状态的变化。
1.3进程状态产生的原因
在多任务处理操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程。在进程运行时,它对CPU时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。
2. 查看进程
静态查看进程
[root@linux-server ~]# ps aux | les
参数解释:
ps :process status
a 只能查看系统里面运行的所有终端进程(登录状态下的进程)
u 显示进程拥有者
x 显示系统内所有进程
f 显示进程之间的父子关系
[root@linux-server ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
============================================================================
USER: #运行进程的用户
PID: #进程ID
%CPU: #CPU占用率(主要)
%MEM: #内存占用率(主要)
VSZ 占用虚拟内存,Virtual Set Size
RSS 占用实际内存Resident Set Size,进程实际使用的物理内存大小
TTY: #进程运行终端,?表示没有占用终端
STAT: #进程运行状态
R #运行(Running)
S #可中断睡眠 (Sleeping)
D #不可中断睡眠(Disk sleep)
T #停止的进程 (stopped)
Z #僵尸进程(Zomnie)
X #死掉的进程(dead)
START: #进程的启动时间
TIME: #进程占用CPU的总时间 分钟:秒
COMMAND #进程文件,进程名
进程状态:
Sl 以线程的方式运行
Ss 父进程
R+ 前台的进程组
S< 优先级较高的进程
SN 优先级较低的进程
查看tty的方法:
[root@linux-server ~]# tty #查看当前的shell使用的哪一个TTY(Teletype)
查看父子关系进程
[root@linux-server ~]# ps -ef
参数解释:
-e:等价于 ‘-A’ ,列出全部的进程
-f:完整格式,显示全部的列(显示全字段)
UID 用户ID
PID 进程ID
PPID 父进程ID
C CPU占用率
STIME 开始时间
TTY 开始此进程的TTY----终端设备
TIME 此进程运行的总时间
CMD 命令名
查看指定PID
[root@linux-server ~]# yum install -y httpd #安装apache软件
[root@linux-server ~]# systemctl start httpd #启动
[root@linux-server ~]# cat /var/run/httpd/httpd.pid
1043
[root@linux-server ~]# ps aux | grep sshd
root 1043 0.0 0.2 105996 4120 ? Ss 01:32 0:00 /usr/sbin/sshd -D
grep:过滤
进程排序
ps aux --sort %cpu #按CPU使用率升序排序,显示所有进程的详细信息
ps aux --sort=-%cpu #按CPU使用率降序排序。
ps aux --sort=-%mem #按内存使用率降序排序。
ps aux --sort=-rss #按物理内存占用降序排序。
ps aux --sort=-vsz #按虚拟内存占用降序排序。
ps aux --sort=-start_time #按启动时间降序排序。
ps aux --sort=-time #并按CPU使用时间降序排序。
ps aux --sort=+pid #按进程ID升序排序。
自定义显示字段
ps -o:自定义输出格式,可以选择显示特定的信息字段。
[root@linux-server ~]# ps axo user,pid,command | head -5 #查看指定列前5行的进程信息
USER PID COMMAND
root 1 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 [kthreadd]
root 4 [kworker/0:0H]
root 6 [ksoftirqd/0]
查看端口lsof
lsof(list open files ),列出当前系统打开的文件,打开文件的进程,进程打开的端口
[root@linux-server ~]# yum install lsof #安装软件包
[root@linux-server ~]# lsof -i:80 #端口号,这能查看带端口的进程
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 64249 root 4u IPv6 1373628 0t0 TCP *:http (LISTEN)
#注意:端口号只有整数,范围是从0 到65535
参数解释:
FD:文件描述符,应用程序通过文件描述符识别该文件。
DEVICE:指定磁盘的名称
SIZE:文件的大小
[root@linux-server ~]# lsof -c sshd #列出某个程序进程所打开的文件信息
-c【command】 选项将会列出所有以sshd这个进程开头的程序的文件
[root@linux-server ~]# lsof -u root #列出某个用户打开的文件信息
[root@linux-server ~]# lsof -u ^root #列出除了某个用户外的被打开的文件信息
查看进程端口netstat
#查网络进程和正在监听的端口
参数详解:
-a 显示全部的进程
-u 显示UDP 协议相关的网络连接
-n 以数字的形式显示协议名称
-t 显示TCP 协议相关的网络连接
-p:显示进程的名称和pid
-l :只显示正在被监听的端口
[root@linux-server ~]# netstat -lntp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
参数解释:
Proto:表示网络连接所使用的协议,如 TCP、UDP 等。
Recv-Q:表示接收队列中等待读取的数据量。
Send-Q:表示发送队列中等待发送的数据量。
Local Address:表示本地 IP 地址和端口号,用于标识本地监听的地址。
Foreign Address:表示远程主机的 IP 地址和端口号,用于标识与本地连接的远程主机。
State:表示连接的状态,如 ESTABLISHED(已建立)、LISTEN(监听中)、TIME_WAIT(等待关闭)等。
PID/Program name:表示与连接相关联的进程的 ID 和程序名称。
[root@linux-server ~]# w #显示当前登录到系统中的用户及其进程的信息
15:03:54 up 14:36, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 Thu08 30:30m 0.00s 0.00s -bash
root pts/0 192.168.226.1 13:47 2.00s 0.06s 0.00s w
USER - 在你的 Linux 或 BSD 系统中登录的用户名称。
TTY - 当前会话的终端标识符号。
FROM - 用户的主机名或 IP 地址。
LOGIN@ - 用户登录的时间。它有时会根据你的系统设置显示日期。
IDLE - 用户与终端交互后的空闲时间。
JCPU - 该会话的所有用户进程使用的 CPU 时间。
PCPU - 该用户的进程(在WHAT 字段中提到)使用的时间。
WHAT - 当前带参数的进程。
查看端口ss
显示套接字统计信息,包括当前活动的套接字、监听套接字、已建立的连接等。
# ss -t -a -p "( sport = :80 )"
-t 选项用于只显示TCP套接字,
-a 选项用于显示所有套接字,
-l 选项用于只显示监听套接字,
-s 选项用于只显示统计信息。
( sport = :80 )根据端口号过滤显示套接字,""表示只显示本地端口号为80的套接字。
# ss -tnl ##查看当前系统上所有监听的TCP套接字。
# ss -tna ##显示当前系统上所有的TCP连接,包括正在监听的套接字和已经建立的连接。
常用端口
80 --HTTP(Hypertext Transfer Protocol)Web服务
443 --HTTPS(HTTP Secure)加密的Web服务
8080 --HTTP代理服务器的备用端口
20 --FTP的默认数据连接端口
21 --FTP的默认控制连接端口
22 --SSH远程登录
25 --SMTP(Simple Mail Transfer Protocol)邮件传输服务
53 --DNS(Domain Name System)域名解析服务
3306 --mysql数据库服务
5432 --PostgreSQL数据库服务
6379 --Redis数据库服务
9100 --打印机服务
9200/9300 --Elasticsearch搜索和分析引擎服务
27017 --MongoDB数据库服务
动态查看进程
top、htop
[root@linux-server ~]# top #动态显示信息,三秒刷新一次。
在工作中必须监控的东西 load average(平均负载)等待cpu处理的队列长度 也是个数。
1分钟 第一个数字,如0.10,当前cpu在1分钟之内平均消耗了0.10
5分钟 第二个数字,如0.16,cpu在1分钟之内平均消耗了0.16
15分钟 第三个数字,如0.12,cpu在15分钟之内平均消耗了0.12
======================
cpu耗费的时间占比:load average的三个值: 0.10, 0.16, 0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。
Load average 系统的负载情况,包括1分钟、5分钟和15分钟内的平均负载。
PID 进程标志号,是非零正整数
USER 进程所有者的用户名
PR 进程优先级别
NI 优先级别数值
VIRT 虚拟内存大小,单位kb
RES 物理内存大小,单位kb
SHR 共享内存大小
S 进程的状态,其中S休眠,R正在运行,Z僵死,N表示该进程优先值是负数
%CPU CPU使用率
%MEM 内存使用率
TIME+ 进程已运行的总时间
COMMAND 进程的命令行
top操作
负载较高时,实时监测进程的cpu使用率
[root@linux-server ~]# top
h|? 帮助
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
q 退出
z 彩色显示
W 保存
us:用户级别使用cpu
sy:系统级别使用cpu
ni: nice值
id: cpu空闲率,id越高,cpu使用率越低
wa: cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
Mem:内存
Swap:交换区
buff/cache:缓冲/缓存(即将写入磁盘的/从磁盘读取的)
htop操作
[root@linux-server ~]# htop
F1 获取功能键命令帮助
F2 设置区域二展示内容,可以设置颜色方案、列等等
F3 搜索,可以搜索command列中的信息
F4 过滤,可以过滤command列中匹配的进程
F5 按照进程树样式展示
F6 排序,根据选择的列排序
F7 设置进程优先级,减小优先级
F8 设置进程优先级,增加优先级
F9 杀死进程,需要先选中进程,然后选择需要发送的信号量
F10 退出
进程优先级 nice
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
进程控制
kill控制
语法: kill 信号 PID #信号也是进程间通信的一种方式
语法: kill [信号] PID #信号也是进程间通信的一种方式
信号:
-1 HUP 重新加载进程或者重新加载配置文件,PID不变
-9 KILL 强制杀死
-15 TERM 正常杀死(该信号默认不写)
-18 CONT 激活进程
-19 STOP 挂起进程
[root@linux-server ~]# kill -l #查看所有信号
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
案例一
给vsftpd进程发送信号1,15 vsftpd信号测试
[root@linux-server ~]# yum install -y vsftpd #安装vsftpd(Very Secure FTP)
[root@linux-server ~]# systemctl start vsftpd #启动
[root@linux-server ~]# ps aux | grep vsftpd #查看ftp进程是否启动
root 59363 0.0 0.0 53212 576 ? Ss 16:47 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@linux-server ~]# kill -1 59363 #重启ftp,如vsftpd的配置文件发生改变,需要重新加载
[root@linux-server ~]# ps aux | grep vsftpd
root 59363 0.0 0.0 53212 748 ? Ss 16:47 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@linux-server ~]# kill 59363 #正常停止ftp服务,信号为-15可以默认不写
##也使用systemctl stop vsftpd 停止服务。
[root@linux-server ~]# ps aux | grep vsftpd
root 62493 0.0 0.0 112660 968 pts/0 S+ 16:51 0:00 grep --color=auto vsftpd
进程状态解释--了解:
+:表示运行在前台的进程
S+:休眠状态
T+:暂停,挂起状态
s:父进程
案例二
给vsftpd进程发送信号-9, vsftpd信号测试
[root@linux-server ~]# systemctl start vsftpd
[root@linux-server ~]# ps aux | grep vsftpd
root 67003 0.0 0.0 53212 572 ? Ss 16:57 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 67089 0.0 0.0 112660 972 pts/0 S+ 16:57 0:00 grep --color=auto vsftpd
[root@linux-server ~]# kill -9 67003 #强制杀死ftp进程,一般用于不能正常停止的情况下
[root@linux-server ~]# ps aux | grep vsftpd
root 67190 0.0 0.0 112660 972 pts/0 S+ 16:57 0:00 grep --color=auto vsftpd
pkill控制
语法:
pkill [选项] [参数] 进程名
选项:
-o:仅向找到的最小(起始)进程号发送信号;
-n:仅向找到的最大(结束)进程号发送信号;
-P:指定父进程号发送信号;
-g:指定进程组
-t:指定开启进程的终端
-u: 指定用户
案例三
使用pkill 杀死vsftpd进程
[root@linux-server ~]# systemctl start vsftpd #启动vsftpd(Virtual FTP Server)
[root@linux-server ~]# ps -aux | grep vsftpd #输出当前vsftpd的进程信息
root 73399 0.0 0.0 53212 572 ? Ss 17:05 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 73499 0.0 0.0 112660 968 pts/0 S+ 17:05 0:00 grep --color=auto vsftpd
[root@linux-server ~]# pkill -9 vsftpd #使用pkill可以指定进程名字
[root@linux-server ~]# ps -aux | grep vsftpd
root 73643 0.0 0.0 112660 968 pts/0 S+ 17:05 0:00 grep --color=auto vsftpd
作业控制
作业控制之jobs:
作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程或者放到后台去运行,等一会儿再继续执行该进程。
实战案例
[root@linux-server~]# sleep 7000 & # & 让命令或者程序后台运行
[1] 5441
[root@linux-server ~]# sleep 8000 # ctrl+z 把程序放到后台(这方法会让程序在后台暂停)
^Z
[2]+ Stopped sleep 8000
[root@linux-server ~]# jobs #查看后台的工作号
[1]- Running sleep 7000 &
[2]+ Stopped sleep 8000
[root@linux-server ~]# bg %2 #让暂停的程序在后台运行,%是用来修饰job number,2就是job number。(程序的工作号)
[2]+ sleep 8000 &
[root@linux-server ~]# jobs
[1]- Running sleep 7000 &
[2]+ Running sleep 8000 &
[root@linux-server ~]# fg %1 #将后台的程序调到前台
sleep 7000
[root@linux-server ~]# jobs #查看当前有多少在后台运行的命令
[2]+ Running sleep 8000 &
[root@linux-server ~]# kill -9 %2 #通过kill杀死进程
[root@linux-server ~]# jobs
[2]+ Killed sleep 8000
[root@linux-server ~]# jobs #在次查看没有了
常用命令
1.查看当前CPU负载uptime
[root@linux-server ~]# uptime #top显示的第一行
17:35:01 up 16:02, 3 users, load average: 0.00, 0.02, 0.05
当前时间 已运行时间 登录用户数 系统在过去的 1 分钟、5 分钟和 15 分钟内的平均负载
2.查看内存使用
(1)free
显示系统的物理和交换内存使用情况。运行该命令时,可以看到物理内存的总量、已使用量、
可用量以及缓冲区和缓存的量。
# free -m
-m:单位MB
-g:单位GB
(2)cat /proc/meminfo:
显示内存相关的信息,包括物理内存、交换内存、缓存等。
# cat /proc/meminfo
(3)ps: 显示当前系统中正在运行的进程信息,包括每个进程的内存使用情况。
用法:
# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
或
# ps -eo pid,ppid,%mem,%cpu,cmd
PID PPID %MEM %CPU CMD
3.查看系统的版本和内核
[root@linux-server ~]# cat /etc/redhat-release #查看版本
CentOS Linux release 7.4.1708 (Core)
[root@linux-server ~]# uname -a #详细查看正在运行的内核版本
Linux linux-server 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@linux-server ~]# uname -r #查看内核版本
3.10.0-693.el7.x86_64
4.修改主机名
[root@linux-server ~]# hostnamectl set-hostname xxxx
#主机名,修改完之后断开与终端连接,然后在重新连接即可。
[root@linux-server ~]# hostname #查看主机名
5.实现服务器文件的上传下载lrzsz
# yum install -y lrzsz #安装
# rz -y #上传
# sz -y 文件 #下载
6.iostat
iostat
监控系统的I/O设备负载以及CPU利用率。提供关于磁盘活动、CPU使用率和系统活动的详细统计信息。
iostat 支持多个选项来定制输出信息,以下是一些常用的选项:
-c: 显示CPU使用率。
-d: 显示磁盘设备的I/O统计信息。
-k: 以KB为单位显示I/O统计信息。
-m: 以MB为单位显示I/O统计信息。
-t: 显示时间戳。
-x: 显示扩展的I/O统计信息。
-N: 显示设备名称而非设备号。
-p <device>: 显示特定设备的统计信息。
-n: 不显示设备名称中的分区信息。
-y: 显示空闲时间统计信息。
-g <group>: 显示属于特定组的设备统计信息。
-V: 显示版本信息。
[root@zabbix-node1 ~]# iostat
Linux 3.10.0-1160.119.1.el7.x86_64 (zabbix-node1) 08/16/2024 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.34 0.00 0.60 0.01 0.00 99.06
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.89 22.29 36.68 347247 571574
scd0 0.00 0.07 0.00 1028 0
CPU使用率
avg-cpu:
%user: 用户进程消耗的CPU时间百分比。
%nice: 通过 nice 值调整过优先级的用户进程所消耗的CPU时间百分比。
%system: 内核进程消耗的CPU时间百分比。
%iowait: 等待I/O完成的时间百分比。
%steal: 系统处于被虚拟机管理器(如 KVM、Xen 等)控制的状态下的时间百分比。
%idle: CPU空闲的时间百分比。
磁盘I/O统计
Device: 设备名称。
tps: 每秒传输次数,即每秒完成的I/O操作数。
kB_read/s: 每秒从设备读取的KB数量。
kB_wrtn/s: 每秒向设备写入的KB数量。
kB_read: 自上次报告以来从设备读取的KB总数。
kB_wrtn: 自上次报告以来向设备写入的KB总数。
[root@zabbix-node1 ~]# iostat -x
Linux 3.10.0-1160.119.1.el7.x86_64 (zabbix-node1) 08/16/2024 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.34 0.00 0.61 0.01 0.00 99.04
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.03 0.59 0.28 21.54 35.47 131.79 0.00 0.61 0.52 0.80 0.32 0.03
scd0 0.00 0.00 0.00 0.00 0.06 0.00 114.22 0.00 1.33 1.33 0.00 1.00 0.00
rrqm/s: 每秒合并的读请求。
wrqm/s: 每秒合并的写请求。
r/s: 每秒完成的读操作数。
w/s: 每秒完成的写操作数。
rkB/s: 每秒从设备读取的KB数量。
wkB/s: 每秒向设备写入的KB数量。
avgrq-sz: 平均每次I/O操作的大小(以KB为单位)。
avgqu-sz: 平均队列长度。
await: 平均每次I/O操作的等待时间(以毫秒为单位)。
r_await: 平均每次读操作的等待时间(以毫秒为单位)。
w_await: 平均每次写操作的等待时间(以毫秒为单位)。
svctm: 平均每次I/O操作的服务时间(以毫秒为单位)。
%util: I/O操作占设备时间的百分比。
本章练习
1./tmp/im 为新员工手册,要求修改文件属性,只可以查看文件内容,其它什么操作都不可以。
[root@linux-server ~]# chattr +i /tmp/im
2.chattr命令中a和i属性的区别
a append only,只允许追加数据
i immutable,不允许任何修改
3.静态查看进程有用什么命令?你知道的有几种?
ps,netstat
4.修改主机名为testpm-server
hostnamectl set-hostname testpm-server
5.如何查看服务的端口?
lsof -i:xx
6.如何查看nginx的进程是否运行?
(1)ps aux | grep nginx
(2)ps -ef | grep nginx
(3)ps -C nginx -o pid
(4)netstat -anp | grep :80
(5)lsof -i:80
7.如何查看你的操作系统的版本以及内核?
查看版本:cat /etc/redhat-release
查看内核:uname -r
8.什么是进程?
程序在操作系统中的一个执行实例,具有自己的生命周期和状态。
9.放在后台运行的程序通过什么命令可以查看到?
jobs
10.将nginx进程PID号为1142强制杀掉用什么命令?
kill -9 1142
11.请列出查看cpu负载的命令你知道的?
top/htop
uptime
ps -aux --sort -pcpu
12.load average: 0.40,0.21,0.12 分别代表什么意思?
系统在过去的 1 分钟、5 分钟和 15 分钟内的平均负载
13.请用命令查看一下httpd的PID号?
ps -ef | grep httpd