一、故障处理
1、文件系统损坏
模拟故障:
dd if=/dev/zero of=/dev/sdd1 bs=512 count=4
centos7下的XFS文件系统修复:
umount /dev/sdb1 xfs_repair /dev/sdb1
centos7下的ext文件系统修复:
umount /dev/sdb1 挂载到mount /dev/sdb1/ /mnt 挂载不上
修复输入fsck -y -t ext4 /dev/sdb1
2、grub引导故障
故障模拟
mv /boot/grub2/grub.cfg /grubbackup ; reboot
移动到opt目录下
输入reboot重启
输入两下tab
查看模块
lsmod
卸载模块
rmmod 模块名称
加载模块
insmod 模块的绝对路径
修复(手动引导操作系统)
1)grub>ls,查看磁盘分区信息,找到boot区
2)
grub>insmod xfs
grub> set root=(hd0,msdos1) (----> 这个为你上一步中找到的boot分区)
grub> linux16 /vmlinuz-xxxxx root=/dev/mapper/centos-root
itramfs-.xxxxx.img
grub> boot
输入boot重新启动
3)将备份好的gurb文件拷贝到/boot/grub2/目录中。或者在没有备份grub的情况下:
grub2-mkconfig --output /boot/grub2/grub.cfg 重新生成grub
reboot 重启检测一下是否成功
3、磁盘资源耗尽
1)磁盘空间不足
清理磁盘或者添加新磁盘
2)inode节点耗尽
查看磁盘inode节点数量:df -i
删除无用文件
3)预防磁盘资源耗尽的最好办法
进行磁盘配额
二、程序与进程的区别
程序:静态代码,存储在硬盘等介质中
进程:程序运行后在CPU及内存中运行的动态代码;父进程与子进程;
三、程序与进程的操作
1、进程概述
进程名
运行用户
PID(process:进程) 进程唯一标识符
运行的命令
2、进程查看命令
ps aux,静态显示正在内存中运行的进程信息
USER PID %CPU %MEM VSZ RSS TTY STAT STARTTIME
COMMAND
用户 进程号 CPU占比 内存占比 虚拟内存 固定内存占用 连接终端 状态 开始时间 进程
运行的命令
状态:
S:sleep休眠进程
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时间 命令
pgrep ,进程筛选
选项
-o:显示找到的最小进程号
-n:显示找到的最大进程号
-l:显示进程名
-p:指定父进程
-g:指定进程组
-t:指定开启的终端
-u:指定进程有效用户
案例
pgrep -l httpd -u apache
pstree 显示进程树
-a:显示完整信息
-u:显示UID
-p:显示PID号
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
第一行:系统当前时间;已经运行了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 #终止前台进程
kill 进程号 #终止后台进程;-u指定用户
kill `pgrep firefox` 不关心进程号直接杀死firefox
kill -9 进程号 #强制杀死
pkill 名字 #按照进程名杀死进程
killall httpd #使用进程名杀死一组进程;-l不区分大小写;-u指定杀死用户的进程
4、前台进程与后台进程
前台进程:在终端中直接运行的程序,影响当前终端的使用
后台进程:在后端运行的程序,不影响当前终端使用
前台进程切换成后台进程:firefox &
[1]+ 运行中 firefox &
jobNumber 状态 进程名
查看切换到后台的进程信息:jobs [-l 显示PID]
后台进程调到前台进程:fg jobNumber
暂停前台进程:Ctrl+z
将暂停进程直接调到后台执行:
bg jobNumber