文章目录
这是今年最新版的证书,也是我获得的~
podman容器题
中级RHCE题库已经更新 ansible
以下关于终端号一会node1一会servera这是没问题的,考试会自定义给的只是我懒得开模拟环境导致的
1.配置IP地址
1.配置网络设置
将node1配置为具有以下网络配置:
主机名: node1.domain250.example.com
IP地址: 172.25.250.100
子网掩码:255.255.255.0网关:172.25.250.254
DNS服务器:172.25.250.254
命令步骤:
方法一:
推荐使用这种比较方便,不容易错
[root@localhost~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 43920a4d-f27e-40c4-b1db-143e0cb6a00c ethernet ens33
[root@localhost~]# nmcli connection modify ens33 ipv4.addresses 172.25.250.10/24 ipv4.gateway 172.25.250.254 ipv4.dns 172.25.250.10 ipv4.method manual connection.autoconnect yes[root@localhost~]# nmcli connection down ens33 ; nmcli connection up ens33
Connection 'ens33' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
方法二:
//考试时首先查看enthernet以太网是谁在修改配置文件[root@computer network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
eth0 5dcaf658-e5f2-46cd-9e37-1509d96f99f4 ethernet eth0
//配置文件中修改的[root@computer network-scripts]# cat ifcfg-eth0TYPE="Ethernet"
BOOTPROTO=static
DEFROUTE="yes"
NAME="eth0"
UUID="5dcaf658-e5f2-46cd-9e37-1509d96f99f4"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=172.25.250.10
NETMASK=255.255.255.0
GATEWAY=172.25.250.254
DNS1=172.25.250.254[root@computer network-scripts]# systemctl restart NetworkManager[root@computer network-scripts]# ifdown eth0 ; ifup eth0 //开启网卡
成功断开设备 "eth0"。
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
//ssh远程连接
//查看是否激活eth0网卡
[root@computer network-scripts]# ip a//配置成功后用shh连接一下[ root@foundation0~]#ssh [email protected]//设置主机名[ root@node1~]# hostnamectl set-hostname node1.domain250.example.com
参数解析:
方法一:
nmcli connection :网卡设置的连接命令
modify:需要修改的网卡名
ipv4.* : 意为需要修改的IP地址
ipv4.methon.manual:手动方法修改
connection.autoconnect yes:自动连接
方法二:
TYPE//接口类型。常见的接口类型有:Ethernet,Bridge
ether 代表ethernet 以太网的意思
BOOTPROTO=none //引导协议,可选值有{static|none|dhcp|bootp}。如果要使用静
态地址,使用static或none都可以
ONBOOT=yes //在系统引导时是否自动激活此网络接口,可选值有{ yes | no }
DEVICE=eth1 //关联的设备名称,要与文件名的后半部"INTERFACE_NAME"保持一致
NAME="eth1"//连接名称
IPADDR=172.25.250.10//固定IP地址
NETMASK=255.255.255.0//子网掩码
GATEWAY=172.25.250.254//默认网关
DNS1=172.25.250.254//第一个DNS服务器指向
2、配置软件仓库
请配置你虚拟机的yum仓库,地址如下:
http://content.example.com/rhel8.2/x86_64/dvd/BaseOS
http://content.example.com/rhel8.2/x86_64/dvd/AppStream
命令步骤:
//注意这里一点要以.repo为后缀名
否则仓库运行不了
[ root@node1~]# cd /etc/yum.repos.d[ root@node1~]# vim xxx.repo[Baseos]
name=BaseOS
baseurl=http://content.example.com/rhel8.2/x86_64/dvd/BaseOS
gpgcheck=0
enabled=1[AppStream]
name=AppStream
baseurl=http://content.example.com/rhel8.2/x86_64/dvd/AppStream
gpgcheck=0
enabled=1
yum clean all
yum list all//测试[ root@node1~]# yum -y install vim
参数解析:
[Repo_Name]:仓库名称
name:描述信息
baseurl:仓库的具体路径,接受以下三种类型
ftp://
http:// 源仓库
file:///(系统的根下查找) 本地仓库
enabled:可选值{1|0},1为启用此仓库,0为禁用此仓库
gpgcheck:可选值{1|0},1为检查软件包来源合法性,0为不检查来源 不用检查合法性
如果gpgcheck设为1,则必须用gpgkey定义密钥文件的具体路径gpgkey=/PATH/TO/KEY
清空yum本地缓存
yum clean all
检验yum本地仓库
yum list all
3、调试SELinux
配置httpd在82端口上提供Web服务,满足以下要求:
1)在/var/www/html/下不要改动现有文件
2)此Web服务器在系统启动时自动启动
3)确保SELinux保护机制运行在Enforcing模式
命令步骤:
[root@servera~]# systemctl restart httpd[root@servera~]# systemctl enable --now httpd//保证服务要处enable(自启动状态)[root@servera~]# systemctl status httpd//查看下,一般考试已经存在了[root@servera~]# vim /etc/httpd/conf/httpd.conf
Listen 82#搜索http规则中82是否有端口号[root@servera html]# semanage port -l | grep http
http_port_t tcp 80,81,443,488,8008,8009,8443,9000//添加82端口规则[root@servera~]# semanage port -a -t http_port_t -p tcp //防火墙开放82端口
firewall-cmd --add-port=82/tcp --permanent
firewall-cmd --reload//保证/var/www/html文件保持一致//过滤man帮助
man semanage fcomtext | grep \#
#semanage fcontext -a -t httpd_sys_content_t " /web( /.*)?"#restorecon -R -v /web//修改file1值为htpp_[ root@node1~]#ll -Z /var/ wwws / html/-rw-r--r--. l root root system_u:object_r:default_t:s0 14 May 29 03:44 file1-rw-r.-r--, 1 root root system_u:object_r:httpd_sys_content_t:s0 14 May 29 03:44 file2[root@node1~]# semanage fcontext -m -t httpd_sys_content_t /var/ww/html/file1[root@node1~]# semanage fcontext -a -t httpd_sys_content_t /var/ww/html/file1//刷新下即可生成[root@node1~]# restorecon -v /var/www/html 修改完后刷新-rw-r--r--. 1 root root [ root@node1~]#ll -Z /var/www/html/
system_u:object_r:httpd_sys_content_t:s0 14 May 2903:44 filel
[root@servera~]# netstat -tulnp | grep httpd //查看端口是否监听
tcp6 00 :::82 :::* LISTEN
25747/httpd
//在网页中访问
http://172.25.250.10:82
hello yutianedu
参数解析:
**semanage**命令用来查询与修改SELinux默认目录的安全上下文。
例:如apache采用非标准端口,需执行如下命令放行端口。
代码如下:
root@servera ~]# semanage port -a -t http_port_t -p tcp 82
semanage主要相关参数:-a:添加
-d:删除
-m:修改
-l:列举
-n:不打印说明头
-D:全部删除
-f:文件
-s:用户
-t:类型
-r:角色
//添加防火墙规则
firewall-cmd --add-port=82/tcp --permanent
firewall-cmd --reload //重启防火墙
–add-port=80/tcp 添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
4、创建用户账户
根据下列要求创建用户及组账号:
1)名为admins的组
2)用户harry,其附属组为admins
3)用户natasha,其附属组还属于admins
4)用户alice,没有可交互的登录Shell,且不属于admins组
5)harry、natasha、alice的密码都应该是redhat
命令步骤:
[root@servera~]# groupadd admins //创建用户组[root@servera~]# useradd -G admins harry 用户为组成员[root@servera~]# useradd -G admins natasha[root@servera~]# useradd -s /sbin/nologin alice 用户不允许交互式登录//使用for循环简单配置[root@servera~]# for i in harry natasha alice>do echo "redhat"| password --stdin $i>done
参数解析
-G 后接组
[root@servera~]# useradd -G admins natasha
查看/etc/paaswd
第七字段 用户的登录的shell一般为: **/bin/bash**-s shell 指定该用户终端配置 //切换其他sell,不允许交互式登录此系统[root@servera~]# useradd -s /sbin/nologin alic
如若创建用户不小心创错了
接userdel -r //删除用户的同时删除其家目录(userdel默认不会删除其家目录)--stdin //从标准输入获取用户密码, \//例:echo "redhat"|passwd --stdin user1[root@servera~]# echo redhat | passwd --stdin harry
5. 配置cron计划任务
配置计划任务,以用户harry的身份每天14:23分执行一次命令 echo hello。
命令步骤:
保证计划服务开机自启
[root@servera~]# systemctl status crond[root@servera~]# crontab -u harry -e2314*** echo hello
[root@servera~]# crontab -u harry -l2314*** echo hello
查看日志是否运行
cat /var/log/messages
命令参数
分 时 日 月 周
*/2 每隔2分钟
10-1210到12点
9,119点多,11点多
1)语 法:
crontab [-u <用户名称>][配置文件] 或 crontab { -l |-r |-e }
-u #<用户名称> 是指设定指定<用户名称>的定时任务,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的定时任务。-l #列出该用户的定时任务设置。-r #删除该用户的定时任务设置。-e #编辑该用户的定时任务设置。
(2)命令时间格式 :
***** command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
6、创建共享目录
创建具有以下特点的共用目录:
1)/home/tools的所有组是admins
2)此目录能被admins组的成员读取、写入和访问,除root外其他用户没有这些权限
3)在此目录下创建的文件,其组的所有权自动设置为admins组
命令步骤:
[root@servera~]# mkdir /home/tools[root@servera~]# chown -R .admins /home/tools[root@servera~]# chmod 770 /home/tools[root@servera~]# chmod g+s /home/tools[root@servera~]# ll -d /home/tools
drwxrws---. 2 root admins 6 Jun 17 16:30 /home/tools[root@servera~]# ll -d /home/tools
drwxrws---. 2 root admins 6 Jun 17 16:30 /home/tools//测试[root@servera~]# touch /home/tools/file01[root@servera~]# ll /home/tools/file01-rw-r--r--. 1 root admins 0 Jun 17 16:31 /home/tools/file01
参数
chown .代表使属组 目录
-R:使属组内容都属于这个组
g+s
SGID(2) //运行程序时,这个程序启动的进程的属组是程序文件自身的属组,而不是启动者所属的基
本组
//默认情况下,用户创建文件时,其属组为此用户所属的基本组;
//一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件或目录,其所属的组
7、配置NTP时间客户端
配置你的系统,使其成为classroom.example.com的NTP客户端。
命令步骤
[root@servera~]# systemctl restart chronyd[root@servera~]# systemctl enable --now chronyd[root@servera~]# vim /etc/chrony.conf
server classroom.example.com iburst
[root@servera~]# systemctl status chronyd[root@servera~]# hwlock -w[root@servera~]# chronyc sources210 Number of sources =1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================^* classroom.example.com 86171-23us[-23us]+/-561us
参数
systemctl list-unit
systemctl list-units | grep NTP //查询服务名字是什么
保证开机自启
hwlock -w:意为将时间同步
Linux系统下,一般使用ntp服务来同步不同机器的时间。NTP 是网络时间协议(Network Time Protocol)的简称,就是通过网络协议使计算机之间的时间同步化。
8. auto自动挂载
题目:
按照以下要求,在servera上配置autofs自动挂载:
1)serverb通过NFS共享目录/rhome到你的系统,此文件系统中包含为用户ldapuser0预配置的家目录
2)预设用户ldapuser0的家目录应自动挂载到本地的/rhome/ldapuser0目录
3)预设用户ldapuser0的家目录是serverb.lab.example.com:/rhome/ldapuser0
4)预设用户ldapuser0的家目录应自动挂载到本地的/rhome/ldapuser0目录
5)挂载后的家目录必须可读写
命令步骤
rpm -qc autofs 查看主配置文件
[root@servera~]# showmount -e serverb.lab.example.com
Export list for172.25.250.11:
/rhome/ldapuser0 *[root@servera~]# yum -y install autofs[root@servera~]# systemctl enable --now autofs[root@servera~]# vim /etc/auto.master/rhome #主目录 /etc/auto.nfs --副目录[root@servera~]# vim /etc/auto.nfs
ldapuser0 -rw serverb.lab.example.com:/rhome/ldapuser0
[root@servera~]# systemctl restart autofs[root@servera~]# cd /rhome/[root@servera rhome]# ls[root@servera rhome]# cd ldapuser0 # 触发挂载,考试的时候用su - ldapuser0来触
发,cd触发如果报权限拒绝,此为正常现象。
[root@servera ldapuser0]# pwd #为/rhome家目录成功[root@servera ldapuser0]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 892M 0892M 0%/dev
tmpfs 915M 0915M 0%/dev/shm
tmpfs 915M 17M 898M 2%/run
tmpfs 915M 0915M 0%/sys/fs/cgroup
/dev/vda1 10G 1.6G 8.5G 16%/
tmpfs 183M 0183M 0%/run/user/0
serverb.lab.example.com:/rhome/ldapuser0 10G 1.5G 8.6G 15%/rhome/ldapuser0
showmount命令用于查询NFS服务器的相关信息
显示指定NFS服务器输出目录列表(也称为共享目录列表)//连接
showmount -e 192.168.1.1
mount挂载是使用外部存储介质或者文件系统所必须的一步操作,但是如果挂载的资源过多,则会给网络资源和服务器资源造成一定的负载,从而降低服务器性能。我们可以使用autofs服务,autofs是一种系统守护进程,我们可以把挂载信息写入其配置文件中,如果用户不访问其他存储介质的,则系统不会进行挂载,如果用户尝试访问该存储介质,则autofs会自动进行挂载操作,上述所有操作对用户而言是透明的,这样一来,autofs服务节省了服务器的网络和硬件资源。
autofs服务的主配置文件为/etc/auto.master,打开后,需要在主配置文件中写入格式:
目的挂载目录 挂载目录的子配置文件
例如我们想把/rhome/ldapuser0挂载到/etc目录下,则需要写入如下的内容:
[root@servera~]#vim /etc/auto.master/rhome /etc/auto.nfs
其中,ldapuser0表示该目录下的子挂载目录,
[root@servera~]# vim /etc/auto.nfs
ldapuser0 -rw serverb.lab.example.com:/rhome/ldapuser0
ssh 用户@主机(localhost)
mount | grep rhome 查看挂载信息
9、配置文件权限
将文件/etc/fstab复制到/var/tmp/,并按要求配置/var/tmp/fstab的权限:
1)文件/var/tmp/fstab属于root用户
2)文件/var/tmp/fstab属于root组
3)任何用户对/var/tmp/fstab都没有可执行权限
4)用户harry能够读取和写入/var/tmp/fstab文件
[root@servera~]# cp /etc/fstab /var/tmp/[root@servera~]# ll /var/tmp/fstab-rw-r--r--. 1 root root 427 Jun 17 17:06 /var/tmp/fstab[root@servera~]# setfacl -m u:harry:rw- /var/tmp/fstab[root@servera~]# setfacl -m u:natasha:--- /var/tmp/fstab[root@servera~]# getfacl /var/tmp/fstab
getfacl: Removing leading '/'from absolute path names
# file: var/tmp/fstab# owner: root# group: rootuser::rwuser:harry:rwuser:natasha:---group::r--
mask::rwother::r--
参数
[root@servera~]# setfacl -m u:harry:rw- /var/tmp/fstab //为用户添加访问该文件的权限[root@servera~]# setfacl -m u:natasha:--- /var/tmp/fstab-m,--modify=acl 更改文件的访问控制列表
root@servera~]# getfacl /var/tmp/fstab
getfacl: Removing leading '/'from absolute path names
file: var/tmp/fstab //该目录允许其他人访问
10、配置用户账户
创建用户tammy,其用户ID为2020,此用户的密码应当是redhat。
[root@servera~]# useradd -u 2020 tammy
e[root@servera~]# echo redhat | passwd --stdin tammy
-u UID //[UID_MIN,UID_MAX]定义在/etc/login.defs文件中
指定用户ID号
3.1.1 用户创建命令useradd
//语法:useradd [option] USERNAME-u UID //[UID_MIN,UID_MAX]定义在/etc/login.defs文件中
指定用户ID号
-g GID //指定用户所属基本组,可为组名或GID-G groupname,...//附加组,可以有多个,用逗号隔开。组groupname必须事-G 后接组
-c "COMMENT" 加上备注文字,备注文字保存在passwd的备注栏中。
-d /path/to/directory //指定用户的家目录。此目录必须不能事先存在, \#指定特殊目录//否则将不会从/etc/skel中复制环境设置文件-s shell //这里的shell最好使用/etc/shells里面有的shell, \// /etc/shells指定了当前系统可用的安全shell#切换其他sell,不允许交互式登录此系统 -M //创建用户时不给其创建家目录#不指定家目录-r //添加一个系统用户
系统用户指定在1-999-D //直接打印/etc/default/useradd文件的内容或配合其它选项 \//(例如-s SHELL)直接修改/etc/default/useradd文件中的默认值
11、查找文件
请把系统上拥有者为tammy用户的所有文件,并将其拷贝到/root/findfiles目录中。
[root@servera~]# mkdir /root/findfiles[root@servera~]# find / -user tammy -exec cp -a {} /root/findfiles/ \;[root@servera~]# ll findfiles/
-exec为find后还需要输出的内容,一般用于复制目录
-user:查找某用户的所有文件
查找用户下所有的文件
-group:查找某组的所有文件
查找组下的文件
-type:根据文件类型进行查找
查找文件 -f
查找目录 -d
管道文件 -p
-size:根据文件大小进行查找。如1k、1M、+10k、+10M、-1k、-10M
+表示大于,-表示小于
12、查找字符串
找出文件/etc/man_db.conf中包含字符串sbin的所有行,将其按原始顺序导入到文件/root/out.txt中,
文件/root/out.txt中不得包含空行。
[root@servera~]# cat /etc/man_db.conf | grep -v ^$ | grep "sbin" > /root/out.txt
-v:显示没有被正则表达式匹配到的内容 *
除了要匹配的“字符串”,其他都显示
-o:只显示被正则表达式匹配到的内容 *
匹配显示什么,就显示什么
-E:使用扩展正则表达式 *
匹配的条件可以是,多个或一个,还可用 egrep
13、 创建归档
创建一个名为/root/backup.tar.bz2的tar归档,其应该包含/usr/local/的内容。此归档文件必须使用
bzip2进行压缩。
[root@servera~]# tar -jcf /root/backup.tar.bz2 /usr/local/[root@servera~]# file backup.tar.bz2 # 验证backup.tar.bz2: bzip2 compressed data, block size =900k
[root@servera~]# lsbackup.tar.bz2
-c:创建归档文档
-f file.tar:指定要操作的归档文件
-x:还原归档
-v:显示归档过程
-p:归档时保留权限信息。只有管理员才有权限用此选项
-C:指定还原归档或解压时的目标目录
-tf:不展开归档,直接查看归档了哪些文件
zcf file.tar.gz:归档并调用gzip进行压缩
jcf file.tar.bz2:归档并调用bzip2进行压
Jcf file.tar.xz:归档并调用xz进行压缩
以下则为可能出现的新题,一般
umask
值考的比较多
14、配置sudo提权
允许admins组的成员可以以root的身份执行任何命令,并且不需要密码。
Sudo 的全称为:super userdo。 顾名思义:干超级用户才能干的事!所以Sudo最常用的功能就是提升一个命名的执行权限。
sudo命令是配置存储在/etc/sudoers文件中。 只能使用root特权查看和编辑此文件。 我们可以使用visudo命令来编辑它,如下所示。
[root@servera~]# vim /etc/sudoers.d/admins
admins ALL=(root) NOPASSWD: ALL#测试:[root@servera~]# su - harry[harry@servera~]$ sudo useradd testuser #创建成功
15、设置密码默认策略
为新创建的用户设置密码策略,要求创建用户时,密码默认20 天后过期
[root@servera~]# vim /etc/login.defs
PASS_MAX_DAYS 20
测试:
[root@servera~]# useradd user1[root@servera~]# cat /etc/shadow
user1:!!:18782:0:20:7:::
chage -l 用户 查看详细信息
16、配置umask值
设置natasha用户创建的目录权限默认为733,文件权限为622,要求永久生效
# 只需要根据目录的权限推算出umask即可,目录最大权限为777,文件最大权限为666,去掉733的权限,得到umask为044# 为natasha设置umask值[root@servera~]# su - natasha[natasha@servera~]$ vim .bashrc
umask 044[natasha@servera~]$ source .bashrc
[natasha@servera~]$ mkdir test
[natasha@servera~]$ touch file[natasha@servera~]$ ll
total 0-rw--w--w-. 1 natasha natasha 0 Jun 5 01:37 file
drwx-wx-wx.2 natasha natasha 6 Jun 501:37 test
可能出现的新题,我是考到了第三题设置别名
虚拟机serverb
17、设置root密码
将serverb的root密码设置为123456
1. 重启系统
2. 将光标移动到要启动的内核
3. 按e编译当前条目
4. 将光标移至以linux开头的行,此为内核命令行
5. 在末尾添加rd.break consolo=tty0 进入单用户模式
6. 按ctrl+x继续启动
7.重启以读写方式挂载/sysroot
switch_root:/# mount -o remount,rw /sysroot8. 切换至真正操作系统的根/sysroot
switch_root:/# chroot /sysroot9. 重置密码
sh-4.4# echo 123456 | passwd --stdin root10. 打标签
sh-4.4# touch /.autorelabel
sync
exit退出两次
命令解析
mount -o remount,rw /sysroot
//fstab被损坏情况下,让只读文件系统可写(正常情况下不使用)[root@localhost~]#mount -o rw,remount /-o 特殊选择:可以指定挂载额外选项
重新以可读可写的方式挂载为已经挂载 /sysroot
echo 123456| passwd --stdin root
这个选项用于从标准输入管道读入新的密码。
为什么要 “touch /.autorelabel” 这个命令
⛅为了让 SELinux 生效
⛅SELinux 它是一个安全增强系统, 其内部有许多安全策略
⛅针对一些操作, 如果你做了这些操作, 没有得到策略的放行, 它会给你禁止掉
⛅比如你使用单用修改root密码是不被策略放行的
⛅怎么让 SELinux 策略放行呢?
🔵"touch /.autorelabel" 创建这样一个文件其实就是在告诉SELinux放行这个策略,就是通知一下
🔵直接关闭掉 SELinux
18、配置软件仓库
请配置你虚拟机的yum仓库,地址如下:
http://content.example.com/rhel8.0/x86_64/dvd/BaseOS
http://content.example.com/rhel8.0/x86_64/dvd/AppStream
19、调整逻辑卷大小
1)预先创建2GiB的分区/dev/vdb1,并用于创建卷组testvg
2)创建大小为200MiB的逻辑卷/dev/testvg/vo,格式化为ext4文件系统,并挂载在/mnt/vo上
3)将逻辑卷/dev/testvg/vo及其文件系统大小调整到300MiB,确保文件系统内容保持不变。
解析:
fdisk命令
用于管理硬盘设备分区,格式为“fdisk 【参数】,它提供了添加、删除、转换等功能。参用交互式方式,可以根据参数实时变好
参数及作用
m查看全部可用的参数n添加新的分区d删除某个分区信息L列出所有可用的分区类型t改变某个分区的类型p查看分区信息w保存并退出q不保存并退出
**ext4:**它支持的存储容量高达1EB,且能够有无限多的子目录。另外,ext4能够批量分配block块,从而极大地提高了读写效率
LVM逻辑卷:
用于调整硬盘资源,不要关心底层可以实时调整逻辑大小
顺序:
创建物理卷 > 将物理卷进入卷组 > 将卷组进入逻辑卷 > 格式化 > 挂载
功能/命令物理卷管理卷组管理逻辑卷管理扫描pvscanvgscanlvscan建立pvcreatevgcreatelvcreate显示pvdisplayvgdisplaylvdisplay删除pvremovevgremovelvremove扩展vgextendlvextend缩小vgreducelvreduce
[root@localhost ~]# vim /etc/fstab
//分区标识(UUID或设备名) 挂载点 文件类型 挂载参数 不检查 不备份
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs defaults 0 0
default 默认文件系统挂载设置 rw, suid, dev, exec, auto, nouser, async
读者可以在平时练习时这样玩,但考试只是要求扩容磁盘就好了
以上的第(3)题
可见vdb已分好两组了,这题只需要扩容
**# 命令步骤**[root@serverb~]# fdisk /dev/vdb //对vdb进行分区
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide towrite them.
Be careful before using the write command.
Device does not contain a recognized partitiontable.
Created a new DOS disklabel withdisk identifier 0xae75bf0a.
Command (m for help): n //创建新的扩展分区Partitiontype
p primary(0primary,0extended,4 free)
e extended(container for logical partitions)Select(default p): //默认Usingdefault response p.Partition number (1-4,default1): //默认第一个分区First sector (2048-10485759,default2048):
Last sector,+sectors or+size{K,M,G,T,P} (2048-10485759,default10485759):+2G //指定大小2G
Created a new partition1oftype'Linux'andof size 2 GiB.
Command (m for help): w //保存分区
The partitiontable has been altered.
Calling ioctl()to re-readpartitiontable.
Syncing disks.//一个扩展分区里面可以包含多个逻辑卷[root@serverb~]# pvcreate /dev/vdb1 //刷新分区[root@serverb~]# vgcreate testvg /dev/vdb1 //将分区加入卷组[root@serverb~]# lvcreate -L 200M -n vo testvg //指定大小逻辑卷[root@serverb~]# mkfs.ext4 /dev/testvg/vo //格式化[root@serverb~]# blkid /dev/testvg/vo //查看uid/dev/testvg/vo: UUID="fe323058-93db-428d-883c-2c0210cd10c6"TYPE="ext4"[root@serverb~]# mkdir /mnt/vo[root@serverb~]# vim /etc/fstab //写配置文件永久挂载
UUID="fe323058-93db-428d-883c-2c0210cd10c6 /mnt/vo ext4 defaults 00[root@serverb~]# mount -a //加载所有配置查看文件是否合格# 实际操作[root@serverb~]# df -hT /dev/testvg/vo # 查看文件系统的类型和大小
Filesystem Type Size Used Avail Use% Mounted on/dev/mapper/testvg-vo xfs 195M 12M 183M 6%/mnt/vo
//以上操作考试已经设置好了,只需要如下[root@serverb~]# lvextend -L 300M /dev/testvg/vo //扩容逻辑卷[root@serverb~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync
Convert
vo testvg -wi-ao---- 300.00m# 扩展文件系统,xfs类型的文件系统用xfs_growfs /mnt/vo,后面接的是挂载点。[root@serverb~]# resize2fs /dev/testvg/vo # 后面接的是挂载点的路径[root@serverb~]# df -hT /dev/testvg/vo
Filesystem Type Size Used Avail Use% Mounted on/dev/mapper/testvg-vo ext4 295M 13M 283M 5%/mnt/vo
xfs文件系统是不能缩的
卷组缩减
lvextend -L 大小 -r 逻辑卷
resizr2fs 逻辑卷
20、添加交换分区
在系统上添加一个512MiB的交换分区,设置交换分区应在系统启动时自动挂载,不要删除或修改系统上
已存在的交换分区。
**SWAP:**交换分区是以一种通过在硬盘中预先划分一定的空间,然后把内存中暂时不常
用的数据临时存放到硬盘中,以便物理机有空间跑程序,只有当物理机资源使用完才会调>用交换分区的资源
这里考试时已经有一盘swap了,需要我们在创建一组
[root@serverb~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide towrite them.
Be careful before using the write command.
Command (m for help): n
Partitiontype
p primary(1primary,0extended,3 free)
e extended(container for logical partitions)Select(default p):
Usingdefault response p.Partition number (2-4,default2): //默认为分区2First sector (4196352-10485759,default4196352):
Last sector,+sectors or+size{K,M,G,T,P} (4196352-10485759,default10485759): +512M
Created a new partition2oftype'Linux'andof size 512 MiB.
命令(输入 m 获取帮助):l 列出所有支持的分区类型对应的id
命令(输入 m 获取帮助):t 修改分区id
分区号 (1-5,默认 5):2 修改第2个分区
Hex 代码(输入 L 列出所有代码):82 修改成id为82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):p
设备 Boot StartEnd Blocks Id System
/dev/sdb1 20482099199104857683 Linux
/dev/vdb2 20992006293503209715282 Linux swap / Solaris <---修改成功
Command (m for help): w
The partitiontable has been altered.
Syncing disks.
强烈建议: 对分区做了修改后都刷新一下
# partprobe /dev/sdb[root@serverb~]# mkswap /dev/vdb2[root@serverb~]# blkid /dev/vdb2/dev/vdb2: UUID="f626f11c-4363-4caf-aba6-5a418ea04079"TYPE="swap"
PARTUUID="ae75bf0a-02"[root@serverb~]# vim /etc/fstab
UUID=f626f11c-4363-4caf-aba6-5a418ea04079 swap swap defaults 00[root@serverb~]# swapon -a //启动所有交换分区[root@serverb~]# swapon -s
Filename Type Size Used Priority
/dev/vdb2 partition5242840-2
21、创建逻辑卷
根据以下要求,创建新的逻辑卷:
//默认一个pe大小是4mb,现在是50个pe里面一个块就是16MB
1)逻辑卷的名字为mylv,属于myvg卷组,大小为50个pe
2)卷组myvg中的逻辑卷的pe大小应当为16MiB
3)使用ext3文件系统将逻辑卷mylv格式化
4)此逻辑卷应当在系统启动时自动挂载到/mnt/mydata目录下
大小50pe也就是是一个pe里包含16MIB的内存
计算:50x16=860M
[root@serverb~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide towrite them.
Be careful before using the write command.
Command (m for help): n
Partitiontype
p primary(2primary,0extended,2 free)
e extended(container for logical partitions)Select(default p):
Usingdefault response p.Partition number (3,4,default3):
First sector (5244928-10485759,default5244928):
Last sector,+sectors or+size{K,M,G,T,P} (5244928-10485759,default10485759): +1G
Created a new partition3oftype'Linux'andof size 1 GiB.
Command (m for help): w
The partitiontable has been altered.
Syncing disks.[root@serverb~]# pvcreate /dev/vdb3[root@serverb~]# vgcreate -s 16M myvg /dev/vdb3[root@serverb~]# lvcreate -l 50 -n mylv myvg[root@serverb~]# mkfs.ext3 /dev/myvg/mylv[root@serverb~]# mkdir /mnt/mydata[root@serverb~]# vim /etc/fstab/dev/myvg/mylv /mnt/mydata ext3 defaults 00[root@serverb~]# mount -a[root@serverb~]# df -h /mnt/mydata/
Filesystem Size Used Avail Use% Mounted on/dev/myvg/mylv 799M 4.0K 799M 1%/mnt/mydata
22、创建VDO卷
根据如下要求,创建新的VDO卷:
1)使用未分区的磁盘(/dev/vdc)
2)此VDO卷的名称为myvdo
3)此VDO卷的逻辑大小为50G
4)此VDO卷使用xfs文件系统格式化
5)此VDO卷在系统启动时自动挂载到/vblock目录下
vdo:
作用:压缩数据,优化重复数据
VDO的主要作用是节省磁盘空间,比如让1T的磁盘能装下1.5T的数据,从而降低数据中心的成本。
那vdo是如何实现的呢,关键原理主要是重删和压缩,重删就是硬盘里拷贝来相同的数据,以前要占多份空间,现在只需要1份空间就可以了。类似我们在百度网盘中上传一个大型软件安装包,能实现秒传,其实是之前就有,所以无需再传一遍,也无需再占百度一份空间。另一方面是数据压缩,类似于压缩软件的算法,也可以更加节省磁盘空间。
通过man命令过滤
[root@serverb~]# yum -y install vdo kmod-kvdo #安装软件包,考试需要安装[root@serverb~]# man vdo | grep create vdo #过滤出来在按题目修改[root@serverb~]# vdo create --name=myvdo --device=/dev/vdc --
vdoLogicalSize=50G
Creating VDO myvdo
Starting VDO myvdo
Starting compression on VDO myvdo
VDO instance 0 volume is ready at /dev/mapper/myvdo
[root@serverb~]# mkfs.xfs -K /dev/mapper/myvdo[root@serverb~]# blkid /dev/mapper/myvdo #复制uuid[root@serverb~]# man vdo | grep defaults #这里最好复制如果打错会导致serverb起不来//将找我到的模板复制过来[root@serverb~]# vim /etc/fstab
uuid /vblock xfs defaults,x-systemd.requires=vdo.service 00[root@serverb~]# mount -a[root@serverb~]# df -h /vblock
Filesystem Size Used Avail Use% Mounted on/dev/mapper/myvdo 50G 390M 50G 1%/vblock
23、配置系统调优
先查看tuned推荐的配置文件,并将系统的调优配置文件设置为throughput-performance
提示:考试要求是将系统的调优配置文件设置为tuned推荐的配置文件。
tuned特性主要还是使用linux系统现有的一些调节手段和工具,包括CPU、磁盘的电源管理工具,内核参数调整等方式进行系统的性能调节。
其主要的特点在于将上述的调整整合到一个具体的策略(profile)中,这样用户可以根据不同的使用场景和需求,很方便的对系统的性能进行设置,极大的简化了linux的性能调节。
throughput-performance CPU:governor参数”performance”; disk:关闭alpm;readahead设置为4096; sysctl:vm.swappiness设为10;vm. dirty_background_ratio和dirty_ratio分别设为10和40;sched_min_granularity设为10ms;sched_wakeup_granularity设为15ms 禁用节能配置,启用sysctl模块设置来提升性能,主要改善吞吐量,使用deadline的IO调度策略>(默认CFQ)
# 说明:考试题目中当前生效和配置文件和推荐的配置文件可能不一致,而我们的虚拟机是一样的,考试只
需要按照下面的配置做即可。
[root@serverb ~]# tuned-adm recommend
virtual-guest
[root@serverb ~]# tuned-adm profile virtual-guest
[root@serverb ~]# tuned-adm active # 确保当前生效的配置文件是系统推荐的配置文件即可
virtual-guest
24、创建用于定位文件的脚本
(1)创建名为/usr/local/bin/file.sh的脚本,
(2)查找 /usr 下面所有小于10M 并有设置sgid权限的文件
(3)将查找到的文件列表保存到 /root/myfile 中
[root@servera~]# vim /usr/local/bin/file.sh#!/bin/bash
find /usr -size -10M -perm -2000>/root/myfile
[root@servera~]# chmod a+x /usr/local/bin/file.sh[root@servera~]# file.sh[root@servera~]# cat /root/myfile/usr/bin/write/usr/bin/locate
/usr/libexec/utempter/utempter
/usr/libexec/openssh/ssh-keysign
版权归原作者 Blue Dream~ 所有, 如有侵权,请联系我们删除。