RAID磁盘阵列

廉价冗余磁盘阵列RAID

– Redundant Arrays of Inexpensive Disks

– 通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘

– 阵列的价值:提升I/O效率、硬件级别的数据冗余

– 不同RAID级别的功能、特性各不相同


RAID 0,条带模式(至少要有两块磁盘)

– 同一个文档分散存放在不同磁盘

– 并行写入以提高效率

没有提供冗余或错误修复能力
优点:性能最佳

缺点:可靠性不高,任何一块磁盘损毁了,会导致整个磁盘文件所有数据丢失无法读取


RAID 1,镜像模式(至少要有两块磁盘)

– 一个文档复制成多份,分别写入不同磁盘

– 多份拷贝提高可靠性,效率无提升

优点:数据备份,可靠性提升

缺点:效率无提升


RAID5,高性价比模式(至少要有三块磁盘)

– 相当于RAID0和RAID1的折中方案

– 需要至少一块磁盘的容量来存放校验数据



RAID6,高性价比/可靠模式(至少要有四块磁盘)

– 相当于扩展的RAID5阵列,提供2份独立校验方案

– 需要至少两块磁盘的容量来存放校验数据


RAID 0+1/RAID 1+0(至少要有四块磁盘)

– 整合RAID 0、RAID 1的优势

– 并行存取提高效率、镜像写入提高可靠性



RAID阵列实现方式:

    软RAID:由操作系统来管理阵列

    -  主板 ---->磁盘---->操作系统---->RAID软件---->数据

    硬RAID:由RAID控制卡管理阵列

    – 主板 ---->阵列卡---->磁盘----> 操作系统---->数据


------------------------------------------------------------------------------------------------------------------------------------------

进程管理


     程序:静态的代码,占用硬盘的空间


     进程:动态的代码,占用内存、CPU的空间


              父进程/子进程

              进程的标识:PID


杀死父进程可以连带其下面的所有子进程一起杀掉

       


 查看进程

pstree — Processes Tree

– 格式:pstree [选项] [PID或用户名]


常用命令选项

– -a:显示完整的命令行

– -p:列出对应PID编号


  systemd:所有进程的父进程

n  

真机上重新开一个svr7虚拟机

创建lisi用户

切换到lisi用户  su - lisi

[root@svr7 ~]# pstree


[root@svr7 ~]# pstree  lisi     

bash───vim          #显示lisi正在进入vim文本编辑

[root@svr7 ~]# pstree -a lisi

bash

  └─vim /opt/24.txt

[root@svr7 ~]# pstree -p  lisi

bash(20356)───vim(20387)

[root@svr7 ~]# pstree -ap  lisi

bash,20356

  └─vim,20387 1.txt

-------------------------------------------------------------------------------------------------------------------------------------------


ps aux 操作

– 列出正在运行的所有进程

bsd格式: UID, PID, PPID, C, STIME, TTY, TIME, CMD


ps -elf 操作

– 列出正在运行的所有进程

标准格式: USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND


[root@svr7 ~]# ps aux | wc -l

131

[root@svr7 ~]# ps -elf | wc -l

131

[root@svr7 ~]# ps aux


[root@svr7 ~]# ps -elf



进程动态排名

top 交互式工具

– 格式: top [-d 刷新秒数] [-U 用户名]


[root@svr7 ~]# top -d 1        #每隔一秒刷新

   输入  大写的P  按CPU排序 

   输入  大写的M  按内存排序 

   输入  q 退出 



------------------------------------------------------------------------------------------------------------------------------------------------

检索进程

pgrep — Process Grep

  – 用途:pgrep [选项]... 查询条件

常用命令选项

– -l:输出进程名,而不仅仅是 PID

– -U:检索指定用户的进程

– -t:检索指定终端的进程

– -x:精确匹配完整的进程名


[root@svr7 ~]# pstree -ap lisi

bash,22636

  └─vim,22669 1.txt

[root@svr7 ~]# pgrep -lU lisi

22636 bash

22669 vim


[root@svr7 ~]# pgrep -l crond

[root@svr7 ~]# pgrep -l sshd

[root@svr7 ~]# pgrep -l log


----------------------------------------------------------------------------------------------------------------------------------------

 进程的前后台调度

  后台启动

     – 在命令行末尾添加“&”符号,不占用当前终端


Ctrl + z 组合键

– 挂起当前进程(暂停并转入后台)

jobs 命令

– 查看后台任务列表

fg 命令

– 将后台任务恢复到前台运行

bg 命令

– 激活后台被挂起的任务



-----------------------------------------------------------------------------------------------------------------------------------------


[root@svr7 ~]# sleep 800 &           #正在运行放入后台

[1] 23304

[root@svr7 ~]# jobs


[root@svr7 ~]# jobs -l             #查看后台进程信息,并输出PID


[root@svr7 ~]# sleep 700            #按Ctrl+z暂停放入后台

^Z

[2]+  已停止               sleep 700

[root@svr7 ~]# jobs -l             

[1]- 20164 运行中               sleep 800 &

[2]+ 20173 停止                  sleep 700

[root@svr7 ~]# bg 2             #将后台暂停的进程,继续运行

[2]+ sleep 700 &

[root@svr7 ~]# fg 2             #将后台的进程,恢复到前台

[root@svr7 ~]# fg 1



------------------------------------------------------------------------------------------------------------------------------------------------


 请书写Shell脚本:

   

     用户输入一个10以内的整数

     计算机随机产生一个10以内的整数

     如果 两个整数相同,则输出“恭喜您,中奖了”

     如果 两个整数不相同,则输出“恭喜您,谢谢回顾”


  #!/bin/bash

   read   -p   '请输入一个10以内的整数:'    num1

   num2=$(expr $RANDOM  % 10)       #RANDOM:随机的一个数; “% 10”:比10小的余数

   if [  $num1  -eq  $num2  ];then

         echo 恭喜您,中奖了

      else

         echo 恭喜您,谢谢回顾

         echo 正确的数字为$num2

   fi



------------------------------------------------------------------------------------------------------------------------------------------------


杀死进程

干掉进程的不同方法

  – Ctrl+c 组合键,中断当前命令程序

  – kill [-9] PID... 

  – killall [-9] 进程名...

  – pkill 查找条件



[root@svr7 /]# sleep 800 &

[root@svr7 /]# sleep 800 &

[root@svr7 /]# sleep 800 &


[root@svr7 /]# jobs -l


[root@svr7 /]# kill   301127

[root@svr7 /]# jobs -l


[root@svr7 /]# killall sleep

[root@svr7 /]# jobs -l


  强制踢出一个用户:

[root@svr7 /]# killall -9 -u lisi



------------------------------------------------------------------------------------------------------------------------------------------------

日志的功能

系统和程序的“日记本”

– 记录系统、程序运行中发生的各种事件

– 通过查看日志,了解及排除故障

– 信息安全控制的“依据”


常见的日志文件

日志文件

/var/log/messages  记录内核消息、各种服务的公共消息

/var/log/dmesg     记录系统启动过程的各种消息

/var/log/cron      记录与cron计划任务相关的消息

/var/log/maillog   记录邮件收发相关的消息

/var/log/secure    记录与访问限制相关的安全消息



   实时跟踪新增日志消息

        tailf(tail -f)


用户登录分析

users、who、w 命令

  – 查看已登录的用户信息,详细度不同

 

last、lastb 命令

  – 查看最近登录成功/失败的用户信息


[root@svr7 /]# users


[root@svr7 /]# who

[root@svr7 /]# w


[root@svr7 /]# last  -2

[root@svr7 /]# lastb  -2


----------------------------------------------------------------------------------------------------------------------------------------------

日志消息优先级:

0  EMERG(紧急)会导致主机系统不可用的情况

1  ALERT(警告)必须马上采取措施解决的问题

2  CRIT(严重)比较严重的情况

3  ERR(错误)        运行出现错误

4  WARNING(提醒) 可能会影响系统功能的事件

5  NOTICE(注意)不会影响系统但值得注意

6  INFO(信息)一般信息

7  DEBUG(调试)程序或系统调试信息等

---------------------------------------------------------------------------------------------------------------------------------------------


使用journalctl工具

提取由 systemd-journal 服务搜集的日志

– 主要包括内核/系统日志、服务日志

常见用法

– journalctl | grep 关键词

– journalctl -u 服务名   [-p 优先级]

– journalctl -n 消息条数

– journalctl --since="yyyy-mm-dd HH:MM:SS" 

                    --until="yyyy-mm-dd HH:MM:SS"

[root@svr7 /]# journalctl  --since="9:00"   --until="9:30" 


[root@svr7 /]# yum -y install httpd

[root@svr7 /]# systemctl restart  httpd

[root@svr7 /]# journalctl  -u  httpd   


[root@svr7 /]# journalctl  -n  10


-----------------------------------------------------------------------------------------------------------------------------------------------

systemctl控制


systemd

一个更高效的系统&服务管理器

 – 开机服务并行启动,各系统服务间的精确依赖

 – 配置目录:/etc/systemd/system/

 – 服务目录:/lib/systemd/system/


 – 主要管理工具:systemctl



控制服务状态

– systemctl  start|stop|restart   服务名...


查看服务的运行状态

– systemctl status|is-active 服务名...


配置开机自启

查看服务是否自启

– systemctl is-enabled 服务名...

设置服务是否开机自启

– systemctl enable|disable 服务名...


[root@svr7 /]# systemctl  status crond

[root@svr7 /]# systemctl  is-active crond

[root@svr7 /]# systemctl  restart crond


[root@svr7 /]# systemctl  stop crond

[root@svr7 /]# systemctl  status crond

[root@svr7 /]# systemctl  is-active crond


[root@svr7 /]# systemctl is-enabled crond


管理运行级别(运行模式)

     字符模式:multi-user.target

     图形模式:graphical.target


 查看默认的运行模式

 [root@svr7 /]# systemctl get-default 


 设置默认的运行模式

 [root@svr7 /]# systemctl set-default graphical.target 


 [root@svr7 /]# systemctl get-default 


 [root@svr7 /]# reboot

 

  当前立即进入相应模式

 [root@svr7 /]# systemctl isolate  multi-user.target


 [root@svr7 /]# systemctl isolate  graphical.target