目录
-a | 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等 |
-p | 显示PID |
-T- | 不显示线程thread,默认显示线程 |
-u | 显示用户切换 |
-H pid | 高亮显示指定进程及其前辈进程 |
-c 字符串 | 只列出以字符串开头的进程打开的文件。 |
+d 目录名 | 列出某个目录中所有被进程调用的文件。 |
-u 用户名 | 只列出某个用户的进程打开的文件。 |
-p pid | 列出某个 PID 进程打开的文件。 |
格式:iostat? 选项? 时间间隔? 次数
-c | 显示CPU使用情况 |
-d | 显示磁盘使用情况 |
-N | 显示磁盘阵列(LVM) 信息 |
-n | 显示NFS 使用情况 |
-k | 以 KB 为单位显示 |
-m | 以 M 为单位显示 |
-t | 报告每秒向终端读取和写入的字符数和CPU的信息 |
-V | 显示版本信息 |
-x | 显示详细信息 |
-p | 显示磁盘和分区的情况 |
-fs?? ?-f:显示从启动到目前为止,系统复制(fork)的程序数,此信息是从 /proc/stat 中的 processes 字段中取得的。 -s:将从启动到目前为止,由一些事件导致的内存变化情况列表说明。
-S 单位?? ?令输出的数据显示单位,例如用 K/M 取代 bytes 的容量。
-d?? ?列出硬盘有关读写总量的统计表。
-p 分区设备文件名?? ?查看硬盘分区的读写情况。
字段 | 含义 |
---|---|
procs | 进程信息字段: -r:等待运行的进程数,数量越大,系统越繁忙。 -b:不可被唤醒的进程数量,数量越大,系统越繁忙。 |
memory | 内存信息字段: -swpd:虚拟内存的使用情况,单位为 KB。 -free:空闲的内存容量,单位为 KB。-buff:缓冲的内存容量,单位为 KB。-cache:缓存的内存容量,单位为 KB。 |
swap | 交换分区信息字段: -si:从磁盘中交换到内存中数据的数量,单位为 KB。 -so:从内存中交换到磁盘中数据的数量,单位为 KB。这两个数越大,表明数据需要经常在磁盘和内存之间进行交换,系统性能越差。 |
io | 磁盘读/写信息字段: -bi:从块设备中读入的数据的总量,单位是块。 -bo:写到块设备的数据的总量,单位是块。这两个数越大,代表系统的 I/O 越繁忙。 |
system | 系统信息字段: -in:每秒被中断的进程次数。 -cs:每秒进行的事件切换次数。这两个数越大,代表系统与接口设备的通信越繁忙。 |
cpu | CPU信息字段: -us:非内核进程消耗 CPU 运算时间的百分比。 -sy:内核进程消耗 CPU 运算时间的百分比。 -id:空闲 CPU 的百分比。 -wa:等待 I/O 所消耗的 CPU 百分比。 -st:被虚拟机所盗用的 CPU 百分比 |
top
free
top
ps aux
vmstat
df是查看剩余
lsblk是查看磁盘分区
vmstat
iostat
iftop
lsof -i :80 占用端口号是80的进程
vmstat 1 3每隔1秒刷新3次
free -m 就是以m为单位查看内存
echo 3 > /proc/sys/vm/drop-caches
yum dstat -y
①前台运行:影响当前终端的操作
②后台运行:不影响当前终端操作
放入后台运行? ? 命令后直接加&(并行提高效率)
jobs可以看到后台运行的命令列表
把命令从后台拉回前台
将当前进程挂起,即调入后台并停止执行
-l? 显示pid号
查看处于后台的任务列表
将后台进程恢复到前台运行,可指定任务序号
用于终止指定名称相关的所有进程
-9就是强制终止
格式:kill pid号
信号编号 | 信号名 | 含义 |
---|---|---|
0 | EXIT | 程序退出时收到该信息。 |
1 | HUP | 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。 |
2 | INT | 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。 |
3 | QUIT | 退出。 |
9 | KILL | 杀死进程,即强制结束进程。 |
11 | SEGV | 段错误。 |
15 | TERM | 正常结束进程,是 kill 命令的默认信号。 |
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
①一次性: at +时间? ctrl d 提交? ? ?atq可以查看任务列表
(atrm 任务序列号 删除)
②周期性: crontab -e 编辑计划任务? ?-e -u 就是指定用户
* * * * * 命令或脚本文件
#分 时 日 月 周 命令或脚本文件
项目 | 含义 | 范围 |
---|---|---|
第一个"*" | 一小时当中的第几分钟(minute) | 0~59 |
第二个"*" | 一天当中的第几小时(hour) | 0~23 |
第三个"*" | 一个月当中的第几天(day) | 1~31 |
第四个"*" | 一年当中的第几个月(month) | 1~12 |
第五个"*" | 一周当中的星期几(week) | 0~7(0和7都代表星期日) |
特殊符号 | 含义 |
---|---|
*(星号) | 代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思。 |
,(逗号) | 代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。 |
-(中杠) | 代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。 |
/(正斜线) | 代表每隔多久执行一次。比如"*/10命令",代表每隔 10 分钟就执行一次命令。 |
6 个选项都不能为空,必须填写。如果不确定,则使用“*”代表任意时间。
crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。
在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。
在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。
30 2 * * * /bin/cp -a /etc/ /data/etc`date +‘%F_%T’` ?有问题 ?执行不了
是因为%在系统中与在Linux中所表达的意思不同,所以需要加一个反斜杠\就可以正常使用了。
30 2 * * * /bin/cp -a /etc/ /data/etc`date +‘\%F_\%T’`? 就可以正常执行了。
①cpu? top w
②内存? ?free? ?top
③硬盘剩余? df
④硬盘读写? iostat
⑤网络带宽? iftop
①关闭不必要的开机自启
②禁止使用超级管理员
③使用国内yum源
④内核调优? (开启路由转发功能)(tcp链接数)
⑤关闭核心防护