Day14 RAID&进程管理&日志&systemctl(Service03)

简介:

一、RAID

1.1 概述

RAID(Redundant Arrays of Inexpensive Disks)廉价冗余磁盘阵列
通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘

1.2 分类

1.2.1 raid0

条带模式
至少两块磁盘,将同一个文档分散存放在两个磁盘,提高了存储效率
但是没有可靠性

1.2.2 raid1

镜像模式
至少两块磁盘,同一个文档复制多份,存放在多个磁盘,无存储效率提高
可靠性最高

1.2.3 raid3

RAID3更加适合应用于那些写入操作较少,读取操作较多的应用环境,如数据库和web服务器等。与RAID0相比,RAID3在读写速度方面相对较慢。使用的容错算法和分块大小决定RAID使用的应用场合,在通常情况下,RAID3比较适合大文件类型且安全性要求较高的应用,如视频编辑、硬盘播出机、大型数据库等。

1.2.4 raid5

相当于raid0与raid1的折衷方案
至少三块磁盘,有一块磁盘存放数据的校验值,能够在一块磁盘损坏丢失数据之后通过校验值和部分源数据来推算出丢失的数据
同时只能坏一块磁盘
存储效率有部分提升
也有部分可靠性

1.2.5 raid6

相当于扩展的raid5
至少四块硬盘,至少有两块磁盘存放数据的校验值
同时只能坏两块磁盘

1.2.6 raid01 or raid10

整合raid0、raid1的优势,并行存取提高效率,镜像写入提高可靠性

1.2.7 raid各级别特点对比

对比项 RAID0 RAID1 RAID10 RAID5 RAID6
磁盘数 ≧2 ≧2 ≧4 ≧3 ≧4
存储利用率 100% ≦50% ≦50% n-1/n n-2/n
校验盘 无 无 无 有 有
容错性 无 有 有 有 有
IO性能 高 低 中 较高 较高

二、进程管理

2.1 概念

程序:静态的代码,占用的是硬盘空间,不会耗费CPU,也不会耗费内存空间
进程(PID):动态的代码,占用的是CPU、内存的空间
父进程:为了完成某些功能,需要启动多个子进程。当父进程被杀死的时候,会把自己生成的子进程全部杀死,直到子进程全部杀死之后,父进程才会被杀
子进程:由父进程生成的进程
僵尸进程:要杀死僵尸进程,只杀它本身是没用的,要杀掉它的父进程才行

2.2 pstree

查看进程树。在rhel7里面,systemd是所有进程的父进程

2.2.1 pstree -a

查看进程树,-a表示显示进程调用的的完整命令行

2.2.2 pstree -p

查看进程树,-p表示显示进程的PID

2.3 ps

PS (Process Snapshot)进程快照
选项是否有'-'有不同的含义
选项是否大小写有不同的含义

2.3.1 ps aux

列出正在运行的所有进程,进程显示的很详细
a 显示当前终端所有进程
u 以用户格式输出
x 当前用户在所有终端下的进程

2.3.2 ps -elf

列出正在运行的所有进程,对进程的状态,PPID显示的很清楚
-e 显示系统内所有进程
-l 以长格式输出信息
-f 表示文件之间的关系,包括最完整的进程信息

2.4 top

交互式进程管理工具

users
load average
P 根据%Cpu排名
M 根据%Mem排名
k 杀死指定进程
q 退出top

2.5 pgrep

检索进程

2.5.1 pgrep -l

输出进程名

2.5.2 pgrep -U username

检索指定用户的进程名

2.5.3 pgrep -t

检索指定终端的进程名

2.5.4 pgrep -x

精确匹配指定的进程名

三、控制进程

3.1 ctrl+z

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

3.2 &

在命令行末尾添加"&"符号,把命令行放到后台运行,不占用当前终端

3.3 jobs -l

查看后台运行的任务情况,-l表示显示PID

3.4 fg 序号

把后台任务恢复到前台运行,缺省序号为最近1个任务

3.5 bg 序号

把前台任务放到后台运行,缺省序号为最近1个任务
expr $RANDOM % 10 产生10以下的随机数

四、杀死进程

4.1 kill [-9] PID

根据PID杀死进程,-9为强制

4.2 killall [-9] 进程名

杀死同名的所有进程,-9为强制

4.3 pkill [-9] -u username

把username的进程全部杀死,-9为强制。即强制踢出用户

五、日志管理

5.1 概述

日志就是系统和程序的“日记本”
-记录系统、程序运行中发生的各种事件
-通过查看日志,了解和排除故障
-信息安全控制的“依据”

5.2 rsyslog

rhel5使用的是syslog系统服务
rhel6、rhel7都使用了rsyslog系统服务。它统一记录内核及系统日志,主要记录事件发生的时间、主机、进程、内容,

5.2.1常见的系统日志文件如下:

日志文件 主要用途
/var/log/messages 记录内核消息、各种服务的公共消息
/var/log/dmesg 记录系统启动过程的各种消息
/var/log/cron 记录与cron计划任务相关的消息
/var/log/maillog 记录邮件收发相关的消息
/var/log/secure 记录与访问限制相关的安全消息

5.2.2 常见的用户日志文件如下:

日志文件 主要用途
/var/log/lastlog 记录最近的用户登录事件
/var/log/wtmp 记录成功的用户登录/注销事件
/var/log/btmp 记录失败的用户登录事件
/var/log/utmp 记录当前登录的每个用户的相关信息
用户日志文件无法通过cat来查看,需要通过专用分析工具

5.3 日志查看命令

5.3.1 tailf

与tail -f等价,可以实时跟踪日志消息

5.3.2 users

显示正在登录的用户

5.3.3 who

显示正在登录的用户、登录时间、登录IP、终端类型
pts:伪字符终端
tty:纯字符终端

5.3.4 w

显示最详细,除了who出来的信息,还有CPU、空闲时间、正在使用的命令等

5.3.5 last

最近登录成功的用户信息,-n表示显示n条

5.3.6 lastb -n

最近登录失败的用户信息,-n表示显示n条

5.3.7 第三方日志分析工具

AWStats
ELK
Webalizer
Webadmin系统管理套件

5.4 日志消息的优先级

级别 字段 含义
0 KERN_EMERG system is unusable
1 KERN_ALERT action must be taken immediately
2 KERN_CRIT critical conditions
3 KERN_ERR error conditions
4 KERN_WARNING warning conditions
5 KERN_NOTICE normal but significant condition
6 KERN_INFO informational
7 KERN_DEBUG debug-level messages

5.5 journalctl工具

rhel7才有的工具,提取由systemd-journal服务搜集的日志,主要包括内核/系统日志、服务日志

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

查看指定服务相关的日志消息

5.5.2 journalctl -n 消息条数

查看n条日志消息

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

根据时间段查看日志消息

六、systemd介绍

6.1 init程序的作用

Linux系统和服务管理器,是内核引导之后加载的第一个初始化进程(PID=1),负责掌控整个linux的的运行/资源组合
rhel7:systemd
rhel6:upstart,事件触发
rhel5:system v,顺序加载

6.2 systemd

一个更高效的系统和服务管理器,开机服务并行启动,各系统服务之间精确依赖

6.2.1 /etc/systemd/system

systemd的配置目录

6.2.2 /lib/systemd/system

systemd的服务目录

6.3 systemctl介绍

systemd的管理工具

6.3.1 unit配置单元分类

service:后台独立服务
target:一套配置单元的组合,类似传统“运行级别”
socket:套接字,类似于xinetd管理的临时任务
device:对应udev规则标记的某个设备
mount、automount:挂载点、触发挂载点

6.3.2 systemctl -t target --all

multi-user.target 字符模式
graphical.target 图形模式

6.3.3 systemctl get-defult

查询开机所处的运行模式

6.3.4 systemctl set default graphical.target

设置开机所处的运行级别为图形模式。实质就是为/usr/lib/systemd/system/graphical.target创建软链接,名字为/etc/systemd/system/default.target

6.3.5 systemctl isolate graphical.target

临时切换到指定运行模式

6.3.6 systemctl list-unit-files [-t service|target]

列出已定义的配置文件及自启状态

6.3.7 systemctl start|stop|restart 服务名称

启动、停止和重启服务

6.3.8 systemctl status|is-active 服务名称

查看服务状态

6.3.9 systemctl enable|is-enabled 服务名称

设置服务开机自启动

七、实体机添加虚拟网卡

7.1 /etc/libvirt/qemu/networks/

实体机的虚拟网卡配置文件路径

7.2 添加虚拟网卡

virt-manager
选择虚拟机,点“连接详情”,创建新的虚拟网络,禁用DHCP、隔离的虚拟网络



本文转自 goldwinner 51CTO博客,原文链接:http://blog.51cto.com/355665/2068785,如需转载请自行联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
存储 JSON 运维
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
49 0
|
5月前
|
流计算
110 Storm集群的进程及日志熟悉
110 Storm集群的进程及日志熟悉
35 0
|
安全 Python
解决 Django 多进程下,logging 记录日志错乱问题
之前写过一篇文章 Django 中如何优雅的记录日志,本以为代码上线之后,就可以愉快的看日志,通过日志来分析问题了,但现实总是跟想象不同,两个异常现象纷纷挥起大手,啪啪地打在我的脸上。
568 0
|
Python .NET 开发框架
python多进程检查端口并写日志
版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.
864 0
|
机器学习/深度学习 JSON 监控
23【在线日志分析】之改造CDH的HDFS的NN,DN进程,日志输出为json格式
1.登录nn机器,进入最新序号的namenode配置文件夹,查看当前的nn的log4j配置 [root@sht-sgmhadoopnn-01 ~]# cd /var/run/cloudera-scm-agent/process/ [root@sht-sgmhadoopnn-01 process]# ls -lrt .
1279 0
|
Python
Python多进程记录日志
  用gevent(或封装了gevent的gunicore)启动python进程,会出现多个独立进程同时写一个日志文件, 可以观察到有日志部分丢失:一个进程日志没写完,另一个进程把日志覆盖在同一行的后面;有些日志甚至完全丢失。
1265 0
|
24天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
77 1
|
25天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
78 1
|
29天前
|
SQL 关系型数据库 MySQL
MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复
对于MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复。二进制日志是MySQL中记录所有数据库更改操作的日志文件。要进行时间点恢复,您需要执行以下步骤: 1. 确保MySQL配置文件中启用了二进制日志功能。在配置文件(通常是my.cnf或my.ini)中找到以下行,并确保没有被注释掉: Copy code log_bin = /path/to/binary/log/file 2. 在需要进行恢复的时间点之前创建一个数据库备份。这将作为恢复的基准。 3. 找到您要恢复到的时间点的二进制日志文件和位置。可以通过执行以下命令来查看当前的二进制日志文件和位