【Linux新手篇】day5

day5

top 命令 动态显示进程信息

free -m free -h 查看内存情况

echo 3 > /proc/sys/vm/drop_caches 释放缓存

  • >往下翻页
  • < 往上翻页
  • M 按内存排序
  • P 按cpu排序
  • q 退出

第1行:系统信息- 系统时间

- 系统运行时间:系统启动到现在的运行时间
- 负载平均值:系统1分钟、5分钟和15分钟的负载平均值,用于判断系统CPU利用率和性能。

第2行:进程信息

- 总进程数:当前系统中的所有进程数量之和
- 正在运行进程数:当前分配了CPU时间并正在运行的进程数
- 睡眠进程数:等待某事件发生而暂停运行的进程数
- 停止进程数:已停止运行并准备退出的进程数
- 僵死进程数:已终止但父进程还未回收的进程数

第三行:显示不同模式下所占cpu时间百分比,top后按数字1这一行转换为按照内核显示,几核就显示几行,从0开始

us, user: 运行(未调整优先级的) 用户进程的CPU时间,用户态
sy,system: 运行内核进程的CPU时间,内核态
ni,niced:运行已调整优先级的用户进程的CPU时间
wa,IO wait: 用于等待IO完成的CPU时间
id,cpu空闲的百分比
hi:处理硬件中断的CPU时间
si: 处理软件中断的CPU时间
st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。
可以使用’t’命令切换显示。

第4行:内存使用信息

- 内存总量:系统内存总大小
- 空闲内存:当前空闲且未使用的内存大小
- 使用内存:已被进程使用的内存大小
- 缓存内存:用于文件系统缓存的内存大小
- 交换空间:可用的交换分区空间大小

操作系统需要的两种cpu的状:

  • 用户态(user mode) 运行用户程序
  • 内核态 (kernel mode) 运行操作系统程序,操作硬件

查看端口的2个命令:

  • yum -y install net-tools
  • netstat -tnlp 查看本机监听tcp连接的端口

- t:显示TCP连接
- u:显示UDP连接
- n:显示网络地址而不是主机名
- l:显示监听连接
- p:显示连接对应的程序名

  • ss -tnlp 查看本机tcp或者udp或者开放端口

- t:显示TCP连接
- u:显示UDP连接
- n:显示网络地址而不是主机名
- l:显示监听连接
- p:显示连接对应的进程(进程名或进程ID)

  • lsof -i:22 这条命令的意思是:列出当前系统中打开着端口 22 的进程信息。
  • 查看端口的命令ss 和netstat -tnlp有什么区别? 谁快原理对比,ss快。因为 netstat遍历/proc下面每个pid的目录ss直接读取/proc/net统计信息,ss 直接读取/proc/net统计信息,所以ss执行消耗资源时间比netstat少很多

进程信息

平均负载

平均负载是指单位时间内,系统中处于可运行状态和不可中断状态的平均进程数。
简单来说, 平均负载即单位时间的活跃进程数

平均负载和CPU使用率区分:
平均负载是指单位时间内,系统中处于可运行状态和不可中断状态的平均进程数,它不仅包
含正在使用cpu的进程,还包含等待cpu的进程及等待io的进程; 而 CPU 使用率,是单位时间内 CPU 繁忙情况的统计

僵尸进程

僵尸进程的危害?
将导致系统没有可用的进程号而导致系统不能创建进程。所以我们应该避免僵尸进程。

僵尸进程产生的根本原因?
即子进程结束后,父进程还在继续运行,子进程就会成为僵尸进程。

僵尸进程通过ps命令显示为状态码Z(zombie)。我们可以使用ps aux | grep zombie查看系统中的僵尸进程。

孤儿进程

孤儿进程(orphan process)是指其父进程结束,但它自身还在运行的进程。

在Linux中,当一个进程启动后,其父进程的PID会被记录在其数据结构中。如果父进程结束,其子进程将成为孤儿进

程。孤儿进程会被init进程(PID为1)回收,成为init进程的子进程,不会占用机器资源。

查看本机某个端口有没有开启,例如端口是22

netstat -tunlp | grep 22

这个命令会检查本机所有的TCP和UDP端口,并过滤出22端口的连接

ss -tunlp | grep 22

这个命令的作用类似于netstat,也是查看网络连接和过滤22端口,可以用来判断22端口是否开启。

lsof -i:22

这个命令会直接列出打开22端口的相关进程,如果有输出则表示22端口开启,没有输出则表示22端口没有被打开。

需要安装的命令lsof,net-tools

lsof命令

yum -y install lsof

lsof -i:xx

lsof命令可以列出系统中打开的文件、目录、网络连接等信息,输出详细的文件相关信息,如文件描述符、进程ID、用户ID、打开的文件路径等。

lsof 的常用参数有

-i <条件>:列出符合条件的进程打开的文件,比如lsof -i:22列出打开端口22的进程
-p <进程号>:列出指定进程号进程打开的文件

net-tools命令

yum -y install net-tools

net-tools 是一组基本的网络管理工具软件包,包含常用的网络管理命令。

执行这个命令后,系统会自动安装 net-tools 软件包,这会带来:

- /sbin/ifconfig 命令:查看和配置网络接口
- /sbin/route 命令:查看和修改路由表
- /sbin/netstat 命令:打印网络连接,路由表,接口统计等网络信息
- /usr/bin/nameif 命令:为网络接口命名

补充内容

sort -t":" -k3 -n /etc/passwd -r 这个命令的功能是:
对 /etc/passwd 文件中的记录进行排序,根据第 3 个字段(用户 ID)进行数字排序,并以相反顺序排序。

-t":" 参数指定分隔符为冒号 : 。因为 /etc/passwd 文件中使用冒号分隔不同字段。
-k3 参数表示根据第 3 个字段进行排序。
-n 参数表示以数字排序。
/etc/passwd 表示要排序的文件路径。
-r 参数表示以相反顺序排序,也就是从大到小排序。

sort -t":" -k3 -n /etc/passwd -r 的功能是:

可以将系统用户按照用户 ID 的大小进行排序,输出结果将是用户 ID 最大的用户排在最前面。


ps -ef 命令多一个ppid

PID和PPID之间代表着进程间的父子关系。

当一个进程产生子进程时:

- 子进程会继承父进程的PPID,作为其自己的PPID。

- 子进程会获得一个新的PID,用于唯一标识该子进程。

- 父进程的PID保持不变。


last命令

用于显示用户登录历史记录。它可以显示所有的用户登录信息,包括登录用户名、终端名称、登录时间、上次登录时间、登录ip地址等信息。


window向Linux传文件方式

yum -y install lrzsz-0.12.20-36.el7.x86_64

rz

killall 和pkill功能是一样的

课堂练习

服务器被攻击会产生什么现象?

  1. cpu和内存的使用率特别的高。 100%
  2. 服务器登录卡顿,执行命令有延迟
  3. 服务器带宽会出现被占满的情况
  4. 如果是跑着应用服务,用户使用起来会感觉非常卡顿。
  5. 并且容易出现页面访问不到的问题。
  6. 如果服务器有大量不同ip地址登录,莫名的账号添加,可疑的进程出现

被黑客登陆到机器了,你怎么做?

last  查看谁曾经登陆过服务器
回顾下历史命令,看看坏蛋执行了什么?(history)
vim ~/.bash_history   ls -a(显示隐藏文件)
如果被删了,遇到高手了,仔细检查机器
检查哪些进程在消耗CPU mem(找出高的),--sort\
检查网络连接
此时不要去打草惊蛇,T掉坏蛋。
马上进行安全加固
例如修改SSH 端口及禁止root远程登录。禁止坏蛋的代理ip登录,
pkill -u  kill -9

禁止root远程登录: 添加一个普通用户并且提权

中了挖矿门罗币病毒或者其他挖矿病毒?

top/ps aux --sort -%cpu##抓出占用cpu使用率最高的进程
lsof -p PID这个进程都打开了哪些文件? /定位病毒目录
rm -rf病毒文件路径
kil -9 PID/pkil  病毒名称

课后作业

1 请将/etc/passwd 文件第三列数字按从小到大,然后从大到小排列

  • sort -t":" k3 -n /etc/passwd -r

2 显示出占用机器cpu使用率和内存最高的命令。 两条

  • top后然后P
  • ps aux --sort -%cpu(mem) | head -2 | grep -v USER

3 查看端口和进程的几个命令

  • ss
  • netstat
  • lsof

4 找出进程占用打开的文件命令

  • lsof -p pid

5 修改ssh的默认端口为2000. 并且登录成功后,还原成22端口登录

vi /etc/ssh/sshd-config找到#Port 22,修改为Port 2000,然后systemctl restart sshd

防火墙打开2000端口,本地远程工具设置成2000.

6 vmstat 是干嘛的?

vmstat命令用于监控系统虚拟内存的使用情况。它可以显示有关进程、内存、ENO、CPU活动及I/O的信息。

7 说一说服务器被入侵后会有什么症状

  1. cpu和内存的使用率特别的高。 100%
  2. 服务器登录卡顿,执行命令有延迟
  3. 服务器带宽会出现被占满的情况
  4. 如果是跑着应用服务,用户使用起来会感觉非常卡顿,并且容易出现页面访问不到的问题。

8 服务器被入侵后怎么做?

使用last命令查看历史登陆记录,禁用可疑的IP

history命令查看入侵者进行的操作

使用ps -aux | grep sshd检查是否同时还有可以用户在线,如果有使用pkill -u 用户名,踢掉入侵者

检查消耗CPU和内存高的进程进行关闭

修改远程登陆端口号

禁用root用户远程登陆,设置普通用户并提权

9 服务器遭受过什么攻击? 怎么处理?

门罗币病毒,把它干掉了。

10 拒绝代理登录你的服务器

在云服务后台设置黑名单,禁用可疑ip

11中了门罗币病毒怎么处理?

使用ps aux --sort -%cpu | head -5找到占用cpu最高的程序

使用lsof -p cpu使用最高的pid,找到这个进程的地址,删除掉。

然后kill -9 pid关闭这个进程。

12 说一说top吧

13 什么命令可以杀掉服务的全部进程,说出两个

pkill,killall

14 ss 和netstat -tnlp有什么区别

ss运行速度更为快一些,ss是直接查看/porc/net文件,而netstat会遍历/porc/目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值