备战RHCSA命令笔记
RHCSA8-EX200备考笔记
######## #### 环境介绍及Linux基础 #### ########
从网盘下载练习环境文件(比如f0-rhel82-v20201230.zip)
并使用 MD5校验工具 计算校验值,确保与网盘分享的MD5校验值一致,
否则下载的文件可能易损坏,请重新下载。
部署f0-rhel82练习环境:
1)解包练习环境(比如f0-rhel82-v20201230.zip)
++ 存放到空间较大的一个分区下,比如 G:\f0-rhel82
2)安装 VMware Workstion 16 虚拟化软件
++ 作用:用软件的方式去模拟计算机
++ 快照优势:重返“十八岁”
3)运行 VMware Workstion 16 程序,使用练习环境
++ 通过“文件”->“打开”找到 G:\f0-rhel82\目录下的虚拟机文件
!!!! 关于CPU处理器兼容性调整 ——
如果部署环境的电脑用的是AMD处理器,开启虚拟机时可能会遇到以下错误:
qemu-kvm: error: failed to set MSR 0xe1 to 0x0
.. ..
建议执行以下操作以排除错误:
[root@server1 ~]# echo 'options kvm ignore_msrs=1' > /etc/modprobe.d/qemu-system-x86.conf
[root@server1 ~]# reboot
Cockpit,驾驶舱 —— RHEL8提供的通过浏览器来管理系统的Web界面
使用RHEL8主机的Web驾驶舱:
1)准备工作,安装驾驶舱的软件包
# yum -y install cockpit cockpit-dashboard cockpit-machines
2)启用驾驶舱
# systemctl enable cockpit.socket --now
3)使用驾驶舱
Web浏览器访问 https://虚拟机的IP地址:9090
以管理员root登录
系统network ==> NetworkManager
为RHEL8主机快速配置网络连接:
# nmtui //NetworkManager Text User Interface
++ 使用箭头键切换、Enter键确认、空格键选择
++ 注意修改IPv4地址配置方式(Automatic自动、Manual手动)
++ 通过 Show 显示地址配置,Add添加IP地址,比如 172.25.0.25/24
++ 根据需要添加默认网关 Gateway 地址,比如 172.25.0.254
++ 根据需要添加DNS Server地址,比如 172.25.0.254
环境现状:
Win10真机(MobaXterm) 172.25.0.200 --> Server1(f0-rhel8虚拟机) 172.25.0.254 --> red(虚拟机)172.25.0.25/24
实现以下配置:
Server1(f0-rhel8虚拟机) 172.25.0.254 --> red(虚拟机)172.25.0.25/24
第一步,为red虚拟机配置网络参数
1)Activities ->Show Applications -> Virtual Machine Manager -> red
2)以root用户登录,密码redhat
3)执行nmtui配置主机名、IP地址参数,并记得要激活
red.net0.example.com
manual
IP地址/掩码:172.25.0.25/24
Gateway:172.25.0.254
DNS Server:172.25.0.254
第二步,从Server1远程控制red虚拟机
[root@server1 ~]# ssh root@red.net0.example.com
.. .. 第一次连接时根据提示输入 yes 接受密钥
[root@red ~]#
Linux命令基础 ——
1)命令行基本概念、命令行格式、快捷键
命令行:管理员输入的一串用来完成xx任务的字符,按Enter键提交
解释器:Linux系统中的一个用来翻译/解释管理员提交的命令行的特殊程序(/bin/bash),通常称为shell(外壳,包在Linux内核外边的一层壳),负责把用户提交指令变成内核能理解并执行的指令
内核:操作系统(控制计算机硬件的软件平台)的最核心的部分(kernel、nt),主要用来管理CPU处理器、内存、磁盘等各种硬件设备
Linux目录结构:
图形环境,通过 Activities -> Files -> Other Locations -> Computer
命令行环境,ls /
Linux目录的层次分隔:斜杠 /
最顶层 就是 一个 / ,表示根目录
常见的一级目录:
-
bin、sbin:存放可执行文件
-
dev:存放各种硬件设备
-
home:存放普通用户的主目录,比如/home/zhsan、/home/lisi
-
root:管理员账号的主目录
-
mnt:管理员手动挂载一些外部设备的目录
-
media:自动识别并挂载的设备目录
-
proc:内存数据的映射,不占用实际的硬盘空间
-
tmp:临时文档目录
-
var:存放变化的数据,系统日志、邮箱、……
-
boot:存放系统启动文档(内核)
-
etc:存放各种系统配置文件
-
opt:第三方软件的资源或安装目录
-
usr:存放与用户相关的各种数据
命令行的基本格式:
命令名字 [-选项...] [参数...]
++ 选项的作用,控制命令的执行方式、效果
++ 参数的作用,为命令提供操作对象
常用的快捷键:
Tab:自动补全命令名字、文件路径、服务名、软件名
Crtl+L:清屏(相当于clear命令)
Ctrl+C:放弃当前任务,中止
Esc+. :快速粘贴前一条命令的最后一个参数
2)常用的命令(ls、cd、pwd、su、mkdir、touch、cat、less、cp、rm、mv)
ls,用来列出(list)目录下有哪些文件,列出文件的属性
++ 常用选项:
-l,长格式(long)列出对象的详细信息(大小、权限、修改时间、……)
-h,显示更易懂(human)的容量单位(说人话)
-d,只看目录/文件(directory)本身的信息(即使参数是一个目录,下面还有内容也不会显示)
-A,列出隐藏文档(名称以 . 开头的文档)
pwd,用来列出当前在哪个目录下(print working directory)
cd,用来改变工作目录(change directory)
++ 使用 ~ 表示当前用户的主目录,~zhsan 表示zhsan的主目录(/home/zhsan)
su,切换到另外一个用户身份(substitute user)
++ 建议加上 -l 选项(简写为 - )来模拟登录过程
++ 管理员切换到其他用户,不需要密码
++ 普通用户切换到其他用户,需要验证对方的密码
mkdir,创建新的目录(make directory)
++ 常用选项:
-p,递归创建多层目录(parent),如果目录已经存在,也不提示错误
touch,用来测试创建指定名称的文件(内容为空)
cat,用来阅读短文件,直接显示整个文件的全部内容
++ 比如 cat /etc/hosts 看地址映射文件、cat /etc/hostname 看主机名配置文件
less,用来阅读长文件,先显示文件的第一屏内容,通过PgUp、PgDn翻页阅读,q退出
++ 比如 less /proc/cpuinfo 看当前主机的CPU处理器信息
cp,用来复制文档
++ 常用选项 -r,recursive,复制目录的时候需要加
++ 比如 cp file1 file2、cp -r mulu1 mulu2
rm,用来删除文档
++ 常用选项 -r,删除目录的时候需要加;-f,强制(force)删除文档时需要添加
++ 比如 rm -rf /* 删根操作(慎做)
mv,用来移动/改名文档
++ 比如 mv file1 file2、mv mulu1 mulu2
3)获取命令的帮助man
++ 执行 man 命令名 来获取这个命令的使用帮助
++ 重点看 SYNOPSIS(语法格式)、DESCRIPTION(选项的含义和用法描述)
++ 按 /word 查找包含word的文字描述,按 n或N来切换不同查找结果
++ 按 PgUp、PgDn翻页,按q键退出
4)vi/vim编辑器
++ vi,visual interface,可视化界面,Unix/Linux系统中默认文件编辑器
++ vim,vi improved,vi编辑器的增强版,由vim-enhanced软件包提供
++ 三种工作模式:命令模式(阅读/查看/复制粘贴)、输入模式(录入文字)、末行模式(保存/退出)
++ 按 i 键 可以从 命令模式 切换到 输入模式
++ 按 Esc 键 可以从 任务模式 切换到 命令模式
++ 按 : 键 可以从 命令模式 切换到 末行模式
++ 在末行模式下,常见的退出方式 —— :wq 保存并退出,或者 :q! 放弃保存并退出
++ 使用vi/vim创建/修改文件
# vi 文件名 //打开vi编辑器,并建立临时文件
按 i 键切换到输入模式,录入文本内容
按 Esc 键 返回到 命令模式
按 : 键 切换到末行模式
输入 :wq 保存修改并退出编辑器
++ 执行 yum -y install vim-enhanced 可以安装增强版的vim编辑器
systemctl服务控制:
++ systemctl,系统控制器,用来管理Linux系统的开机/关机/服务资源运行状态
++ 直接执行 systemctl 列出可以管理的系统资源,包括各种系统服务
++ 控制服务当前运行状态:systemctl start|stop|restart|status 服务名.. ..
++ 控制服务开机自启状态:systemctl enable|disable 服务名.. .. [--now]
firewalld、SELinux安全开关:
++ 防火墙的作用,内核的一套网络保护机制,通过firewalld服务来控制
++ 如何停止防火墙:systemctl disable firewalld --now
++ SELinux的作用,内核的一套系统保护机制,通过内核启动参数或者启动配置来控制
++ 如何关闭SELinux机制(三种状态 —— Enforcing强制保护、Permissive宽松模式、Disabled禁用)
# vi /etc/selinux/config
SELINUX=Permissive ==》重启后生效
# setenforce 0|1 ==》立即变成宽松|强制模式
# getenforce ==》查看结果
######## ######## ######## ########
01. 配置网络设置
关于网络的系统服务:
network --> NetworkManager(RHEL8已经没有network服务)
服务控制:
systemctl start|stop|restart|status 服务名.. ..
systemctl enable|disable 服务名.. ..
systemctl enable|disable --now 服务名.. ..
systemctl is-enabled 服务名.. ..
systemctl is-active 服务名.. ..
RHEL7/8的系统管理器init(systemd)
配置单元(unit):service、target
临时设置:命令工具
hostname、hostname 新主机名
ifconfig [-a]、ifconfig 连接名 IP地址/掩码长度
route -n、route add|del default gw 默认网关地址
host 查询对象 [DNS服务器地址]
固定/永久设置:改配置文件、重载服务
/etc/hostname
/etc/sysconfig/network-scripts/ifcfg-连接名
hostnamectl set-hostname 新主机名
辅助配置工具:
nmcli(命令行)、nmtui(文本用户界面)、nm-connection-editor(图形)
nmcli基本用法:
nmcli device status
nmcli connection show
nmcli connection show "连接名"
nmcli connection modify "连接名" ipv4.method man ipv4.addresses "IP地址/掩码"
nmcli connection modify "连接名" ipv4.gateway 默认网关地址
nmcli connection modify "连接名" ipv4.dns DNS服务器地址
nmcli connection modify "连接名" connection.autoconnect yes
nmcli connection up "连接名"
nmcli connection down "连接名"
nmcli connection add con-name "连接名" ifname 接口名 type ethernet
nmcli connection del "连接名"
接口名:内核识别的网卡设备的物理名称
连接名:网卡所使用的这一份网络配置的逻辑名称
运行级别切换:
systemctl isolate multi-user.target
systemctl isolate graphical.target
systemctl set-default multi-user.target|graphical.target
02. 配置您的系统以使用默认软件仓库
用途:软件仓库/YUM源为其他客户机集中提供软件包及关联信息
RHEL8光盘预设源:BaseOS、AppStream
客户端配置文件:/etc/yum.conf、/etc/yum.repos.d/*.repo
[仓库1标识]
name = 仓库描述
baseurl = 仓库的地址
enabled = 1|0
gpgcheck = 1|0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[仓库2标识]
.....
++ 安装 自动补全、网络工具、vim编辑器、DNS查询 等基本环境包
# yum -y install bash-completion net-tools vim-enhanced bind-utils
++ yum命令的基本用法(新工具为dnf,用法相同):
yum clean all //清除缓存
yum repolist //列出可用的仓库/源信息
yum list [软件名.. ..] //列出软件包的安装情况
yum info 软件名.. .. //查询指定软件的描述信息
yum -y install 软件名.. .. //安装指定的软件包(同时安装此软件包依赖的其他软件包)
yum -y reinstall 软件名.. .. //重装指定的软件包(找回丢失的文件,不影响依赖包)
yum -y remove 软件名.. .. //卸载指定的软件包(同时卸载依赖此软件包的其他软件包)
yum -y update 软件名.. .. //升级软件包
yum search 关键词 //根据关键词搜索相关的软件
yum provides "文件路径" //查询哪一个软件包能提供xx文件
03. 调试SELinux
SELinux,Security-Enhanced Linux:
美国NSA国家安全局提供的一套基于内核的增强的强制安全保护机制,主要针对用户、进程、文档做了一些安全标签及相关限制。
安全策略谁来提供:
NSA、RedHat
查看文件、进程的安全上下文:
ls -Z .. ..
ps -Z .. ..
SELinux的运行模式:enforcing(强制)、permissive(宽松)、disabled(禁用)
查看/切换SELinux模式:
getenforce
setenforce 1|0 //只能在强制、宽松之间切换
开机后自动选择SELinux模式:
# vim /etc/selinux/config
SELINUX=enforcing
# reboot
SELinux预设策略的开关控制(布尔值):
getsebool -a //列出所有开关参数
setsebool -P 开关参数=on //打开xx开关(-P表示永久)
管理SELinux安全上下文、端口开放策略:
semanage fcontext -l //列出所有预设的安全上下文策略
semanage fcontext -a -t 策略类型 文档路径...//添加文档的上下文策略
semanage fcontext -d ... //删除某个上下文策略
semanage port -l //列出所有预设的端口开放策略
semanage port -a -t 策略类型 -p 协议 端口号 //添加某个类别的端口开放策略
semanage port -d ... //删除某个上下文策略
比如:
# semanage port -a -t http_port_t -p tcp 82 //允许Web开放82端口
# semanage fcontext -a -t httpd_sys_content_t '/webroot(/.*)?'
++ 将/webroot作为网页内容目录
修改文档的安全上下文:
chcon -R --reference=模板目录 文档路径... //参考模板设置文档的上下文
chcon -R -t 归属类型 文档路径...//设置安全归属为指定值
restorecon -R 文档路径... //根据预设策略自动设置上下文
SELinux排错:
1)安装排错包
# yum -y install setroubleshoot-server
2)试错
# systemctl restart httpd //因SELinux 策略阻止,导致服务无法启动
Job for httpd.service failed because the control process exited with error code.
See "systemctl status httpd.service" and "journalctl -xe" for details.
3)查错,根据提示找到解决办法
# journalctl -xe //查看日志,利用方向键翻阅日志,找到如下提示
.. ..
***** Plugin bind_ports (99.5 confidence) suggests ************************
If you want to allow /usr/sbin/httpd to bind to network port 82
Then you need to modify the port type. //要允许httpd开启82端口
Do
# semanage port -a -t PORT_TYPE -p tcp 82 //需要执行这条命令
where PORT_TYPE is one of the following: http_cache_port_t, http_port_t, jboss_management_port_t, jboss_messaging_port_t, ntop_port_t, puppet_port_t.
//其中的PORT_TYPE要改成 http_port_t
或者,按以下方法也可以找到相关提示:
# grep setrouble /var/log/messages //过滤SELinux排错消息
.. ..
May 11 03:21:54 localhost setroubleshoot[13814]: SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port 82. For complete SELinux messages run: sealert -l 1fe64ab0-66a7-4095-85d1-469283fb8fce
//根据提示查看详情
# sealert -l 1fe64ab0-66a7-4095-85d1-469283fb8fce
.. .. //获取解决办法
4)排错
# semanage port -a -t http_port_t -p tcp 82 //调整SELinux策略,允许Web开放TCP 82端口
# systemctl restart httpd //能正常启动httpd(使用82端口)
Web网站服务
用途:基于B/S架构提供网页的服务端程序
应用层协议:HTTP(TCP 80)
软件包(S):httpd
软件包(B):firefox、IE、elinks
如何访问一个网站(URL,Uniform Resource Locator)——
http://www.baidu.com/
http://music.baidu.com/mp3/huluwa.mp3
协议名://服务器地址:端口/目录路径/文件
服务器默认网页从哪来 ——
网页根目录:/var/www/html/
配置文件:/etc/httpd/conf/httpd.conf【Include】
/etc/httpd/conf.d/*.conf
默认首页:index.html
04. 创建用户账户
05. 创建用户账户
如何控制文档的访问 —— 谁(归属)、有什么权限(r、w、x)
用户账号:登录系统、控制访问权限 ==》/etc/{passwd,shadow}
组账号:控制访问权限 ==》/etc/{group,gshadow}
用户账号的增删改查:
useradd [-u UID] [-g 基本组] [-G 附加组] [-d 家目录] [-s 登录Shell] 用户名
userdel -r 用户名
usermod [-u UID] [-d 家目录] [-s 登录Shell] 用户名
id 用户名
echo 密码 | passwd --stdin [用户名]
基本组(主要组、私有组):每一个用户账号所属的最主要的组(通常这个组只有一个用户)
附加组(公共组、从属组):每一个用户账号除了基本组以外,还隶属的其他的组
组账号的增删改查:
groupadd 组名
groupdel 组名
gpasswd -a 用户名 组名
gpasswd -d 用户名 组名
groups
usermod -a -G 组名 用户名
用户身份切换:
su - 用户名
su - 用户名 -c '命令行'
06. 配置cron作业
什么是计划任务:
按照计划的时间(时刻、周期)执行指定的任务
系统服务:crond
配置文件:
/etc/crontab
/var/spool/cron/用户名
配置记录格式:
分 时 日 月 周 任务操作命令(用绝对路径、必要时可记录输出)
时刻表示方式:
*
5-10
5,7,9
*/3
1-15/3
配置工具:
crontab -e [-u 用户名]
crontab -l [-u 用户名]
crontab -r [-u 用户名]
检查计划任务的执行情况:
tail -5 /var/log/cron
07. 配置 /var/tmp/fstab 权限
权限的种类 ——
基本权限:r、w、x(针对 属主、属组、其他人)
对于文件来说
读取,r,read ====》 cat、less、more、head、tail .. ..
修改,w,write ====》 vim、gpedit、>、>>、.. ..
执行,x,execute ====》 是否能被运行
对于目录(文件夹)来说
读取,r,read ==》 ls .. ..
修改,w,write ==》 mkdir、touch、cp、mv、rm、chmod.. ..
执行,x,execute ==》 cd、是否能进入此目录
特点:只要对一个目录有w权限,可以删除这个目录下任何文件
查看文档权限 ——
ls -l 文档....、ls -ld 目录....
设置文档权限 ——
chmod -R 权限字串 文档....
chmod 归属关系+-=权限类型 文档....
chmod u+x,g-w,o=rwx 文档....
chmod a+x 文档....
chmod ugo+x 文档....
chmod 755 文档....
文档的归属关系 ——
属主(user):这个文件属于哪一个用户
属组(group):这个文件属于哪一个组
其他人(other):除了属主、属组以外的任何用户
所有人(all):所有用户
设置文档归属 ——
chown -R 属主 文档....
chown -R :属组 文档....
chown -R 属主:属组 文档....
访问控制列表:ACL(针对个别用户/组设置独立的权限)
getfacl 文档....
setfacl -m user:用户名:权限组合 文档....
setfacl -m group:组名:权限组合 文档....
setfacl -b 文档....
权限的数字标记:
r 4、w 2、x 1
所有者权限 所属组权限 其他人的权限
rw- r-- ---
6 4 0
rwxr-xr-x ==》 421401401 ==》755
rwxrwxrwx ==》 777
--------- ==》 000
rw-r--r-- ==》 644
08. 创建共用目录
附加权限:
4 set uid:附加到 “属主” 的x位上,变成 s
使普通的程序具有特殊属性(任何人在执行这个程序的时候,自动拥有这个程序的所有者的权限)
2 set gid:附加到 “属组” 的x位上,变成 s
使普通的程序具有特殊属性(任何人在执行这个程序的时候,自动拥有这个程序的所属组的权限)
使普通的目录的属组权限能够自动往下继承(在目录下新建的文档自动属于这个目录的属组)
1 粘滞位:附加到 “其他人” 的x位上,变成 t
使用户在拥有w权限的目录下不能够删除其他人的文件
附加权限设置示例:
chmod u+s 文件.. .. //比如:/usr/bin/passwd
chmod g+s 文件.. ..
chmod o+t 文件.. .. //比如:/tmp
chmod 4755 文件.. ..
chmod 1777 目录.. ..
chmod 2770 目录.. ..
09. 配置NTP
NTP,Network Time Protocol
时间同步:将计算机与指定服务器的时间保持一致
NTP服务端(考试服务器):ntpd或chronyd
NTP客户端:软件包chrony(系统服务chronyd)
客户端配置文件:/etc/chrony.conf
pool 时间服务器的域名 iburst //适合一个域名解析为多个IP地址的情况(服务器池)
server 时间服务器的域名 iburst //适合一个域名解析为单个服务器IP地址的情况
++ iburst 参数的作用:
1)第一次同步时,头4个包的间隔为2秒,以便能更快的获得标准时间。
2)如果在一个标准轮询间隔内没有应答,会向NTP服务器再发送8个包(而不是通常的一个)。
3)如果NTP 服务器仍没有给出可识别的应答,那么本机的时间将不会变化。
NTP验证/设置工具:
timedatectl //查看时间日期状态信息
chronyc sources -v//检查当前使用的NTP源信息
手动设置系统日期、时间:
date -s 'HH:MM'
date -s 'HH:MM:SS'
date -s 'yyyy-mm-dd'
date -s 'yyyy-mm-dd HH:MM'
补充:
根据BIOS时间设置系统时间:
hwclock -s
根据系统时间设置BIOS时间:
hwclock -w
10. 配置autofs
本地文件系统:文档存放在本机连接的磁盘上
EXT4、FAT32
本地文件系统:文档存放在本机连接的磁盘上
EXT4、XFS、SWAP
网络文件系统:文档存放在网络中的一台服务器上,通过共享方式提供(比如NFS)
NFS,Network File System
mount挂载(本地):
mount /dev/cdrom /mnt/dvd
mount /dev/sda1 /mnt/tdir
NFS客户端 ——
查看共享资源列表:
showmount -e 目标主机 //需要软件包 nfs-utils
挂载NFS共享资源:
mount 服务器地址:共享文件夹路径 /mnt/tdir
++ 文件系统的挂载方式 ——
1)手动挂载:mount 设备路径 挂载点目录
2)开机自动挂载:修改 /etc/fstab 配置文件
设备路径 挂载点目录 文件系统类型 defaults,_netdev 0 0
3)半自动挂载(已经配置好/etc/fstab):
mount 设备路径
mount 挂载点目录
4)触发挂载(按需自动挂载):autofs服务
++ 软件包/系统服务:autofs
++ 主配置:/etc/auto.master
目标文件夹监控策略配置文件
++ 监控策略配置:/etc/*
子目录名 -挂载选项:设备路径
子目录名 -挂载选项NFS服务器地址:共享目录绝对路径
通过部署autofs服务,可以代替管理员按需、自动完成以下任务:
1)当有用户需要使用 /rhome/ 目录下的 ldapuser0 子目录时,提前创建此目录,并将服务器上的 classroom.example.com:/rhome/ldapuser0 挂载到本机的 /rhome/ldapuser0
2)当用户不再使用 /rhome/ 目录下的 ldapuser0 子目录时,自动卸载此目录上已挂载的资源,并删除此目录
本地账号:存放在本机的/etc/passwd、/etc/shadow,家目录一般位于 /home/用户名
网络账号:存放在网络(AD域、LDAP域)中的认证服务器上,家目录也存在认证服务器上
11. 查找文件
按照条件查找系统当中的任何文件:
find [目录范围] [查找条件1] -o [查找条件2] .. ..
find [目录范围] [查找条件1] -a [查找条件2] .. ..
常见的查找条件表示:
-name 文档名称
-type 文档类型 【f、d、l、b、c】
-size +|-文档大小
-mtime +|-修改时间 【1 之前24小时~48小时】
-user 所属用户
-group 所属组
处理find查找结果:
-exec 命令行(嵌入 {} 替代查找结果) \;
修改文件的时间戳:
12. 查找字符串
grep基本用法:
grep '关键词' 文件.. ..
grep '正则表达式' 文件.. ..
常见的选项:
-v:将条件取反
--color:突出显示结果
-w:单词匹配
-c:统计匹配行数
简单正则表达式:
^word:查找以word开头
word$:查找以word结尾
^$:查找空行
-E:支持使用扩展正则表达式(egrep)
重定向操作:
命令操作 > 文件
命令操作 >> 文件
管道操作:
命令1 | 命令2
13. 创建归档
归档:把很多文件归纳到一起 tar
压缩:减小文件占用空间的大小 gzip、bzip2、xz
tar命令的选项:
-c:创建新文档
-x:释放备份文档
-f:指定文档名称
-z:处理 .gz 格式
-j:处理 .bz2 格式
-J:处理 .xz 格式
-t:显示文档列表
-p:保持原有权限
-P:保持绝对路径
-C:指定释放备份文件时的目标位置
--exclude=排除的子目录
tar 制作备份文件:
tar -zcf 备份文件名.tar.gz 被备份的文档....
tar -jcf 备份文件名.tar.bz2 被备份的文档....
tar -Jcf 备份文件名.tar.xz 被备份的文档....
tar 从备份文件恢复:
tar -xf 备份文件名 [-C 目标文件夹]
tar 查看备份文件内容:
tar -tf 备份文件名
14. 设置root密码
基本思路:
++ 调整开机过程中的启动参数,进入Recovery恢复模式
++ 从而绕过密码验证,获得根分区控制权限
RHEL7/8:
++ 重启RHEL8主机,按e键打断启动过程
++ 修改linux行(ro改rw,末尾添加rd.break ),然后按ctrl+x键启动
++ 获得 switch_root:/# 命令行环境(恢复模式)
重设密码操作:
switch_root:/# chroot /sysroot //切换到系统根环境
sh-4.2# echo redhat | passwd --stdin root //重设密码
sh-4.2# touch /.autorelabel //通知系统下次开机时重新标记SELinux安全上下文
sh-4.2# exit //退出chroot环境
switch_root:/# exit //退出Recovery恢复模式,自动重启系统,完成重置密码任务
15. 配置网络地址
同“01”,此处略
16. 配置您的系统以使用默认软件仓库
同“02”,此处略
17. 调整逻辑卷大小
在计算机上使用磁盘空间的过程:
识别磁盘 --> 分区 --> 格式化 --> 挂载 --> 访问挂载点
fdisk -l --> fdisk/parted --> mkfs相关 --> mount --> ls、vim
磁盘分区操作 ——
fdisk -l
fdisk /dev/vdb
parted /dev/vdb
分区模式msdos:四个主分区、扩展分区、逻辑分区
分区模式gpt(支持>2T空间):主分区(操作系统支持一般<128个)
刷新硬盘分区表:
partprobe /dev/vdb 或者 partx -a /dev/vdb
reboot
练习:使用fdisk调整磁盘/dev/vdb
1)新建512M的分区 /dev/vdb2
2)新建1000M的分区/dev/vdb3
格式化操作:
mkfs.ext3 分区设备
mkfs.ext4 分区设备
mkfs.xfs 分区设备
mkfs.vfat 分区设备
LVM逻辑卷管理机制 —— 化零为整、动态伸缩
把零散的分区(PV物理设备) ===》整编的大卷组(VG虚拟磁盘) ===》 根据需要获取空间(虚拟分区LV)
游击队 ===》 八路军 ===》按需增编/简编人员
识别磁盘 --> 分区 --> 卷组 --> 逻辑卷 --> 格式化 --> 挂载 --> 访问挂载点
实现方式:
分区/物理卷(2G、4G、6G) --> 卷组(12G) --> 逻辑卷(10G、1G)
LVM管理工具 ——
物理卷操作(不常用):pvscan、pvdisplay、pvcreate
卷组操作:vgscan、vgdisplay、vgcreate、vgremove、vgextend
逻辑卷操作:lvscan、lvdisplay、lvcreate、lvremove、lvextend
PE:分配逻辑卷空间的时候,最小的单位
创建卷组:
vgcreate [-s PE大小] 卷组名 分区.. ..
创建逻辑卷:
lvcreate -L 大小 -n 名称 卷组名
lvcreate -l PE个数 -n 名称 卷组名
扩展逻辑卷:
lvextend -L +大小 /dev/卷组名/逻辑卷名
扩展卷组:
vgextend 卷组名 分区.. ..
通知内核新的文件系统大小:
resize2fs /dev/卷组名/逻辑卷名 //适用于EXT2/3/4文件系统(blkid检查)
xfs_growfs 逻辑卷名的挂载点//适用于XFS文件系统(blkid检查)
逻辑卷的设备位置:
/dev/卷组名/逻辑卷名
或者
/dev/mapper/卷组名-逻辑卷名
18. 添加交换分区
交换分区:虚拟内存,一般设置成物理内存的1~2倍,<16G
格式化交换分区:
# mkswap 设备路径
启用/停止控制:
# swapon 设备路径
# swapoff 设备路径
查看交换分区使用情况:
19. 创建逻辑卷
同“16”,此处略
20. 创建VDO卷
VDO,Virtual Data Optimizer,虚拟数据优化器:
VDO是一个内核模块,目的是通过重删减少磁盘的空间占用,以及减少复制带宽,VDO是基于块设备层之上的,也就是在原设备基础上映射出mapper虚拟设备,然后直接使用即可,功能的实现主要基于以下技术。
1)零区块的排除:在初始化阶段,整块为0的会被元数据记录下来,这个可以用水杯里面的水和沙子混合的例子来解释,使用滤纸(零块排除),把沙子(非零空间)给过滤出来,然后就是下一个阶段的处理。
2)重复数据删除:在第二阶段,对于输入的数据会判断是不是冗余数据(在写入之前就判断),这个部分的数据通过UDS内核模块来判断(Universal Deduplication Service),被判断为重复数据的部分不会被写入,然后对元数据进行更新,直接指向原始已经存储的数据块即可。
3)压缩:一旦消零和重删完成,LZ4压缩会对每个单独的数据块进行处理,然后压缩好的数据块会以固定大小4KB的数据块存储在介质上,由于一个物理块可以包含很多的压缩块,这个也可以加速读取的性能。
软件包:vdo
管理工具:vdo
系统服务:vdo
vdo基本操作:
vdo create --name=VDO卷名称 --device=设备路径 --vdoLogicalSize=逻辑大小
vdo list
vdo status -n VDO卷名称
vdostats [--human-readable] [/dev/mapper/VDO卷名称]
vdo remove -n VDO卷名称
VDO卷的格式化加速(跳过去重分析):
# mkfs.xfs -K /dev/mapper/VDO卷名称
# mkfs.ext4 -E nodiscard /dev/mapper/VDO卷名称
挂载参数(等待vdo服务启动以后):
x-systemd.requires=vdo.service //偏门参数,换成 _netdev (等网络启用之后)
21. 配置系统调优
RHEL7/8的调优服务tuned:
提供了大量预设的调优方案,旨在于简化调优的实施,充分利用系统资源与能效。
管理员可以针对不同的业务选择不同的优化策略。
软件包:tuned
配置目录:/etc/tuned、/usr/lib/tuned/优化方案/
管理工具:tuned-adm
服务名:tuned
tuned-adm基本用法:
tuned-adm list //列出可用的优化方案
tuned-adm recommend //查看系统推荐的优化方案
tuned-adm profile <方案名称> .. .. //切换为xx优化方案
tuned-adm active //查看当前活动方案
附注:关于cockpit驾驶舱
Cockpit驾驶舱:
是红帽开发的网页版图像化服务管理工具,包括对系统、用户账号、网络、NTP时间同步、调优方案、磁盘存储、系统服务、SELinux排错、日志分析、命令行终端、虚拟机、红帽订阅……等多方面的Web可视化管理,优点是无需中间层。
Cockpit具有如下特点:
1)从易用性考虑设计,方便管理人员使用,而不是仅仅的终端命令按钮化。
2)不会打乱已有终端或脚本服务配置,通过 Cockpit 启用的服务可以在终端停止,脚本运行的错误亦会被Cockpit捕获。
3)支持一次性管理多个服务,实现自动化和批处理。
软件包:cockpit、cockpit-dashboard(仪表板组件)、cockpit-machines(虚拟机管理组件)
服务/单元:cockpit.socket
访问接口:https://主机地址:9090