小白带你学习linux系统程序和进程管理(十四)

简介: 小白带你学习linux系统程序和进程管理(十四)

一、故障处理

1、文件系统损坏

模拟故障:

dd if=/dev/zero of=/dev/sdd1 bs=512 count=4

3d0b315a367144989b75c459abe8c51c.png

centos7下的XFS文件系统修复:

umount /dev/sdb1
xfs_repair /dev/sdb1

 

4d7257e45dd9432dab6de2f6256e7620.png


944a0d04949c4becba14918de5843263.png

centos7下的ext文件系统修复:

umount /dev/sdb1
挂载到mount  /dev/sdb1/ /mnt 挂载不上


fee073d1023643758e4bd6ab22fba5d3.png

修复输入fsck -y -t ext4 /dev/sdb1



 292bfa6a16c54bef8a7d2e60741fc3c5.png


57eed2a9222d4abda85a292cbf4301da.png

2grub引导故障

故障模拟


mv /boot/grub2/grub.cfg /grubbackup ; reboot

移动到opt目录下

15e66cf86dfc4aeeb42e48ecd185a35d.png


 输入reboot重启


a1b210fea3854f1bb9832c6257529f00.png

 输入两下tab


44f07fd900e649758985f4d2aaf4e337.png

查看模块

lsmod

卸载模块

rmmod  模块名称

加载模块

insmod  模块的绝对路径

修复(手动引导操作系统)

1grub>ls,查看磁盘分区信息,找到boot

283c1b7b079e4540b8df3b1487fc108f.png


2

grub>insmod xfs


f3195302e8e244b98bf7212a664b6539.png

grub> set root=(hd0,msdos1)   (----> 这个为你上一步中找到的boot分区)



459582a55fad4df3bec0d8106997bf7f.png


grub> linux16 /vmlinuz-xxxxx root=/dev/mapper/centos-root


a43b6dd1dc5e4253ad608241be7508d8.png


itramfs-.xxxxx.img

ce8bdfec8bef4409b5afc84807e4e21b.png


grub> boot

输入boot重新启动

 

3)将备份好的gurb文件拷贝到/boot/grub2/目录中。或者在没有备份grub的情况下:  

grub2-mkconfig --output /boot/grub2/grub.cfg 重新生成grub

744291cc251e435cbe5c7d228f9a1a3e.png


reboot 重启检测一下是否成功

ac8bcb7f3da843ee935b7b336ebcfdf2.png


3、磁盘资源耗尽

1)磁盘空间不足

清理磁盘或者添加新磁盘

2inode节点耗尽 

查看磁盘inode节点数量:df -i


66246fb6f6d243a493e3bbfd2b75c751.png

删除无用文件

3)预防磁盘资源耗尽的最好办法

进行磁盘配额

二、程序与进程的区别

程序:静态代码,存储在硬盘等介质中

进程:程序运行后在CPU及内存中运行的动态代码;父进程与子进程;

三、程序与进程的操作

1、进程概述

进程名

运行用户

PIDprocess:进程)          进程唯一标识符

运行的命令

2、进程查看命令

ps aux,静态显示正在内存中运行的进程信息

USER    PID   %CPU      %MEM    VSZ        RSS                TTY      STAT  STARTTIME  

COMMAND

用户  进程号 CPU占比  内存占比  虚拟内存  固定内存占用          连接终端  状态  开始时间   进程

运行的命令


fd6dabe02a8d486892802cb5ed9ea998.png

 状态:

Ssleep休眠进程

s:表示有很多子进程,表示父进程

R:正在工作的进程

T:已经停止的进程

Z:僵尸进程,zombie,会占用系统资源,主要占用内存资源


<    high-priority (not nice to other users)高级优先,对其他用户不友好
N    low-priority (nice to other users)(低级优先,对其他用户有利)
L    has pages locked into memory (for real-time and custom IO)(将页面锁定在内存中(用
于实时和自定义IO))
s    is a session leader   S是会话领导者
 l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)  是多线程的(使用
CLONE_THREAD,像NPTL的pthreads一样
 +    is in the foreground process group    在前台进程组中
ps -elf,属于当前登录的所有进程信息
 F    S     UID     PID    PPID     C                     PRI     NI        ADDR        SZ     WCHAN
 STIME TTY          TIME CMD
标识 状态 用户ID  进程ID  父进程ID CPU    优先权 优先权修正 内存位置 内存占比  -运行  开
始时间 终端   占用CPU时间 命令

f3d3a17be1ae4f98912974739dd2fbe6.png


pgrep ,进程筛选

选项

-o:显示找到的最小进程号

c1a72a0cd4da48b9b03a77b6141d2ef8.png


-n:显示找到的最大进程号

8fe3a122329649c5b09fa708973166b6.png


-l:显示进程名

-p:指定父进程

 -g:指定进程组

-t:指定开启的终端

-u:指定进程有效用户

案例

pgrep -l httpd -u apache

pstree 显示进程树

-a:显示完整信息

-u:显示UID

-p:显示PID

dcd6006de2b941a99dae29689eb6d276.png


top,动态显示进程信息

选项

P:根据CPU占用情况显示

M:根据内存占用显示

N:根据启动时间

q:退出

t:切换进程和cpu状态

i:忽略显示僵尸进程

k:终止一个进程

空格:强制更新

说明

top - 19:40:26 up  2:34,  5 users,  load average: 0.42, 0.22, 0.16
Tasks: 209 total,   2 running, 207 sleeping,   0 stopped,   0 zombie
%Cpu(s): 14.0 us,  3.8 sy,  0.0 ni, 82.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   997956 total,    73544 free,   732792 used,   191620 buff/cache
KiB Swap:  2097148 total,  1904892 free,   192256 used.    71360 avail Mem

f92b7da693b943f882000063a1d5b2db.png


第一行:系统当前时间;已经运行了13分钟,2个用户登录;系统1/5/15分钟之内的平均负载
第二行:Tasks(总进程数是284);1个正运行的进程;283个睡眠的进程;0个停止;0个僵尸进程

第三行:CPU(用户控件占用CPU的百分比是0.8%),内核占用CPU0.8%;0.0%ni[用户进程空

间内改变过优先级的进程占用CPU百分比];98.3%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU

时间百分比];

 第四行:Mem(内存)总大小是1.86G;闲置0.37G;0.81G使用;0.68G作为内核缓存(buffer:写入缓冲区);
第五行:Swap(交换分区)总大小1.95G;闲置1.95G; 使用0 ;其余闲置;0.87G作为读取缓存(cached:CPU刚使用的数据);


3、终止进程

Ctrl+C  #终止前台进程

f6760bd405fd457f89e447aec2e60353.png


6b451c0c29b94bf6aeaa26f74a7782ac.png

kill   进程号   #终止后台进程;-u指定用户


b76c815057ce4c28a8a96d10d81a3946.png

kill `pgrep firefox`  不关心进程号直接杀死firefox

abe7eca1f52147228083694f5686b759.png


kill  -9   进程号   #强制杀死


49a3bcb6ab48401db3f8bda733ce62bc.png

pkill    名字       #按照进程名杀死进程


03fc8374beee47c7a2ef8c798aaf6e72.png

killall  httpd     #使用进程名杀死一组进程;-l不区分大小写;-u指定杀死用户的进程

4、前台进程与后台进程

前台进程:在终端中直接运行的程序,影响当前终端的使用

 后台进程:在后端运行的程序,不影响当前终端使用

前台进程切换成后台进程:firefox &

7b13e487969b417e98cf329d4aaebfbc.png


[1]+  运行中               firefox &

0ad22ed255094bd0933daccde26d4f6f.png


jobNumber  状态    进程名  

查看切换到后台的进程信息:jobs [-l  显示PID]

 后台进程调到前台进程:fg jobNumber


9e7afa5844b743cd9be7909418285699.png

暂停前台进程:Ctrl+z


6ee8100c864b440580342afbc14ba133.png

将暂停进程直接调到后台执行:

bg jobNumber



 5da1266b3c9f42b4a9e45751a36f6f7a.png

相关文章
|
6月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
552 3
Linux系统禁用swap
|
6月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1070 3
|
5月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
379 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
660 3
Linux系统初始化脚本
|
6月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
708 1
|
6月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1209 1
|
12月前
|
Linux 数据库 Perl
【YashanDB 知识库】如何避免 yasdb 进程被 Linux OOM Killer 杀掉
本文来自YashanDB官网,探讨Linux系统中OOM Killer对数据库服务器的影响及解决方法。当内存接近耗尽时,OOM Killer会杀死占用最多内存的进程,这可能导致数据库主进程被误杀。为避免此问题,可采取两种方法:一是在OS层面关闭OOM Killer,通过修改`/etc/sysctl.conf`文件并重启生效;二是豁免数据库进程,由数据库实例用户借助`sudo`权限调整`oom_score_adj`值。这些措施有助于保护数据库进程免受系统内存管理机制的影响。
|
Linux Shell
Linux 进程前台后台切换与作业控制
进程前台/后台切换及作业控制简介: 在 Shell 中,启动的程序默认为前台进程,会占用终端直到执行完毕。例如,执行 `./shella.sh` 时,终端会被占用。为避免不便,可将命令放到后台运行,如 `./shella.sh &`,此时终端命令行立即返回,可继续输入其他命令。 常用作业控制命令: - `fg %1`:将后台作业切换到前台。 - `Ctrl + Z`:暂停前台作业并放到后台。 - `bg %1`:让暂停的后台作业继续执行。 - `kill %1`:终止后台作业。 优先级调整:
1150 5
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能