赞
踩
笔记是考红帽的笔记,大都是老师的笔记,有些地方有自己的补充,这是CSA
的笔记。CE
的在下面
CE的笔记(Ansible)
RHEL7/8的系统管理器init(systemd)
service(服务)、target(启动级别)
network --> NetworkManager(RHEL8已经没有network服务)
临时设置:命令工具:
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 "连接名
[root@server1 ~]$ ifconfig #查看ip地址
[root@server1 ~]$ nmtui #文本方式配置ip地址为ens33网卡配置ip,如果找不到ens33网卡,可按以下方式添加
[root@server1 ~]$ nmcli connection add con-name ens33 ifname ens33 type ethernet #添加ens33网卡
[root@server1 ~]$ nmtui #然后再使用该命令配置ip,
vmnet的虚拟网络编辑器添加虚拟网卡,用来让真机和虚拟机互联,虚拟网卡构建
[root@server1 ~]# nm
nm nm-connection-editor nmtui nmtui-edit
nmcli nm-online nmtui-connect nmtui-hostname
[root@server1 ~]# nmtui
[root@server1 ~]#
配置网卡分三步,配置ip。网关,激活网卡,修改域名
修改获取方式为手动,Manual, 配置IP/掩码、网关、DNS、demo: 192.168.1.8/24、192.168.1.254、192.168.1.254
激活
或者使用命令行的方式配置
nmcli connection modify enp1s0 ipv4.method manual ipv4.addresses 172.25.0.25/24 命令行修改ip
nmcli connection up enp1s0 命令行激活网卡
显示所有包括不活动连接:nmcli con show
显示所有活动连接: nmcli con show –active
显示网络连接配置:nmcli con show "System eth0“
显示设备状态:nmcli dev status
显示网络接口属性:nmcli dev show eno16777736
图形环境,通过 Activities -> Files -> Other Locations -> Computer
名称 | 描述 |
---|---|
bin、sbin | 存放可执行文件 |
home | 存放普通用户的家目录 |
dev | 存放硬件设备 |
mnt | 可挂载外部设备 |
media | 自动识别并挂载的目录 |
proc | 内存数据的映射,临时数据,不占硬盘空间 |
tmp | 存放临时文件的目录 |
var | 存放经常变化的数据 ,比如日志、邮件 |
boot | 存放内核文件 |
etc | 存放配置文件 |
opt | 可以存放第三方文件 |
usr | 存放用户相关数据 |
命令行的基本格式:
命令名字 [-选项…] [参数…]
命令行常用的快捷键
CTRL-A
将光标移到行首(在命令行下)CTRL-E
将光标移动到行尾(在命令行下)CTRL-U
擦除从光标位置开始到行首的所有字符内容。在某些设置下,CTRL-U会不以光标位置为参考而删除整行的输入。CTRL+ K
·: 从光标处向后删除指令串CTRL-J
新行(换行[line feed]并到行首)。在脚本中,也可能表示为八进制形式(‘/012′)或十六进制形式(‘/x0a’)。CTRL-B
退格 (非破坏性的),这个只是将光标位置往回移动一个位置。CTRL-H
擦除(Rubout)(破坏性的退格)。在光标往回移动的时候,同时擦除光标前的一个字符。CTRL-C
中断,终结一个前台作业。CTRL-D
“EOF” (文件结尾:end of file)。它用于表示标准输入(stdin)的结束。在控制台或xterm 窗口输入文本时,CTRL-D 删除在光标下的字符。从一个shell中退出 (类似于exit)。如果没有字符存在,CTRL-D 则会登出该会话。在一个xterm窗口中,则会产生关闭此窗口的效果。CTRL-O
产生一个新行(在命令行下)。 CTRL-P
从history缓冲区召回上一次的命令(在命令行下)。此快捷键召回的顺序是由近及远的召回,即按一次,召回的是前一次的命令,再按一次,是召回上一次之前的命令,这和CTRL-N都是以当前的输入为起点,但是两个命令操作刚好相反,CTRL-N是从起点开始由远及近(如果起点是历史命令的话)。 CTRL-Q
Resume (XON)。恢复/解冻,这个命令是恢复终端的stdin用的,可参见CTRL-S。CTRL-S
Suspend(XOFF),挂起。这个是冻结终端的stdin。要恢复可以按CTRL-Q。CTRL-Y
将之前已经清除的文本粘贴回来(主要针对CTRL-U或CTRL-W)。CTRL-Z
暂停一个前台的作业;在某些文本处理程序中也作为替换操作;在MSDOS文件系统中作为EOF(End-of-file)字符。ctrl+l | 清屏 |
ctrl+c | 终止任务 |
tab键 | 补全命令 (如果不好用,要装bash-completion软件包) |
esc+. | 调用上个指令的最后一个参数,使用alt+.可以实现相同效果 |
ls -l | 查看文件详细信息 |
ls -lh | 详细信息+易读容量单位 |
ls -ld /opt | 查看opt目录本身的详细信息 |
ls -A | 查看隐藏文件 |
pwd | 看当前所在位置 |
cd /opt | 切换到/opt目录 |
mkdir a | 创建a目录 |
mkdir -p e/e | 创建多级目录 |
touch x | 创建普通文件,名字叫x |
cat x | 查看x文件里面的内容 |
cat /etc/hosts | 查看ip域名对应关系 |
less /etc/passwd | 查看长篇文档,可以使用键盘方向键手动翻页,而不是像cat命令直接看到最后一页 |
su - test | 切换到名为test的账户,管理员切换到其他账户无需密码,但是普通账户切换到其他账户需要密码 |
rm a | 删除a文件 |
rm -r a | 如果a是个目录,需要加r选项 |
rm -rf a | 强制删除无提示 |
rm -rf * | 删除当前目录下所有文件,高风险命令,慎用!! |
cp /etc/passwd /opt | 拷贝etc下的passwd文件,到根目录下opt,常用选项 -r,recursive,复制多级目录的时候需要加 |
mv passwd /root | 移动passwd文件到管理员的家目录 |
mv passwd abc | 为passwd文件改名为abc |
SYNOPSIS(语法格式)
、DESCRIPTION(选项的含义和用法描述)
/word
查找包含word的文字描述,按 n或N
来切换不同查找结果 PgUp、PgDn
翻页,按q键退出
vi / vim
三种工作模式:
yum -y install vim-enhanced 可以安装增强版的vim编辑器
客户端配置文件:/etc/yum.conf、/etc/yum.repos.d/*.repo
用途:软件仓库/YUM源为其他客户机集中提供软件包及关联信息 ,RHEL8光盘预设源:BaseOS、AppStream
[仓库1标识]
name = 仓库描述
baseurl = 仓库的地址
enabled = 1|0
gpgcheck = 1|0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[仓库2标识]
cd /etc/yum.repos.d/
vi abc.repo
[BaseOS] 仓库名称
name=BaseOS 仓库描述
baseurl=http://server1.net0.example.com/rhel8/BaseOS 仓库软件来源
enabled=1 仓库是否开启 ,1是开启0是关闭,默认不写这行也行,不写就是开启
gpgcheck=0 检测软件合法性,通常是0无需检测
[AppStream]
name=AppStream
baseurl=http://server1.net0.example.com/rhel8/AppStream
enabled=1
gpgcheck=0
常见的软件包安装:
# yum -y install bash-completion net-tools vim-enhanced bind-utils
阿里云 yum文件
yum repolist 查询仓库
yum -y install vim 利用仓库安装vim软件
yum -y install bash-completion 安装支持tab键的软件,安装完后需要退出,再登陆
yum provides ifconfig 查询ifconfig命令来自于哪个软件包
yum -y install net-tools 安装支持ifconfig等命令的软件包
#yum配置好之后使用yum或者dnf命令都可以调用仓
yum clean all 清除软件仓库缓存
yum repolist 查询软件仓库信息
yum -y install vsftpd 安装软件包(vsftpd服务)
yum -y remove vsftpd 删除软件包
yum provides ifconfig 查询ifconfig命令来自哪个软件包
yum search 关键词 //根据关键词搜索相关的软件
yum -y update 软件名.. .. //升级软件包
systemctl服务控制:
直接执行 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 ==》查看结果
systemctl start vsftpd 开启服务
systemctl stop vsftpd 关闭服务
systemctl restart httpd 重启服务
systemctl status vsftpd 查服务详细状态,可以看到服务是否开启等信息
systemctl is-active vsftpd 查服务精简状态,仅仅看是否开启
systemctl is-enabled vsftpd 查看服务是否开机自启
systemctl enable vsftpd 设置服务开机自启
systemctl disable firewalld --now 取消服务的开机自启,并关闭服务
systemctl enable firewalld --now 设置开机自启,并且开启服务
忘记服务名字查看
[root@liruilong tmp]# systemctl list-unit-files | grep ^fire*
firewalld.service disabled
[root@liruilong tmp]#
防火墙 :
systemctl stop firewalld 关闭
systemctl disable firewalld 取消开机自启
美国NSA国家安全局提供的一套基于内核的增强的强制安全保护机制,主要针对用户、进程、文档做了一些安全标签及相关限制。
getenforce 查selinux是否开启,可以看到下列3种状态
Enforcing是开启状态 ,Permissive是关闭(宽松),disabled是永久关闭
setenforce 1 临时设置selinux,1是开启,0是关闭
vim /etc/selinux/config 此配置文件决定了服务器重启后,selinux处于什么状态,永久设置
getsebool -a 查看布尔值
setsebool -P ftpd_anon_write=on 修改某服务对应的布尔值开关on是开启,off是关闭
ls -Z abc.html 查看某文件上下文值
chcon -t admin_home_t abc.html 修改文件上下文值,-t是指定文件的归属
restorecon abc.html 根据服务的预设值自定定义abc文件的上下文值
yum -y install setroubleshoot-server selinux排错工具包
semanage port -l 查询
semanage port -l | grep http 过滤查询,只看http相关内容
semanage port -a -t http_port_t -p tcp 82 在selinux管理的服务端口中,为http添加82端口
-a 是添加,如果是-d 就是删除
-t 指定某服务类型
-p 是定义协议和要添加的端口
firewalld 预设安全区域:
预设保护服务:
防火墙管理工具:
防火墙规则的作用范围:
查看/修改默认区域:
# firewall-cmd --get-default-zone
# firewall-cmd --set-default-zone=trusted
如何设置具体的防火墙规则:
# firewall-cmd --add-service=服务名 --zone=区域名
# firewall-cmd --add-source=源地址 --zone=区域名
常用配置
#执行如下命令,查看防火墙状态,是否为running。 firewall-cmd --state #执行如下命令,重新载入配置。比如在添加规则等之后,需要执行此命令。 firewall-cmd --reload #执行如下命令,列出支持的zone。 firewall-cmd --get-zones #执行如下命令,列出支持的服务,在列表中的服务是放行的。 firewall-cmd --get-services #执行如下命令,查看FTP服务是否支持,返回yes表示支持,返回no表示不支持。 firewall-cmd --query-service ftp #执行如下命令,临时开放FTP服务。 firewall-cmd --add-service=ftp #执行如下命令,永久开放FTP服务。 firewall-cmd --add-service=ftp --permanent #执行如下命令,永久移除FTP服务。 firewall-cmd --remove-service=ftp --permanent #执行如下命令,永久添加80端口。 firewall-cmd --add-port=80/tcp --permanent #执行如下命令,查看规则,此命令和iptables相同。 iptables -L -n #执行如下命令,查看帮助。 man firewall-cmd
#查看 firewalld 服务当前所使用的区域: firewall-cmd --get-default-zone #查询 eno16777728 网卡在 firewalld 服务中的区域: firewall-cmd --get-zone-of-interface=eno16777728 #把 firewalld 服务中 eno16777728 网卡的默认区域修改为 external,并在系统重启后生效。分 别查看当前与永久模式下的区域名称: firewall-cmd --permanent --zone=external --change-interface= eno16777728 firewall-cmd --get-zone-of-interface=eno16777728 firewall-cmd --permanent --get-zone-of-interface=eno16777728 #把 firewalld 服务的当前默认区域设置为 public: firewall-cmd --set-default-zone=public #启动/关闭 firewalld 防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器 时请慎用): firewall-cmd --panic-on firewall-cmd --panic-off #查询 public 区域是否允许请求 SSH 和 HTTPS 协议的流量: firewall-cmd --zone=public --query-service=ssh firewall-cmd --zone=public --query-service=https #把 firewalld 服务中请求 HTTP 协议的流量设置为永久拒绝,并立即生效: firewall-cmd --permanent --zone=public --remove-service=http firewall-cmd --reload #把在 firewalld 服务中访问 8080 和 8081 端口的流量策略设置为允许,但仅限当前生效: firewall-cmd --zone=public --add-port=8080-8081/tcp firewall-cmd --zone=public --list-ports
useradd abc 添加账户 userdel -r xyz01 删除用户,-r是删除与用户有关的文件 echo xxxxx | passwd --stdin abc 为abc账户非交互式配置密码 xxxxx id abcd 查看用户基本信息 uid是用户id号码 gid是用户所在基本组的号码 groups是用户附加组信息 --------------------------- tail -1 /etc/passwd 查看系统刚刚创建的用户信息 grep abc: /etc/passwd 查看系统种名字包含abc字符串的用户信息 usermod -u 1600 xyz02 为已经创建好的xyz02账户修改id号 usermod -d /opt xyz03 修改xyz03的家目录为/opt gpasswd -a xyz03 xyz02 为xyz03添加一个附加组(附属组)xyz02 gpasswd -d xyz03 xyz02 为xyz03从附加组xyz02中删除 usermod -s /sbin/nologin abcd 修改abcd账户的解释器为不可交互的状态 groupadd admins 创建组admins useradd -G admins zhsan 创建账户zhsan的同时添加附加组admins组 su - zhsan 切换账户 --------------------------------
crontab -e 为当前账户添加计划任务
crontab -e -u lisi 指定lisi账户添加计划任务
* * * * * date >> /opt/test 每分钟执行date任务
5-15 * * * * date >> /opt/test 每小时的5-15分钟
10,13,17 * * * * date >> /opt/test 每小时的10,13,17分钟执行
*/5 * * * * date >> /opt/test 每隔3分支执行一次
10-15/2 * * * * date >> /opt/test 每小时的10-15分钟里,每隔2分钟执行一次
crontab -r 删除计划任务
systemctl is-enabled crond.service 检测计划任务服务是否开机自启
基本权限 r 读 w写 x执行(目录是进入权限) chmod o+w abcd 为abcd文件的其他人添加写权限 chmod u-x abcd 为abcd文件的所属主删除x权限 chmod g+x abcd 为abcd文件的所属组 添加x权限 所属主 所属组 其他人 u g o ------------------ 数字方式定义文件权限 r=4 w=2 x=1 chmod 777 abcd 将abcd文件的所属主 所属组 其他人 的权限都设置成拥有rwx chmod 700 abcd 将abcd文件的所属主设置成拥有rwx权限 而所属组与其他人没有任何权限 ----------------------- 修改所属 chown lisi test 只修改所属用户 chown :lisi test 只修改所属组 chown abcd:abcd test 修改用户:组 chown -R lisi abc 递归修改abc目录以及目录中所有文件的所属主为lisi -R表示递归,对chmod命令也适用 --------------------
setfacl -m user:zhsan:rw /var/tmp/hosts 给zhsan用户单独针对hots文件的rw权限
setfacl -m group:zhsan:rw /var/tmp/hosts 给zhsan组单独针对hots文件的rw权限
setfacl -b /var/tmp/hosts 清除acl权限
getfacl /var/tmp/hosts 查看acl权限
附加权限设置示例:
+ chmod u+s 文件… … //比如:/usr/bin/passwd
+ chmod g+s 文件… …
+ chmod o+t 文件… … //比如:/tmp
+ chmod 4755 文件… …
+ chmod 1777 目录… …
+ chmod 2770 目录… …
set uid 可以使某用户在执行拥有此权限的文件时自动拥有此文件所属主的权限
set gid 可以使某用户在执行此文件时,自动拥有此文件的所属组权限,如果是目录拥有此权限,表示在该目录下创建的文件自动属于此目录的属组
粘滞位(t权限) 在一个拥有w权限的目录中,使用户之间不可以任意删除别人的文件
NTP,Network Time Protocol,时间同步:将计算机与指定服务器的时间保持一致
ntpd或chronyd
软件包chrony(系统服务chronyd)
/etc/chrony.conf
+ 1)第一次同步时,头4个包的间隔为2秒,以便能更快的获得标准时间。
+ 2)如果在一个标准轮询间隔内没有应答,会向NTP服务器再发送8个包(而不是通常的一个)。
+ 3)如果NTP 服务器仍没有给出可识别的应答,那么本机的时间将不会变化。
$timedatectl //查看时间日期状态信息
$chronyc sources -v//检查当前使用的NTP源信息
$firewall-cmd --add-service=ntp --permanent
$firewall-cmd --reload
date -s 'HH:MM'
date -s 'HH:MM:SS'
date -s 'yyyy-mm-dd'
date -s 'yyyy-mm-dd HH:MM'
补充:
$systemctl status chronyd 查看同步服务状态,通常都是开启状态
$vim /etc/chrony.conf 修改配置文件
server server1.net0.example.com iburst 将有iburst字样那行注释掉,从新添加此内容
$systemctl restart chronyd 重启服务
$chronyc sources -v 检查结果 带^*表示同步时间成功
$date -s 20:20:00 随意修改时间后,在重启服务器检测是否同步
$timedatectl list-timezones | grep -E "Asia/S.*"
$timedatectl set-timezone "Asia/Shanghai"
#手动同步系统时钟
$chronyc -a makestep
#查看时间同步源
$chronyc sources -v
远程复制:
在网络资源使用时自动挂载,不使用时自动卸载,达到节约资源的目的。
EXT4、XFS、SWAP,FAT32
NFS,Network File System
mount /dev/cdrom /mnt/dvd
mount /dev/sda1 /mnt/tdir
NFS客户端 ——查看共享资源列表:
1)手动挂载:mount 设备路径 挂载点目录
2)开机自动挂载:修改 /etc/fstab 配置文件
设备路径 挂载点目录 文件系统类型 defaults,_netdev 0 0
3)半自动挂载(已经配置好/etc/fstab):
4)触发挂载(按需自动挂载):autofs服务
软件包/系统服务:autofs nfs-utils
主配置:/etc/auto.master
目标文件夹监控策略配置文件
监控策略配置:/etc/*
子目录名 -挂载选项:设备路径
子目录名 -挂载选项NFS服务器地址:共享目录绝对路径
通过部署autofs服务,可以代替管理员按需、自动完成以下任务:
本地账号:存放在本机的/etc/passwd、/etc/shadow,家目录一般位于 /home/用户名
网络账号:存放在网络(AD域、LDAP域)中的认证服务器上,家目录也存在认证服务器上
showmount -e server1
yum -y install autofs nfs-utils 安装所需软件包
vim /etc/auto.master 修改主配置文件
/rhome /etc/rhome.rule 在第一行添加,/rhome是在本地什么位置作为远程资源的挂载目录,/etc/rhome.rule是远程资源配置文件所在路径,可以自定义
vim /etc/rhome.rule 修改上一步定义的远程资源配置文件,添加以下内容:
ldapuser0 -fstype=nfs 172.25.0.254:/rhome/ldapuser0 定义账户、文件系统类型、远程资源路径
systemctl restart autofs 重启服务
ls /rhome 查看原本没有的/rhome目录,发现已经自动生成
ls rhome/ldapuser0 再查看里面的内容,报权限错误 ,正常,已经激活自动挂载
ls /rhome 再次查看目录,已经看到远程资源,成功
find [目录范围] [查找条件1] -o [查找条件2] .. ..
find [目录范围] [查找条件1] -a [查找条件2] .. ..
修改文件的时间戳:
touch -d '2015-12-31 12:30' f2.txt
可以按条件查找文件 -type 按文件类型搜索 f 普通文件 d 目录 l 连接文件 b 块设备 find /opt -type f //在/opt下查找所有普通文件 -name 按名称搜索 find /opt -name abc //在/opt下查找名字叫abc的文件 -size + - 按文件大小搜索 find / -size +50M //在根目录下找大于50M的文件 -user 按用户名搜索 find . -user root //再当前目录找所属主是root的文件 ---------------------------------- -o 或者 -a 并且 可以实现多个条件的逻辑组合 find . -type f -a -name abc // 找当前目录下的普通文件并且名字叫abc,此处的-a也也可省略不写 find . -type f -o -name abc //找当前目录下的普通文件或者名字叫abc的文件 ---------------------------------- #找出/etc/目录下大小超过 5MB 的文件,并将其副本放入/root/findfiles 目录。 find /etc -size +5M -exec cp -p {} /root/findfiles \; -exec代表有继续执行的指令 cp 是拷贝 -p保持原文件属性权限,{}是find搜索到的文件 \;是结束
可以找到文档中的字符串,并且以行为单位输出.
grep "abc" abc //在abc文档中找有abc字符串的行
grep "ab" abc //在abc文档中找有ab字符串的行
grep "^ab" abc //在abc文档中找以ab字符串开头的行
grep "ab$" abc //在abc文档中找以ab字符串结尾的行
找到的内容还可以利用重定向保存到文件中
echo 123 > xyz.txt //喊出123 覆盖保存在文件xyz.txt中,如果xyz.txt中之前有内容,将会被覆盖
echo 123 >> xyz.txt //喊出123 追加保存在文件xyz.txt中,不会覆盖原有内容
grep "sbin" /etc/man_db.conf > /root/out.txt //使用grep在man_db.conf 文件中搜索到的包含sbin的行都保存到 out.txt文件中
将多个文件合成一个文件,方便保存和管理 ,还可以配合gzip、bzip2 、xz三种压缩工具进行压缩
-c 创建 -f指定文件名 -x 释放
-P 保存原始路径
-z 使用gzip方式在归档时压缩,扩展名可以写.gz
-j 使用bzip2 方式在归档时压缩,扩展名可以写.bz2
-J 使用xz 方式在归档时压缩,扩展名可以写.xz
tar命令的选项:
-c:创建新文档
-x:释放备份文档
-f:指定文档名称
-z:处理 .gz 格式
-j:处理 .bz2 格式
-J:处理 .xz 格式
-t:显示文档列表
-p:保持原有权限
-P:保持绝对路径
-C:指定释放备份文件时的目标位置
–exclude=排除的子目录
tar -xf 备份文件名 [-C 目标文件夹]
tar -tf 备份文件名
yum -y install tar //安装tar工具
yum -y install bzip2 //安装压缩工具
tar -czPf test.tar.gz /var/log //将/var/log打包压缩成test.tar.gz,使用的压缩方式是gzip
tar -cjPf test.tar.bz2 /var/log
tar -cJPf test.tar.xz /var/log
//重启 系统,按 e 键打断启动过程
//修改 linux 行(ro 改 rw,末尾添加 rd.break)然后按 ctrl+x 启动
按ctrl+x //以无需密码的方式启动系统
chroot /sysroot/ //切换到根系统
echo redhat | passwd --stdin root //改密码
touch /.autorelabel //重置selinux标记
exit
reboot //重启
yum -y install vim net-tools bash-completion //在blue主机安装常用软件包
磁盘的使用
lsblk //查看分区状态
fdisk /dev/vdc //使用fdisk分区工具,对/dev/vdc硬盘进行分区
p 查询分区状态
q 不保存退出
n 新建分区
Select (default p): //回车,默认是主分区
Partition number (1-4, default 1): //第一个分区默认序号是1
First sector : //起始扇区,直接回车
Last sector +500M //创建500M分区
w //保存退出
mkfs.xfs /dev/vdc1 //使用xfs文件系统为vdc1这个分区格式化
mount /dev/vdc1 /mnt //将新分区挂载到/mnt目录
df -h
umount /dev/vdc1 //卸载分区
在计算机上使用磁盘空间的过程:
识别磁盘 --> 分区 --> 格式化 --> 挂载 --> 访问挂载点
lsblk --> fdisk -l --> fdisk(MSDOS分区表)/gdisk(GPT分区表 >2.2TB磁盘)/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
格式化操作:
LVM逻辑卷
管理机制 —— 化零(物理卷PV)为整(卷组VG)、动态扩容伸缩,按需(逻辑卷LV)分配
把零散的分区(PV物理设备(物理卷)) ===》整编的大卷组(VG虚拟磁盘) ===》 根据需要获取空间(虚拟分区LV)
游击队 ===》 八路军 ===》按需增编/简编人员
识别磁盘 --> 分区 --> 卷组 --> 逻辑卷 --> 格式化 --> 挂载 --> 访问挂载点
分区/物理卷(2G、4G、6G)
--> 卷组(12G)
--> 逻辑卷(10G、1G)
PE
:分配逻辑卷空间的时候,最小的单位,默认为4M
创建卷组:
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/卷组名-逻辑卷名
[root@blue ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "myvg" using metadata type lvm2 Found volume group "test" using metadata type lvm2 Found volume group "rhel" using metadata type lvm2 [root@blue ~]# pvscan PV /dev/vdb2 VG myvg lvm2 [1008.00 MiB / 208.00 MiB free] PV /dev/vdb1 VG test lvm2 [<2.00 GiB / <1.67 GiB free] PV /dev/vda2 VG rhel lvm2 [<29.00 GiB / 0 free] Total: 3 [<31.98 GiB] / in use: 3 [<31.98 GiB] / in no VG: 0 [0 ] [root@blue ~]# lvscan ACTIVE '/dev/myvg/mylv' [800.00 MiB] inherit ACTIVE '/dev/test/vo' [336.00 MiB] inherit ACTIVE '/dev/rhel/swap' [<2.17 GiB] inherit ACTIVE '/dev/rhel/root' [<26.83 GiB] inherit [root@blue ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 30G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 29G 0 part ├─rhel-root 253:0 0 26.8G 0 lvm / └─rhel-swap 253:1 0 2.2G 0 lvm [SWAP] vdb 252:16 0 10G 0 disk ├─vdb1 252:17 0 2G 0 part │ └─test-vo 253:2 0 336M 0 lvm /vo └─vdb2 252:18 0 1G 0 part └─myvg-mylv 253:3 0 800M 0 lvm vdc 252:32 0 10G 0 disk └─vdc1 252:33 0 500M 0 part /mnt [root@blue ~]#
创建卷组
逻辑卷 化零为整 更自由的使用磁盘空间 创建逻辑卷之前先要创建卷组
,然后从卷组中划分空间给逻辑卷
vgcreate /dev/myvg /dev/vdb2 //正常创建卷组,默认扩展单元是4M(不满足目前题意,目前要求是16M)
vgdisplay /dev/myvg //可以在PE一栏中看到扩张单元的大小
vgremove /dev/myvg //删除卷组myvg
vgcreate -s 16MiB /dev/myvg /dev/vdb2 //创建扩展单元为16MiB的卷组(目前练习题要求),之后可以用vgdisplay查看PE的大小
创建逻辑卷
lvcreate -n mylv -L 800M /dev/myvg //正常创建
lvcreate -n mylv -l 50 /dev/myvg //按照扩展单元的数量创建(目前练习题要求),之后可以用vgs查看
vgs // 查看邏輯卷
[root@blue ~]# fdisk /dev/vdb Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n Partition type p primary (2 primary, 0 extended, 2 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (3,4, default 3): First sector (2074624-20971519, default 2074624): Last sector, +sectors or +size{K,M,G,T,P} (2074624-20971519, default 20971519): +1000M Created a new partition 3 of type 'Linux' and of size 1000 MiB. Command (m for help): w The partition table has been altered. Syncing disks. [root@blue ~]# part parted partprobe partx [root@blue ~]# partprobe /dev/vdb [root@blue ~]# vgcreate -s 16MiB myvg /dev/vdb3 Physical volume "/dev/vdb3" successfully created. Volume group "myvg" successfully created [root@blue ~]# lvcreate -l 50 -n mylv myvg Logical volume "mylv" created. [root@blue ~]# lvscan ACTIVE '/dev/myvg/mylv' [800.00 MiB] inherit ACTIVE '/dev/test/vo' [300.00 MiB] inherit ACTIVE '/dev/rhel/swap' [2.16 GiB] inherit ACTIVE '/dev/rhel/root' [<46.84 GiB] inherit [root@blue ~]# vgscan Found volume group "myvg" using metadata type lvm2 Found volume group "test" using metadata type lvm2 Found volume group "rhel" using metadata type lvm2 [root@blue ~]# lsblik -bash: lsblik: command not found [root@blue ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 50G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 49G 0 part ├─rhel-root 253:0 0 46.9G 0 lvm / └─rhel-swap 253:1 0 2.2G 0 lvm [SWAP] vdb 252:16 0 10G 0 disk ├─vdb1 252:17 0 500M 0 part │ └─test-vo 253:2 0 300M 0 lvm /vo ├─vdb2 252:18 0 512M 0 part [SWAP] └─vdb3 252:19 0 1000M 0 part └─myvg-mylv 253:3 0 800M 0 lvm vdc 252:32 0 10G 0 disk [root@blue ~]# mkfs.vfat /dev/myvg/mylv -bash: mkfs.vfat: command not found [root@blue ~]# yum -y install dosfstools Updating Subscription Management repositories. Unable to read consumer identity ....... [root@blue ~]# mkfs.vfat /dev/myvg/mylv mkfs.fat 4.1 (2017-01-24) [root@blue ~]# vim /etc/fstab [1]+ Stopped vim /etc/fstab [root@blue ~]# mkdir /mnt/mydata [root@blue ~]# fg vim /etc/fstab [root@blue ~]# mount -a [root@blue ~]# df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 483592 0 483592 0% /dev tmpfs 501328 0 501328 0% /dev/shm tmpfs 501328 6880 494448 2% /run tmpfs 501328 0 501328 0% /sys/fs/cgroup /dev/mapper/rhel-root 49087060 1765620 47321440 4% / /dev/vda1 1038336 163540 874796 16% /boot /dev/mapper/test-vo 301728 12732 288996 5% /vo tmpfs 100264 0 100264 0% /run/user/0 /dev/mapper/myvg-mylv 817584 4 817580 1% /mnt/mydata [root@blue ~]#
逻辑卷扩容
lvextend -L 300M /dev/test/vo //将名字叫vo的逻辑卷扩容到300M
blkid /dev/test/vo //查看vo逻辑卷的文件系统
lsblk //再查看该逻辑卷的挂载点
xfs_growfs /vo //刷新大小,如果是xfs的文件系统
resize2fs /vo //刷新大小,如果是ext的文件系统
交换分区
相当于win的虚拟内存
,在物理内存不足时借用硬盘空间,硬盘中预先划分一定的空间
,然后将把内存中暂时不常 用的数据临时存放到硬盘中
,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计目的是为了解决真实物理内存不足的问题。
但由于交换分区
毕竟是通过硬盘设备读写数据的, 速度肯定要比物理内存慢
,所以只有当真实的物理内存耗尽后才会调用交换分区的资源
.
格式化交换分区
swapon -s //查询交换分区状态,通常有可能会存在个默认的交换分区,不能删除
先用fdisk /dev/vdb //再创建一个512M的分区比如创建了vdb3
mkswap /dev/vdb3 //格式化交换分区
vim /etc/fstab //修改开机挂载磁盘的文件
/dev/vdb3 swap swap defaults 0 0
swapon -a //测试上述文件是否修改正确
swapon -s //再次查看会多出swap分区
启用/停止控制:
swapon 设备路径
swapoff 设备路径
查看交换分区使用情况:
swapon -s
free
[root@blue ~]# fdisk /dev/vdb Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): Using default response p. 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): +512M Created a new partition 2 of type 'Linux' and of size 512 MiB. Command (m for help): w The partition table has been altered. Syncing disks. [root@blue ~]# part parted partprobe partx [root@blue ~]# part parted partprobe partx [root@blue ~]# partprobe /dev/vd vda vda1 vda2 vdb vdb1 vdb2 vdc [root@blue ~]# partprobe /dev/vdb [root@blue ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 50G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 49G 0 part ├─rhel-root 253:0 0 46.9G 0 lvm / └─rhel-swap 253:1 0 2.2G 0 lvm [SWAP] vdb 252:16 0 10G 0 disk ├─vdb1 252:17 0 500M 0 part │ └─test-vo 253:2 0 300M 0 lvm /vo └─vdb2 252:18 0 512M 0 part vdc 252:32 0 10G 0 disk [root@blue ~]# mkswap /dev/vd vda vda1 vda2 vdb vdb1 vdb2 vdc [root@blue ~]# mkswap /dev/vd vda vda1 vda2 vdb vdb1 vdb2 vdc [root@blue ~]# mkswap /dev/vdb2 Setting up swapspace version 1, size = 512 MiB (536866816 bytes) no label, UUID=ac1a1ba6-7f1a-4b92-80bc-11836d4236c0 [root@blue ~]# vim /etc/fstab
[root@blue ~]# swapon -a
[root@blue ~]# swapon -s
Filename Type SizeUsed Priority
/dev/dm-1 partition 2265084 0 -2
/dev/vdb2 partition 524284 0 -3
[root@blue ~]#
VDO卷
虚拟数据优化器,可以对数据进行重删过滤,
VDO(Virtual Data Optimize)是RHEL8/Centos8上新推出的一个存储相关技术(最早在7.5测试版中开始测试),是Redhat收购的Permabit公司的技术。
VDO的主要作用是节省磁盘空间,比如让1T的磁盘能装下1.5T的数据,从而降低数据中心的成本。
那vdo是如何实现的呢,关键原理主要是重删和压缩
,重删就是硬盘里拷贝来相同的数据,以前要占多份空间,现在只需要1份空间就可以了。类似我们在百度网盘中上传一个大型软件安装包,能实现秒传,其实是之前就有,所以无需再传一遍,也无需再占百度一份空间。另一方面是数据压缩,类似于压缩软件的算法,也可以更加节省磁盘空间。
VDO是一个内核模块
,目的是通过重删减少磁盘的空间占用,以及减少复制带宽
,VDO是基于块设备层之上
的,也就是在原设备基础上映射出mapper虚拟设备,然后直接使用即可,功能的实现主要基于以下技术。
yum -y install vdo //装包
systemctl restart vdo //启动服务,并设置开机自启
找到vdc磁盘(此盘之前不能有配置)
man vdo //搜索 /example ,在例子中查找相关配置命令
vdo create --name=vdo0 --device=/dev/sdb1 --vdoLogicalSize=10T //然后按题目稍作修改,name是vdo卷的名称,device是使用哪个物理磁盘,最后是定义虚拟磁盘大小
格式化 mkfs.xfs -K /dev/mapper/myvdo // `-K可以加快速度`
设置/etc/fstab文件,并且使用mount -a检测
/dev/mapper/myvdo /vblock xfs _netdev 0 0 // _netdev的作用是等待网络相关程序启动后再执行挂载任务,通常网络启动之后vdo服务也就起来了,就可以挂载了
vdo基本操作:
vdo create --name=VDO卷名称 --device=设备路径 --vdoLogicalSize=逻辑大小
vdo list
vdo status -n VDO卷名称
vdostats [–human-readable] [/dev/mapper/VDO卷名称]
vdo remove -n VDO卷名称
系统调优
使用tuned服务,RHEL7/8的调优服务tuned
:提供了大量预设的调优方案,旨在于简化调优的实施,充分利用系统资源与能效。
管理员可以针对不同的业务选择不同的优化策略
tuned-adm 命令直接回车 可以看到选项提示信息
tuned-adm list //列出可用的优化方案
tuned-adm recommend 查询建议的优化方案
tuned-adm profile XXXXX 使用某优化方案
tuned-adm active 查看当前使用的优化方案
于SSH类似,用于远程控制,类似于阿里云的控制台。为初级管理员提供基本操作,通过web端的控制台,访问地址:服务器IP:9090
yum包安装并开启服务:
yum -y install cockpit cockpit-dashboard cockpit-machines
systemctl enable cockpit.socket --now
Web浏览器访问 https://虚拟机的IP地址:9090:
本机访问虚拟机的cockpit:
本机的虚拟机网卡的ip要和虚拟机的网卡ip设置为同一个网段的才可以访问。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。