IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux基础(课内版)09(20210722笔记) -> 正文阅读

[系统运维]Linux基础(课内版)09(20210722笔记)

管理基本存储

添加分区/文件系统和持久挂载

硬盘分区方案

硬盘使用

分区 ===> 格式化文件系统 ===> 挂载

在这里插入图片描述

物理分区/逻辑(虚拟)分区

MBR分区方案

MBR:每个驱动器最多支持4个主分区,最多划分 2TB 的磁盘。
在这里插入图片描述

GPT 分区方案

GPT:每个驱动器最多支持128个分区。可以对磁盘进行 18EB 的分区。

在这里插入图片描述

给Linux添加磁盘并使用

1、给Linux添加硬盘

2、识别硬盘

3、分区

4、格式化文件系统

添加分区

借助分区编辑器程序,管理员可以对磁盘的分区进行更改,例如创建分区、 删除分区和更改分区类型。使用 PARTED 管理分区可以对 MBR 和 GPT 分 区方案执行以上操作。

parted /dev/vda print #查看 /dev/vda 的分区表 

parted /dev/vda unit s print #查看分区表,以扇区数多少表示分区大小

在这里插入图片描述

要对磁盘进行分区,首先必须写入磁盘标签。磁盘标签指示所用的分区方案。

parted /dev/vdb mklabel msdos/gpt #写入MBR/GPT磁盘标签 

mklabel命令可擦除现有的分区表,而且parted命令会使其立即生效。因此,如果磁盘 已有磁盘标签,那可能会导致数据的丢失。

添加分区

交互式添加分区:parted

非交互式添加分区:

parted /dev/vdb mkpart primary xfs 2048s 1025MiB 

parted /dev/vdc mkpart userdata xfs 2048s 1025MiB 

udevadm settle #等待系统检测新分区时,在/dev目录下创建设备文件

使用fdisk和gdisk管理分区

使用 fdisk 管理 MBR 分区

fdisk 是一个交互式的配置工具,不断的与系统进行交互实现配置。

常用命令包括:

m:获取帮助

n:添加分区

d:删除分区

p:打印分区表

w:保存配置

使用 gdisk 管理 GPT 分区

gdisk 是 fdisk 的延伸,主要用于 GPT 分区。

挂载文件系统

临时挂载文件系统

管理员可使用 mount 命令将 设备手动连接到目录位置或挂载点,具体为指定设备和挂载 点,以及可能需要的任何选项。

mount /dev/vdb1 /mnt #查看挂载/dev/vdb1到/mnt目录 

mount | grep /dev/vdb1  #使用 mount 命令查看当前挂载的 文件系统、挂载点及选项

永久挂载文件系统

通过将设备的列表添加到/etc/fstab文件中,管理员可以将设备配置为在系统启动时挂 载到挂载点。

在/etc/fstab文件中添加或删除条目后,运行 systemctl daemon-reload 进行重新加 载,使之生效。

注意:/etc/fstab中存在错误的条目可能会导致计算机无法启动。如果遇到这种情况, 需要进入救援模式进行修改。

管理交换空间

交换空间:与 Linux 内核内存管理子系统配合使用的磁盘区域。交换空间用于通过 保存不活动的内存页来补充系统 RAM。系统 RAM 与交换空间组合在一起称为虚拟内存

管理员应根据系统的内存工作负载来调整交换空间大小。

创建交换空间

① 创建文件系统类型为 linux-swap 的分区

parted /dev/vdb #创建分区,并设置 linux-swap 文件系统。

在这里插入图片描述

② 对设备进行交换签名格式化

mkswap /dev/vdb2 

mkswap 命令在设备(分区)开头写入单个数据块,而将其余部分保留为未格式化,这样 内核就可以使用它来存储内存页。

激活交换空间

管理员可以使用 swapon 命令激活已格式化的交换空间。

free或swapon --show #检查可用的交换空间 

swapon /dev/vdb1 #激活已格式化的交换空间 

swapoff /dev/vdb1 #停用交换空间,swapoff命令会将swap中的内容写会到内存中

在这里插入图片描述

持久激活交换空间

要想每次启动时,都激活交换空间,需要在/etc/fstab文件中放置一个条目。

在这里插入图片描述

在/etc/fstab文件中添加或删除条目后,运行 systemctl daemon-reload 进行重新加载,使之生效。

swapon -a命令可以激活/etc/fstab文件中列出的所有交换空间。

设置交换空间优先级

默认情况下,swap 分区优先级为-2,swapon 命令的 -p 选项可以设置,也可以通过 在/etc/fstab文件中的第三字段进行设置。使用 swapon --show 可以查看其优先级。

swap分区优先级值越大,优先级越高。当swap分区优先级相同时,内核会以轮询的方式进行写入。

在这里插入图片描述

管理逻辑卷

创建逻辑卷

LVM逻辑卷管理

将若干存储资源池化,实现灵活使用和调整

支持替换故障磁盘,提高可用性
在这里插入图片描述

步骤

在这里插入图片描述

① 准备物理设备

LVM 支持使用整块磁盘或者分区,可以使用 parted 命令以及 fdisk/gdisk 命令创建分区以便与 LVM 结合使用。要注意,分区的类型需要选择 Linux LVM。

parted 方式

正常创建分区

parted /dev/vdb mklabel msdos/gpt 

parted /dev/vdb ===> 创建分区

设置为Linux LVM类型

parted /dev/vdb set <分区编号> lvm on  

fdisk/gdisk 方式

先使用 n 选项正常创建分区,再使用t选项设置其类型:
在这里插入图片描述

② 创建物理卷

使用 pvcreate 将分区或者其他物理设备标记为物理卷。pvcreate 命令会将物理卷分成若干特定 大小的物理区块(PE)

pvcreate /dev/vdb2 /dev/vdc #将命令中的分区和磁盘标记为 pv,使用空格分隔

③ 创建卷组

使用 vgcreate 将一个或多个物理卷结合为一个卷组。vgcreate 命令由卷组名后跟一个或多个要 分配给该卷组的物理卷组成。

vgcreate  <vg name> <pv1> <pv2> <...> #划分物理卷 pv 来创建卷组

④ 创建逻辑卷

使用 lvcreate 可根据卷组中的可用物理区块(PE)创建新的逻辑卷。

lvcreate -n <lv name> -L <lv size> <vg name>   

lvcreate 命令中至少包含用于设置 lv 名称的 -n 选项,用于设置 lv 大小的 -L 选项。-L 选项使用字节作为单位,例如 700M,也可以使用 -l 选项,以物理区块(PE)数量作为单位。

注意:如果设置的 lv 大小无法完全匹配,则将补偿为物理区块大小的倍数。

⑤ 创建及挂载文件系统 m

mkfs -t <filesystem> <lv name> #使用mkfs命令创建文件系统 

mount <lv name> <dir> #临时挂载文件系统 

vim /etc/fstab #修改配置文件,永久挂载

查看LVM状态信息

查看物理卷pv状态

pvdisplay

在这里插入图片描述

查看卷组vg状态

vgdisplay

在这里插入图片描述

查看逻辑卷lv状态

lvdisplay

在这里插入图片描述

删除LVM逻辑卷

a、卸载文件系统

umount /mnt/lvm-strage 

b、删除逻辑卷

lvremove /dev/vg-01/lv01 

c、删除卷组

vgremove vg-01 

d、删除物理卷

pvremove /dev/vdb1

扩展逻辑卷

扩展和缩减卷组

扩展卷组:通过添加额外的物理卷来为卷组增加更多磁盘空间。

在这里插入图片描述

缩减卷组:将未使用的物理卷从卷组中删除。
在这里插入图片描述

扩展卷组

准备物理设备

parted /dev/vdb mkpart primary 1MiB 1025MiB # 以创建 mbr 主分区为例 

parted /dev/vdb set 3 lvm on # 设置 Linux lvm 类型

创建物理卷

pvcreate /dev/vdb3 # 创建物理卷

扩展卷组

vgextend vg01 /dev/vdb3 # 将新的物理卷添加到 vg01 中

验证可用

 vgdisplay vg01 # 检查 vg01 中的 Free PE / Size 是否增加

扩展逻辑卷和文件系统

逻辑卷的一个优势在于可以不停机情况下增加其大小,也就是扩展逻辑卷。另外,不建议缩减逻辑卷,以避免意外导致数据丢失。

验证可用空间

使用 vgdisplay 命令查看输出中的 Free PE / Size 是否有 足够空间。

vgdisplay

扩展逻辑卷

lvextend -L +300M /dev/vg01/lv01

使用 -L 选项扩展逻辑卷300M,如果不写+,将扩展为 300M;此处同样支持使用 -l 选项。

扩展文件系统

扩展逻辑卷后,遗漏文件系统的扩展是一个常见的错误。

xfs_growfs <挂载点> #扩展 xfs 文件系统 

resize2fs  #扩展 ext 文件系统 

lvextend 使用 -r 选项可以扩展多种文件系统

扩展逻辑卷和交换空间

格式化为交换空间的逻辑卷也可以进行扩展,但过程与扩展文件系统有所不同。同时, 扩展交换空间必须脱机才能进行。

验证可用空间

使用 vgdisplay 查看 空闲物理区块空间

停用交换空间

swapoff   #停用交换空间

扩展逻辑卷

vextend -L +extents <dev>

格式化

mkswap <dev>

激活交换空间

swapon <dev>

总结图

在这里插入图片描述

计划将来的任务

计划延迟的用户作业

管理员(或普通用户)不时地要在将来某个设定点运行一个或一组命令。例如,计划要向老板发送电子邮件,或要在十分钟后重置防火墙等等。这些计划的命令通常称为计划任务 或作业。

at软件包

假如要让特定任务运行一次,需要用到at程序。

at的守护进程为atd,它有一组命令行工具可与守护进程(at、atq等等)进行交互。

at可以把任务放到/var/spool/at目录中,指定运行的时间,即可在指定的时间运行。

为了避免复杂命令的书写错误,可以先在脚本文件中编写,再通过输入重定向输入到at程序 中执行。简单命令可以在终端窗口中直接输入,通过ctrl+D来完成输入

at 命令

在这里插入图片描述

【例1】2分钟后,新建/test目录,并在目录下新建一个1.txt文件。
在这里插入图片描述

命令写在脚本里,计划任务执行脚本

【例2】在凌晨2点的时候,重启计算机。

在这里插入图片描述

检查和管理作业

作业的配置文件保存在/var/spool/at目录下。文件包括了环境变量(前面)以及计划 执行的命令(后面)。

at -c <JOBNUMBER>#可以查看作业的环境变量。

在这里插入图片描述

查看目前等待执行的任务:atq

atq #查看目前等待执行的任务

在这里插入图片描述

按照优先级执行作业

删除作业

atrm <JOURNUMBER>

在这里插入图片描述

注意:非特权用户只能查看和控制自己的作业;root可以查看和管理所有作业

计划周期性用户作业

cron简介

Red Hat Enterprise Linux系统附带了特别针对周期性作业的crond守护进程 ,且默认开机启动。

crond是由多个配置文件和系统范围内的文件控制的,每个用户对应一个配置文件。

这些配置文件使用户和管理员拥有各自的控制权 ,可以控制应执行周期性作业的确切时间。

crond守护进程由cronie软件包提供。
在这里插入图片描述

用户周期性作业的配置文件

/var/spool/cron/

某个用户执行crontab -e命令完成周期性作业的编辑后,相关的配置会写入到该目录下,以用户名命名的文件中。该文件在第一次配置周期性作业时创建,后续的配置将追加写入到该文件。

需要删除周期性作业时,可以通过编辑配置文件删除相应任务的行即可;如果直接删除文件将删除用户所有的周期任务。

普通用户仅可以设置自己的周期性用户作业,特权用户root可以使用crontab命令的-u 选项设置其他用户的周期性作业。

【示例】

crontab -e -u student

作业配置文件格式

各个作业都包含六个字段,这些字段包括(按顺序):
在这里插入图片描述

时间书写格式

* 表示 无关重要/始终

数字可用于指定分钟数或小时数、日期或者工作日。(对于工作日,0表示星期日,1 表示星期 一,依此类推。7也表示星期日。)

x-y表示范围,x到y (含)

x,y表示列表。列表也可以包含范围,例如“分钟”列中的5,10-13,17表示作业应当在 每小时5分钟、10分钟、11分钟、12分钟、13分钟和17分钟时运行

*/x表示x的时间间隔,例如分钟列中的 */7表示每七分钟运行一次作业

此外,可以使用三个字母的英文缩写来表示月份和工作日,例如Jan、Feb以及Tue、Wed等

【例1】在每年1月1日上午9点执行命令echo “happy new year”

0 9 1 1 * echo "happy new year" 

【例2】在七月的每周五,上午9点至下午5点间,每5分钟执行命令echo “hello”

*/5 9-16 * Jul Fri echo "hello"  

注意:9-16代表9点至16点59分,也就是上午9点至下午5点

【例3】每个工作日上午9点,执行shell脚本(test.sh)

vim file1 ===> 0 9 * * 1-5 sh test.sh 

crontab file1  

通过crontab命令运行一个单独写好的任务文件,该文件遵守同样的语法格式

计划周期性系统作业

系统管理员通常需要运行周期性作业,这时就不应使用用户账户运行作业。也就是说, 不要使用crontab命令来安排这些作业,而是使用系统范围的crontab文件。

系统cron作业存储位置/etc/crontab和/etc/cron.d/* 以及/etc/cron.*
在这里插入图片描述

01 自己写,自己放

/etc/crontab:直接在该文件中定义,但在进行软件包更新时,现有内 容可能会被覆盖。

/etc/cron.d/*:自定义crontab文件后放入/etc/cron.d目录(推荐)

02 放到对应目录

将自定义的脚本(无需按照crontab书写)放入以下目录中

/etc/cron.hourly/*:每小时运行的脚本的存储库

/etc/cron.daily/*:每天运行的脚本的存储库

/etc/cron.weekly/*:每周运行的脚本的存储库

/etc/cron.monthly/*:每月运行的脚本的存储库

执行规则存储

/etc/cron.hourly/* ===> /etc/cron.d/0hourly

在/etc/cron.d目录下保存着配置文件0hourly定义了/etc/cron.hourly目录下文件的周 期性执行的规则。
在这里插入图片描述

etc/cron.daily/* 、/etc/cron.weekly/* 、/etc/cron.monthly/*

在过去,曾使用anacron独立服务来实现周期性计划,使用文件/etc/anacrontab定义 以上目录的周期执行计划。在RHEL 7以后,使用crond服务来解析这个文件。
在这里插入图片描述

此外,会在/var/spool/anacron目录下,保存上次作业的时间戳。

配置文件及服务一览

在这里插入图片描述

SYSTEMD定时器

随着systemd的出现,一种新的调度功能被推出——systemd定时器单元。systemd 定时器单元可以激活另一个不同类型的单元,例如服务单元。其时间记录会保存在系 统日志中。

示例:sysstat软件包提供了一个sysstat-collect.timer的systemd定时单元。其中的参 数OnCalendar=*:00/10表示定时器单元将每10分钟激活一次相应的单元(sysstat-collect.service)。

更改定时器单元配置文件后,执行以下命令:

systemctl deamon-reload #重新加载配置 

systemctl enable --now .timer #激活定时器单元

管理SELinux安全性

SELinux

Security Enhanced Linux (SELinux)是一个额外的系统安全层,由美国国家安全局 (NSA) 开发,主要目标是防止已遭泄露的系统服务访问用户数据。

标准的用户/组/其他权限安全模型,这种基于用户和组的模型称为自主访问控制 (Discretionary Access Control, DAC)

SELinux 提供另一层安全,它基于对象并由更加复杂的规则控制,称为强制访问控制 (Mandatory Access Control, MAC)

SELinux 通过专门的安全标签(SELinux上下文)来确定某个进程能否访问文件、目录或端口。除非显示设置了授予访问权限,否则将默认不允许策略 任何交互。

SELinux安全的基本概念

SELinux 安全标签(SELinux 上下文)

用户、角色、类型和敏感度,默认 策略类型会根据类型上下文来制定策略规则,类型上下文通常以“_t”结尾。

在这里插入图片描述

SELinux 策略规则

不同的规则组成了 SELinux 整体的策略。部分规则可 以按照需求启用或禁用。规则是模块化、可扩展的。在安装新的应用程序时, 应用程序可通过添加新的模块来添加规则。用户也可以手动地增减规则

三种模式

强制 enforcing:SELinux 强制执行访问控制规则。(默认模式)

许可 permissive:SELinux 不强制执行访问控制规则,仅记录违反规则的警告。

禁用 disabled:SELinux 完全关闭。

更改SELinux模式

设置默认 SELinux 模式

修改 /etc/selinux/config 文件,修改后重启生效。系统在启动时会读取文件中的配置。

查看当前 SELinux 模式

getenforce 

在这里插入图片描述

更改当前 SELinux 模式

setenforce [ Enforcing | Permissive | 1 | 0 ]

1启动,0关闭

调查和解决SELinux问题

在 SELinux 阻止访问服务器上的文件时,可以参考以下指南:

检查配置是否正确,如当 Web 服务器尝试访问 /home 中的文件时,如果用户并未发 布 Web 内容,则可能表明服务遭入侵。如果已授予访问权限,则需要采取其他步骤来 解决此问题。

最常见的 SELinux 问题是上下文不正确。在大多数情况下,运行 restorecon 将会更正 此问题。以这种方式更正问题对系统剩余部分的安全性具有非常小的影响。

对于严苛限制性访问的另一个补救措施可以是调整布尔值。例如,ftpd_anon_write 布尔值控制匿名 FTP 用户能否上传文件。如果希望允许匿名 FTP 用户能够上传文件到 服务器,则必须启用此布尔值。

SELinux策略可能存在阻止合法访问的漏洞。不过 SELinux 技术已经比较成熟,这种情 况极少发生。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 11:14:16  更:2021-07-23 11:16:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 10:45:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计