一、semanage命令
semanage命令 – 查询与修改安全上下文
semanage命令来自英文词组“SELinux manage”的缩写,其功能是用于查询与修改安全上下文。semanage的功能类似于chcon命令,它们都可以用于设置文件的SELinux安全上下文策略,而semanage命令功能更强大一些,还能够对系统端口、进程等SELinux域策略进行查询和修改,因此更推荐使用。
*设置过后需要使用restorecon命令让新设置的安全上下文值立即生效。
语法格式:semanage [参数] [对象]
-a | 增加 |
-d | 删除 |
-l | 查询 |
-m | 修改 |
对指定目录下文件添加新的SELinux安全上下文值
[root@node1 ~]# semanage fcontext -m -t httpd_sys_content_t /var/www/html/file1
查询指定服务所对应的SELinux域允许端口列表
[root@node1 ~]# semanage fcontext -l
对指定服务所对应的SELinux域允许端口列表添加新的值:
[root@node1 ~]# semanage port -a -t http_port_t -p tcp 82
restorecon恢复文件安全上下文
restorecon命令来自英文词组“restore config”的缩写,其功能是用于恢复文件安全上下文。安全上下文是SELinux安全子系统中重要的安全控制策略,在Linux系统中一切都是文件,而SELinux安全子系统中则一切皆对象,所有的文件、系统端口和进程都具备安全上下文策略。
语法格式:restorecon [参数] 文件或目录名
常用参数:
-R | 递归处理所有子文件 |
-v | 显示执行过程详细信息 |
参考示例
[root@node1 ~]# restorecon -Rv /var/www/html
对指定的文件进行恢复操作,并显示过程信息:
[root@linuxcool ~]# restorecon -v /Dir/File.txt
对指定的目录进行恢复操作:
[root@linuxcool ~]# restorecon -R /Dir
firewall-cmd命令 – 防火墙策略管理工具
firewall-cmd命令的功能是管理防火墙策略,是firewalld服务的配置工具。使用firewall-cmd命令修改的防火墙策略会立即生效,但重启后失效,因此在使用时推荐加上permanent参数。
语法格式:firewall-cmd 参数 对象
参数 | 含义 |
---|---|
–add-service | 设置允许的服务 |
–add-port | 设置允许的端口 |
–permanent | 将策略写入永久生效表 |
–reload | 立即加载永久生效策略,不重启服务 |
3. 调试SELinux
- 非标准****端口 82 上运行的 Web 服务器在提供内容时遇到问题。根据需要调试并解决问题,使其满足以下条件:
- 系统上的 Web 服务器能够提供 /var/www/html 中所有现有的 HTML ⽂件(注:不要删除或以其他方式改动现有的⽂件内容)
- Web 服务器在端口 82 上提供此内容 Web 服务器在系统启动时自动启动
- 确保SELinux机制运行在Enforcing模式
[root@node1 ~]# yum provides "*/semanage"
[root@node1 ~]# yum -y install policycoreutils-python-utils
[root@node1 ~]# semanage fcontext -m -t httpd_sys_content_t /var/www/html/file1
[root@node1 ~]# semanage port -a -t http_port_t -p tcp 82
[root@node1 ~]# restorecon -Rv /var/www/html
# 也可以使用man semanage port,然后/EXAMPLE
[root@node1 ~]# firewall-cmd --permanent --add-service=http
[root@node1 ~]# firewall-cmd --permanent --add-port=82/tcp
[root@node1 ~]# firewall-cmd --reload
[root@node1 ~]# systemctl restart httpd
[root@node1 ~]# systemctl enable --now httpd
# 验证,出现源码即正确(必做操作)
[root@node1 ~]# curl http://node1.domain250.example.com:82/file1
[root@node1 ~]# curl http://node1.domain250.example.com:82/file2
[root@node1 ~]# curl http://node1.domain250.example.com:82/file3
***至于为什么只需要修改File1,因为只有File1的SELinux的上下文与另外两个不一致,可以通过ll -Z查看
4、创建用户帐户
创建下列用户、组和组成员资格:
- 名为 sysmgrs 的组
- 用户 natasha ,作为次要组从属于 sysmgrs
- 用户 harry ,作为次要组还从属于 sysmgrs
- 用户 sarah ,无权访问系统上的 交互式 shell 且不是 sysmgrs 的成员
- natasha 、 harry 和 sarah 的密码应当都是 flectrag
[root@node1 ~]# groupadd sysmgrs
[root@node1 ~]# useradd -G sysmgrs natasha
[root@node1 ~]# useradd -G sysmgrs harry
[root@node1 ~]# useradd -s /bin/false sarah
[root@node1 ~]# echo flectrag |passwd --stdin natasha
[root@node1 ~]# echo flectrag |passwd --stdin harry
[root@node1 ~]# echo flectrag |passwd --stdin sarah
5、配置 cron 作业
以用户 harry 身份,每隔1分钟运行执行/usr/bin/echo hello
以用户 harry 身份,每天14:23分执行/usr/bin/echo hello
#cron总计有5个表达式,也就是5个*
从左到右,分别代表:分、时、日、月、周
如果是每隔2分钟,例如:
*/2 * * * *
其他同理,考试正常替换即可
[root@node1 ~]# systemctl status crond #查看状态
[root@node1 ~]# systemctl enable crond #设置开机自启
[root@node1 ~]# crontab -e -u harry #写入计划任务
*/1 * * * * /usr/bin/echo hello
23 14 * * * /usr/bin/echo hello
# 检查
[root@node1 ~]# crontab -l -u harry
二、systemctl命令 – 管理系统服务
systemctl 参数 动作 服务名
常用参数:
-a | 显示所有单位 | -q | 静默执行模式 |
-f | 覆盖任何冲突的符号链接 | -r | 显示本地容器的单位 |
-H | 设置要连接的主机名 | -s | 设置要发送的进程信号 |
-M | 设置要连接的容器名 | -t | 设置单元类型 |
-n | 设置要显示的日志行数 | –help | 显示帮助信息 |
-o | 设置要显示的日志格式 | –version | 显示版本信息 |
常用动作
start | 启动服务 | disable | 取消服务开机自启 |
stop | 停止服务 | status | 查看服务状态 |
restart | 重启服务 | list | 显示所有已启动服务 |
enable | 设置服务开机自启 |
三、隐藏权限
chmod 2770,前面2是隐藏权限是sgid,代表给目录设置rwx rwxs - - -权限,
隐藏权限:SUID(4)、SGID(2)、SBIT(1)
rws(1、所有者)rws(2、所属组)rwt(3、其他用户)
1:即使不是文件所有者也可以暂时拥有文件所有者的权利
2、在拥有这个属性的目录内创建的东西,所属组都属于这个目录的所属组,不属于创建人本身。
3、在拥有这个属性的目录内创建的东西,除了root和创建者本身,谁都不能删
在chmod时,隐藏权限写在第一位。
6、创建协作****目录
创建具有以下特征的协作⽬录 /home/managers :
- /home/managers 的组⽤权是 sysmgrs
- 目录应当可被 sysmgrs 的成员读取、写⼊和访问,但任何其他用户不具这些权限。(当然,root 用户有权访问系统上的所有⽂件和目录)
- /home/managers 中创建的⽂件⾃动将组所有权设置到 sysmgrs 组
[root@node1 ~]# mkdir /home/managers
[root@node1 ~]# chgrp sysmgrs /home/managers
[root@node1 ~]# chmod 2770 /home/managers
# 检查
[root@node1 ~]# ll -Z /home
四、NTP
NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC(世界统一时间),再配合各个时区的偏移调整就能实现精准同步对时功能。在Linux系统中,该NTP协议由运行在用户空间中的守护程序实现。
配置文件
/etc/chrony.conf
# 配置NTP服务器 server 0.centos.pool.ntp.org iburst
7、配置 NTP
- 配置您的系统,使其成为 materials.example.com 的 NTP 客户端。(注: materials.example.com 是 classroom.example.com 的 DNS 别名)
[root@node1 ~]# yum -y install chrony #如果没有安装,就安装一下
[root@node1 ~]# vim /etc/chrony.conf
server materials.example.com iburst
[root@node1 ~]# systemctl restart chronyd
[root@node1 ~]# systemctl enable chronyd
# 检查
[root@node1 ~]# date -s "1982-1-1"
[root@node1 ~]# systemctl restart chronyd
# 隔3-5秒执行,太快了时间不会同步
[root@node1 ~]# date
五、自动挂载autofs
描述(DESCRIPTION)
当机器启动自动挂载器时, autofs(8) 脚本就会查寻 auto.master 这个主映射文件。文件中的每行分别指明,一个挂载点以及与对应的需要被挂载的文件系统。通过key来控制对其它映射文件的读取。
格式(FORMAT)
这个文件分为三个区域,以空格或制表符分隔。以“#”开头的行代表注释。第一块区域定义了mount point 。第二块定义了与mount point相关的映射文件,这一区域的内容以这种形式 maptype:mapname 出现, maptype 是系统支持的映射类型中的一种 (file, program, yp, nisplus, hesiod, userdir, ldap), mapname 是映射文件的文件名。第三块区域是可选的,它包含了其它你想使用的其它选项。这些选项可以叠加,这一点跟 SunOS中自动挂载器(automounter)的执行方式不同。
有关第三块区域中具体的可用选项,以及非主映射文件的格式可以看一下 autofs(5).
范例(EXAMPLE)
/home /etc/auto.home
/misc /etc/auto.misc
/mnt yp:mnt.map
主映射文件生成了三个挂载点 /home, /misc, 以及 /mnt。 所有对 /home 的访问请求将被发送至 /etc/auto.home 映射文件做进一步的处理。所有对 /misc 的访问请求将被发送至 /etc/auto.misc 映射文件做进一步的处理,而所有对 /mnt 的访问请求将会查寻NIS上的 mnt.map 映射文件。
8、配置 autofs
配置 autofs ,以按照如下所述自动挂载远程用户的主目录:
- materials.example.com ( 172.25.254.254 ) NFS导出 /rhome 到您的系统。此文件系统包含为用户 remoteuser1 预配置的主目录
- remoteuser1 的主目录是 materials.example.com:/rhome/remoteuser1
- remoteuser1 的主目录应自动挂载到本地 /rhome 下的 /rhome/remoteuser1
- 主目录必须可供其用户 写⼊
- remoteuser1 的密码是 flectrag
# 暂时记做法,环境暂时没做出来
[root@node1 ~]# yum -y install nfs-utils
[root@node1 ~]# yum -y install autofs
**auto.master的/rhome /etc/auto.rhome这一行,/rhome后面是一个空格,不要用tab或者打多空格
[root@node1 ~]# vim /etc/auto.master
/rhome /etc/auto.rhome
[root@node1 ~]# vim /etc/auto.rhome
remoteuser1 -rw materials.example.com:/rhome/remoteuser1
[root@node1 ~]# systemctl enable --now autofs #设置开机自启并现在启动
# 检查
[root@node1 ~]# ll /rhome/
[root@node1 ~]# ssh remoteuser1@localhost
remoteuser1@localhost\'s password: `flectrag`
$ pwd
/rhome/remoteuser1
$ touch my.file
$ mount | grep rhome
...
materials.example.com:/rhome/remoteuser1 on /rhome/remoteuser1 type nfs4
(`rw`,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,r
etrans=2,sec=sys,clientaddr=172.25.250.100,local_lock=none,addr=172.25.254.254)
六、find命令
find命令 – 根据路径和条件搜索指定文件
语法格式:find 路径 条件 文件名
常用参数:
-name | 匹配文件名 | -nouser | 匹配无所属主的文件 |
-perm | 匹配文件权限 | -nogroup | 匹配无所属组的文件 |
-user | 匹配文件所属主 | -newer | 匹配比指定文件更新的文件 |
-group | 匹配文件所属组 | -type | 匹配文件类型 |
-mtime | 匹配最后修改文件内容时间 | -size | 匹配文件大小 |
-exec…… {}; | 进一步处理搜索结果 |
9. 配置用户帐户
- 配置用户 manalo ,其用户 ID 为 3533 。此用户的密码应当为 flectrag 。
[root@node1 ~]# useradd -u 3533 manalo #创建用户指定uid为3533
[root@node1 ~]# echo flectrag | passwd --stdin manalo #设置密码
tail -1 /etc/passwd #查看
10、查找文件
- 查找属于 jacques 用户所属文件,并拷贝到/root/findfiles 目录
[root@node1 ~]# mkdir /root/findfiles
[root@node1 ~]# find / -user jacques
[root@node1 ~]# find / -user jacques -exec cp -a {} /root/findfiles \; #查找所属主和组是jacques的文件
# 检查
[root@node1 ~]# ll /root/findfiles/
11、查找字符串
- 查找文件 /usr/share/xml/iso-codes/iso_639_3.xml 中包含字符串ng 的所有行。将所有这些行的副本按原始顺序放在文件 /root/list 中。
- /root/list 不得包含空行且所有行必须是 /usr/share/xml/iso-codes/iso_639_3.xml 中原始行的确切副本。
[root@node1 ~]# grep ng /usr/share/xml/iso-codes/iso_639_3.xml
[root@node1 ~]# grep ng /usr/share/xml/iso-codes/iso_639_3.xml > /root/list #查找并重定向写入
# 检查
[root@node1 ~]# cat /root/list
12、创建存档
- 创建一个名为/root/backup.tar.bz2的tar存档,其应包含/usr/local的tar存档,其应包含/usr/local的内容。该tar存档使用bzip2进行压缩。
***此题练习建议最后做,因为文件数量多一个或者少一个都会导致评分错误,考试不用
[root@node1 ~]# yum -y install bzip2
[root@node1 ~]# tar -cvjf /root/backup.tar.bz2 /usr/local
# 另外一个格式tar
[root@node1 ~]# tar -cvzf /root/backup.tar.gz /usr/local
# 验证
[root@node1 ~]# file /root/backup.tar.bz
七、podman
Podman 是一个开源的容器运行时项目,可在大多数 Linux 平台上使用。Podman 提供与 Docker 非常相似的功能。正如前面提到的那样,它不需要在你的系统上运行任何守护进程,并且它也可以在没有 root 权限的情况下运行。
Podman 可以管理和运行任何符合 OCI(Open Container Initiative)规范的容器和容器镜像。Podman 提供了一个与 Docker 兼容的命令行前端来管理 Docker 镜像。
podman容器管理工具
容器
podman run 创建并启动容器
podman start #启动容器
podman ps #查看容器
podman stop #终止容器
podman restart #重启容器
podman attach #进入容器
镜像
podman images #列出镜像
podman build #构建镜像
podman run #运行镜像
14 将容器配置为服务
1 ## 准备相关的映射目录
sudo mkdir /opt/{file,progress}
ll -h /opt
sudo chown wallah.wallah /opt/{file,progress} # 修改文件属主和属组
2 ## 创建systemd服务文件
mkdir -p ~/.config/systemd/user # 在.config目录下创建systemd/use,目录
cd ~/.config/systemd/user # 进入创建好的user目录
3 ## 启动容器并映射目录
podman run -d --name ascii2pdf -v /opt/file:/dir1:Z -v /opt/progress:/dir2:Z pdf
#列出运行的容器
podman ps -a
# 将容器ascii2pdf加入到ascii2pdf的管理范围
podman generate systemd -n ascii2pdf -f --new
#在 podman 中,通过下面的命令,将某个容器加入到 systemd 的管理范围
podman generate systemd
--name 容器的名字
--files|-f 会直接在当前目录生成文件
--new sto终止容器后,直接删除容器,没有new的话,执行podman ps -a的时候还会看到容器
ls #查看user目录下的文件
podman stop ascii2pdf
podman rm ascii2pdf
podman ps -a
systemctl --user daemon-reload # 重新加载 systemd 程序的配置文件,生效
4 ## 启用并启动container-ascii2pdf服务
systemctl --user enable --now container-ascii2pdf
systemctl --user status container-ascii2pdf
podman ps
5 ## 确保wallah用户的服务在系统启动时启动
loginctl enable-linger $USER # 用户退出登录后,属于该用户的后台服务会被终止。启用用户的逗留状态
loginctl show-user wallah # 列出当前用户的登录信息
6 ## 检查,测试容器是否开机⾃启(必做操作)
[wallah@node1 ~]# exit
[root@node1 ~]# reboot
[root@node1 ~]# ssh wallah@node1
[wallah@node1 ~]# podman ps
# 查看镜像
[root@localhost ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/httpd latest ea28e1b82f31 11 days ago 148 MB
# 列出运行的容器
[root@localhost ~]# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0492e405b9ec docker.io/library/httpd:latest httpd-foreground About a minute ago U
15 添加sudo免密操作
允许 sysmgrs 组成员sudo时不需要密码
[root@node1 ~]# visudo
...
# %wheel ALL=(ALL) NOPASSWD: ALL
%sysmgrs ALL=(ALL) NOPASSWD: ALL
# 检查(必做操作)
[root@node1 ~]# su - natasha
[natasha@node1 ~]# sudo cat /etc/shadow
八、附加题
16. 创建共享目录
创建具有以下特点的共用目录:
- /home/test 的所有组是admins
- 此目录能被admins 组的成员读取、写入和访问,除root 外其他用户没有这些权限
- 在此目录下创建的文件,其组的所有权自动设置为admins 组
# 创建组:
[root@node1 ~]# groupadd admins
# 创建目录:
[root@node1 ~]# mkdir /home/test
# 设置组:
[root@node1 ~]# chgrp admins /home/test
# 设置权限:
[root@node1 ~]# chmod 2770 /home/test
# 验证
[root@node1 ~]# ls -ld /home/test
drwxrws--- root admins /home/test
17. 设置默认密码策略
- 为新创建的用户设置密码策略,要求创建用户时,密码默认25天后过期
/etc/login.defs
18. 创建系统用于监控的脚本
- 创建一个名为systeminfo 的脚本
- 该脚本放置在/usr/local/bin 下
- 该脚本用于获取当前系统进程的信息,要求按照顺序输出进程的所有者,进程的PID, 进程消耗的虚拟内存,实际内存,以及CPU的百分比,并其中以cpu 的百分比进行排序,消耗CPU 最多的进程在最后显示
[root@node1 ~]# vim /usr/local/bin/systeminfo
#!/bin/bash
ps -xao user,pid,vsz,rss,%cpu --sort=pcpu
sort写法:
/#!/bin/bash
ps -xao user,pid,vsz,rss,%cpu|sort -fnk 5
验证
[root@node1 ~]# chmod +x /usr/local/bin/systeminfo
[root@node1 ~]# systeminfo
ps -xao解释:
x 显示没有控制终端的进程,同时显示各个命令的具体路径
a 显示一个终端的所有进程,除了会话引线
o 用户自定义格式
19. 创建查找文件的的脚本
创建脚本
- 创建一个名为myresearch的脚本
- 该脚本放置在/usr/local/bin下
- 该脚本用来查找/usr下所有下雨10M且具有修改组ID权限的文件,将这些文件放置于/root/myfiles下
mkdir /root/myfiles
vim /usr/local/bin/myresearch
#!/bin/bash
find /usr -type f -and -size -10M -and -perm -2000 -exec cp -a {} /root/myfiles \;
:wq
chmod +x /usr/local/bin/myresearch
bash /usr/local/bin/myresearch
ll -h /root/myfiles
脚本说明:
(#!/bin/bash):"#!"是一个约定的标记,用来告诉系统该用什么编译器执行这个脚本,/bin/bash:也就是说使用默认Shell 。
在这里需要用到for循环对查找到的GID(组id)进行遍历处理。
(awk -F':' '{print $3}' /etc/group):"awk"用来对文本进行分割处理;"-F"指定一个分隔符,":"使用:(引号)来分隔文本内容;"{print $3}":执行打印语句,打印出
第三列的内容。
20、设置用户默认创建文件UMASK
- 用户natasha默认创建文件权限为r–r–r–默认创建的目录为r-xr-xr-x
# su - natasha
把umask写进用户家目录下的bashrc
echo 'umask 222'>>.bashrc
source .bashrc
命令说明
umask用于控制用户的默认创建权限 c
umask 第一位是特殊权限默认为0加不加都行,没需求只用输三位,第二位属主权限,第三位组权限,第四位其他人权限
21、配置一个应用
- 配置一个应用rhcsa
- 这个应用以 natasha 身份运行时,会显示一个字符串This is a rhcsa
su - natasha
vim .bashrc
alias rhcsa='ehco This is a rhcsa'
source .bashrc
rhcsa
九、配置node2
22. 设置 root 密码
- 将 node2 的 root 密码设置为 flectrag 。您需要获得系统访问权限才能进行此操作
点了重启按钮后,一直按字母e键,进去救援模式,在linux行的最后写上rw rd.break 然后按ctrl+x
# chroot /sysroot
# echo flectrag | passwd --stdin root
# touch /.autorelabel
# sync
# exit
# reboot
23、配置您的系统以使用默认存储库
- YUM 存储库已可以从
- http://content/rhel9.0/x86_64/dvd/BaseOS
- http://content/rhel9.0/x86_64/dvd/AppStream
- 使用配置您的系统,以将这些位置用作默认存储库
方法一:
[root@node2 ~]# scp root@node1:/etc/yum.repos.d/rhcsa.repo /etc/yum.repos.d/
方法二:
[root@node2 ~]# vim /etc/yum.repos.d/rhcsa.repo
[Base]
name=Base
baseurl=http://content/rhel9.0/x86_64/dvd/BaseOS
enabled=1
gpgcheck=no
[App]
name=App
baseurl=http://content/rhel9.0/x86_64/dvd/AppStream
enabled=1
gpgcheck=no
# 检查
[root@node2 ~]# yum repoinfo
[root@node2 ~]# yum -y install ftp
**如果考试是DNF存储库,命令前部分更换为dnf即可
[root@node2 ~]# dnf -y install vsftpd
十、lvm逻辑卷
24. 调整逻辑卷大小
-
将逻辑卷 vo 及其文件系统的大小调整到 230 MiB。确保文件系统内容保持不变。注:分区大小很少与请求的大小完全相同,因此可以接受范围为 213MiB到 243 MiB 的大小
做题步骤 1.查看lv大小 2.扩大lv大小到230M 3.blkid显示块设备信息 (“block ID”功能是用于显示块设备信息。blkid命令能够查看Linux系统中全部的块设备信息,也就是我们俗称的硬盘或光盘设备,并可以依据块设备名称、文件系统类型、LABEL、UUID等项目进行信息检索。) 4.resize2fs命令 – 同步文件系统容量到内核 (resize2fs命令来自英文词组resize to filesystem的缩写,其功能是同步文件系统容量到内核。如对EXT3、EXT4、XFS等设备卷容量进行了调整,则需要使用resize2fs命令同步信息到系统内核。) 5.检查 (df命令:显示系统上磁盘空间的使用量情况 -h:以更易读的方式显示)
25. 添加交换分区
-
向您的系统添加⼀个额外的交换分区 512MiB 。交换分区应在系统 启动时自动挂载 。不要删除或以任何方式改动系统上的任何现有交换分区。
#做题步骤 1.lsblk命令 – 查看系统的磁盘使用情况 语法格式:lsblk 参数 lsblk命令来自英文词组list block devices的缩写,其功能是查看系统的磁盘使用情况。 2.fdisk命令 - 管理磁盘分区 语法格式:fdisk 参数 设备名 fdisk /dev/vdb fdisk的意思是固定磁盘(fixed disk)或格式化磁盘(format disk),该命令的功能是管理磁盘的分区信息。 fdisk命令可以用来对磁盘进行分区操作,用户可以根据实际情况对磁盘进行合理划分,这样后期挂载和使用时会方便很多。 Last sector, +/-sectors or +/-size{K,M,G,T,P} (1026048-20971519, default 20971519): +512M 3.建立和设置SWAP交换分区 mkswap命令用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。一般都将整个文件或者设备作为交换区。 mkswap /dev/vdb3 4.修改系统的静态挂载文件/etc/fstab /etc/fstab # <file system> <dir> <type> <options> <dump> <pass> tmpfs /tmp tmpfs nodev,nosuid 0 0 其中: <file systems> - 要挂载的分区或存储设备 <dir> - <file systems>的挂载位置 <type> - 要挂载设备或是分区的文件系统类型,支持许多种不同的文件系统:swap、auto等 <options> - 挂载时使用的参数,defaults - 使用文件系统的默认挂载参数 <dump> dump工具通过它决定何时作备份,0 表示忽略,1 则进行备份 <pass> - fsck读取<pass>的数值来决定需要检查的文件系统的检查顺序。0:设备不会被fsck所检查。 vim /etc/fstab ==> /dev/vdb3 swap swap defaults 0 0 5.激活Linux系统中的交换空间,,但要想永久生效还是需要将挂载信息写入到/etc/fstab文件 swapon -a 立刻激活所有“/etc/fstab”文件中的交换分区 swapon
26. 创建逻辑卷
物理卷(Physical Volume,PV):就是指硬盘分区(C盘、D盘),分区可以是整个硬盘或已创建的软RAID,是物理存在的。
卷组(Volume Group,VG):是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个逻辑卷。
逻辑卷(Logical Volume,LV):它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。
如果把PV比作地球的一个板块,VG则是一个地球,因为地球是由多个板块组成的,那么在地球上划分一个区域并标记为亚洲,则亚洲就相当于一个LV。
一般流程:
1.创建逻辑卷
创建换组之前都需要先创建物理卷,可以对一个磁盘创建,也可以一次创建多个,以空格隔开
# pvcreate /dev/ram0 /dev/ram1
Physical volume "/dev/ram0" successfully created
Physical volume "/dev/ram1" successfully created
2.创建卷组 - 选用需要的物理卷来创建
# vgcreate TEST /dev/ram0 /dev/ram1
Volume group "TEST" successfully created
3.创建成功后,可以使用vgdisplay命令来查看卷组
# vgdisplay TEST
--- Volume group ---
VG Name TEST
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 24.00 MiB
PE Size 4.00 MiB
Total PE 6
Alloc PE / Size 0 / 0
Free PE / Size 6 / 24.00 MiB
VG UUID zejODC-HyXC-iD5p-5bUI-cKx3-BX8j-SMz50P
4.最后创建逻辑卷,就是从卷组中划出一部分或者全部,来创建一个逻辑卷
# lvcreate -l 6 -n test_lv TEST #从TEST卷组中划分出一个大小为24M,名为test_lv的逻辑卷
Logical volume "test_lv" created.
# lvcreate -L 24M -n test_lv TEST #从TEST卷组中划分出一个大小为24M,名为test_lv的逻辑卷
Logical volume "test_lv" created.
-l 是按PE的数量计算大小
-L 是按照Size的大小划分
-n 是要创建的逻辑卷的名称
最后,要指定,从哪个卷组中划分
题目:
-
逻辑卷取名为qa ,属于 qagroup 卷组,大小为 60 个扩展块
-
qagroup卷组中逻辑卷的扩展块大小应当为 16 MiB
-
使⽤ vfat 文件系统格式化新逻辑卷。该逻辑卷应在系统启动时自动挂载到 /mnt/qa 下
# 创建卷组qagroup,设置扩展块大小为16M # 创建逻辑卷qa,并属于qagroup卷组,大小为60个扩展块 # vfat格式化新的逻辑卷,并将逻辑卷永久挂在到/mnt/qa下 1.lsblk – 查看系统的磁盘使用情况 2.fdisk /dev/vdb - 管理磁盘分区 + Command (m for help): n //添加新分区 + Partition number (2-4, default 2): 回车 + First sector (1026048-20971519, default 1026048): 回车 + Last sector, +/-sectors or +/-size{K,M,G,T,P} (1026048-20971519, default 20971519): +1200M 分区大小,必须大于总大小,不可以刚好等于 + Command (m for help): w //保存退出 3.创建卷组 语法:vgcreate 参数 卷组名 设备名 vgcreate -s 16M qagroup /dev/vdb4 4.创建逻辑卷 语法:lvcreate 参数 逻辑卷 [卷组名] lvcreate -l 60 -n qa qagroup 5.mkfs命令 – 对设备进行格式化文件系统操作 (安装dosfstools,包含mkfs.vfat工具) yum provides */mkfs.vfat yum install mkfs.vfat /dev/qagroup/qa #格式化新的逻辑卷 6.自动挂载 mkdir /mnt/qa vim /etc/fstab ==> /dev/qagroup/qa /mnt/qa vfat defaults 0 0 mount -a # 挂载/etc/fstab文件中所有已定义的设备文件
27. 配置系统调优
- 为您的系统选择建议的 tuned 配置集并将它设为默认设置。
yum -y install tuned # 安装tuned配置集
systemctl enable tuned # 设置开机自启tund配置集
systemctl restart tuned # 重启tuned
tuned-adm active # 查看现在生效的调优策略
tuned-adm recommend # 查看tuned目前推荐使用的策略
tuned-adm profile virtual-guest # 修改调优方案,使用新的调优策略