一、内存与进程
1.1 查看内存
命令:free -m
选项:-m 以mb的显示
[root@localhost ~]# free -mtotal used free shared buff/cache available
Mem: 1819 200 1184 9 435 1426
Swap: 2047 0 2047
Mem:显示的是内存的信息
- total:内存的总大小
- used:已使用的内存大小
- free:剩余内存大小
- shared:共享内存大小
- buff/cache:缓存内存大小
- available:可用的内存大小
Swap:显示交换分区的信息
1.2 进程
1.2.1 查看进程
命令:top
作用:动态方式显示系统的信息(每隔几秒刷新一次)
top - 20:17:36 up 1 day, 12 min, 6 users, load average: 0.00, 0.01, 0.05
Tasks: 113 total, 2 running, 111 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1863004 total, 1211792 free, 205460 used, 445752 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1460164 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 125608 4088 2612 S 0.0 0.2 0:15.19 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
头部信息说明:
第一行:
top - 20:17:36 up 1 day, 12 min, 6 users, load average: 0.00, 0.01, 0.05当前时间 运行时间 当前6个用户登录系统 cpu在过去1分钟、5分钟、15分钟的负载第二行:
Tasks: 113 total, 2 running, 111 sleeping, 0 stopped, 0 zombie一共有113个进程 2个进程在运行 111个正在睡眠 停止状态的进程 僵死状态的进程数第三行:
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 用户空间进程占用cpu比例 内核空间进程比例 调整nice值的进程的比例 cpu的空闲比例0.0 wa, 0.0 hi, 0.0 si,
cpu等待IO完成的时间比例(该值大,那么说明磁盘太慢,或者内存不足) 表示硬中断和软中断的比例0.0 st
cpu被偷走的时间比例第四行:
KiB Mem : 1863004 total, 1211792 free, 205460 used, 445752 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1460164 avail Mem正文信息说明
进程id 那个用户发起的 优先级 虚拟内存级 常驻内存级 共享空间所占大小 CPU百分比 内存百分比 运行时长 那个命令发起的
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 125608 4088 2612 S 0.0 0.2 0:15.19 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
平均负载:
单核cpu的话:
- 1:表示当前是满负载
- 小于1:表示还没有达到最大负载
- 大于1:表示已经超负载
双核cpu的话:
- 2:表示当前是满负载
- 小于2:表示还没有达到最大负载
- 大于2:表示已经超负载
1.2.2 显示所有进程的方法
命令:ps aux
ps -elf
[root@localhost ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCH STIME TTY TIME CMD
4 S root 1 0 0 80 0- 31402 ep_pol Mar19 ? 00:00:15 /usr/lib/systemd/systemd --switched-root --system --deserialize
1 S root 2 0 0 80 0- 0 kthrea Mar19 ? 00:00:00 [kthreadd]
1 S root 4 2 0 60 -20- 0 worker Mar19 ? 00:00:00 [kworker/0:0H]
1 S root 6 2 0 80 0- 0 smpboo Mar19 ? 00:00:00 [ksoftirqd/0]
1 S root 7 2 0 -40 - - 0 smpboo Mar19 ? 00:00:00 [migration/0]
1 S root 8 2 0 80 0- 0 rcu_gp Mar19 ? 00:00:00 [rcu_bh]
1 R root 9 2 0 80 0- 0 - Mar19 ? 00:00:04 [rcu_sched]
1 S root 10 2 0 60 -20- 0 rescue Mar19 ? 00:00:00 [lruadd-drain]
5 S root 11 2 0 -40 - - 0 smpboo Mar19 ? 00:00:00 [watchdog/0]
F:进程的标识
S:进程的状态
UID:发起进程的用户【运行这个程序的用户】
PID:进程的id
PPID:这个进程的父进程的ID
SZ:进程占用的内存大小
TTY:表示进程是终端相关进程还是无关进程
- 终端相关进程:终端一旦关闭,进程就结束了
1.2.3 两个文件
/proc/meminfo
/proc/cpuinfo
伪文件系统
/proc
/sys
特点:
- 伪文件不是真实的文件,是物理硬件设备的映射
- 伪文件是在系统开机的时候生成的,在系统关机的时候自动删除
- 伪文件可以用cat进行查看,但是不能用vi进行编辑
- 伪文件都是保存在内存中的
1.2.4 结束进程
命令:kill - 一定可用
格式:kill 信号 进程id
信号:
-9:立刻杀死进程
-15:等待用户访问结束以后,才杀死进程
案例:批量关闭httpd的进程
kill -9 `ps -elf | grep httpd | grep -v "grep" | awk -F " " '{print $4}'`
二、计划任务
2.1 简介
让Linux定时完成一个特定的操作
分类
- 一次性计划任务
- 周期性计划任务
2.2 at 计划任务
让某个时间节点,执行一个操作
格式:
at now + 3 hours 表示3小时之后执行
at now + 5 minute 表示5分钟后执行
安装at(有的版本默认已经安装,就无需再次安装)
yum install at -t
启动at
systemctl start atd
systemctl enable atd
systemctl status atd
案例:
1、创建一个计划任务,实现5分钟后自动创建一个文件,然后新建一个用户
[root@localhost home]# at now+5minat> mkdir aaaat> useradd bbbbat> <EOT>job 2 at Wed Mar 20 21:20:00 2024
注意:ctrl + d 保存退出
at -lat -c 编号
atrm 编号
2.3 周期性计划任务
可以周而复始的执行
安装组件(有的版本默认已经安装,就无需再次安装)
yum install crontabs
启动服务
systemctl start crond
systemctl enable crond
systemctl status crond
crontab的配置文件
/etc/croontab
创建计划任务
crontab -e
两部分
时间:分钟 小时 日 月 周
命令:
注意:周代表的是周几
查看计划任务
[root@localhost ~]# crontab -l
*/5 * * * * touch /home/aaa.txt # 表示每5分钟执行一次
25 4 5 * * touch /home/bbb.txt # 表示每月5号4点25分执行一次
13 7 1 10 * touch /home/ccc.txt # 表示每年10月1号7点13分执行一次
*/3 * * * 5 touch /home/ddd.txt # 表示每周五的那一天,每隔3分钟执行一次
3 7 * * 5 touch /home/eee.txt # 表示每周五7点3分执行一次
删除计划任务
crontab -e 进入后删除