这里先补充一下上一节的命令:
tune2fs 调整或查看ext2/ext3/ext4文件系统的参数(关闭ext4日志功能)
现在已经被淘汰但是企业笔试或者认证考试会存在
dumpe2fs 用于导出ext2,ext4,ext3文件系统信息(文件系统组成含超级块,块组,inode,block等信息)
resize2fs 调整ext2,ext3,ext4文件系统大小
df 查看磁盘挂载使用量等信息
du 查看目录及文件大小
什么是文件系统?
【文件系统】是一种【存储和组织计算机中数据文件的机制或方法】,它使得对计算机内的数据的存储、访问和查找变得更容易、简单。
文件系统在计算机里就是一个【应用软件】。
如ext2、ext3(CentOS5.x)、ext4(CentOS6.x)、xfs(CentOS7.x)、zfs和Reiserfs或FAT、NTFS等都是常见文件系统。
为什么磁盘分区后需要格式化?
磁盘分区在没有格式化前,操作系统是无法识别系统上磁盘分区格式的,也就无法存取文件目录属性和权限等内容,把分区格式化成操作系统支持的某个文件系统后,再存放数据,系统就会根据这个文件系统的格式进行存取文件了。
创建一个文件:inode,block(格式化生成文件系统时候产生的)。
常见文件系统类型
文件系统 类型 名称 用途
Second Extended filesystem ext2 最常用的Linux文件系统
Three Extended filesystemext3 ext2 的升级版,带日志功能,ext4是ext3升级版
VFAT filesystemvfatWindows95/98 采用的文件系统
NT filesystemntfsWindows NT 采用的文件系统
ISO 9660 filesystemiso9660 大部份光盘所用的文件系统
UFS filesystemufs Sun OS 所用的文件系统
XFS filesystemxfs 由SGI开发的先进的日志文件系统,支持超大容量文件
JFS filesystemjfs IBM的AIX使用的日志文件系统
ReiserFS filesystemreiserfs基于平衡树结构的文件系统suse。
[ext4,xfs]
不同的系统采用的文件系统:
SUSE Linux的默认文件系统ReiserFS文件系统。
IBM的AIX使用的jfs日志文件系统。
Sun OS所用的文件系统ufs。
CentOS7采用XFS文件系统。
CentOS6采用ext4文件系统。
文件系统体系结构
生产文件系统选型
SAS/SATA磁盘对应文件系统的选择:
a.业务应用是[大量小文件]可选reiserfs(100K以内)。
大量小文件访问,衡量指标是IOPS,文件系统性能瓶颈在于文件元数据操作、目录操作、数据寻址。
reiserfs对小文件作了优化,并使用B+tree组织数据,加速了数据寻址,大大降低了open/create/delete/close等系统调用开销。
mount是指定noatime, nodiratime, notail,减少不必要的inode操作,notail关闭tail package功能,以空间换取更高性能。
因此,对于随机的小I/O读写, reiserfs是很好的选择。ext4文件系统是很好的选择
IO调度算法选择deadline,block size = 4096, ext4关闭日志功能。
reiserfs mount参数:-o defaults, async, noatime, nodiratime, notail, data=writeback
ext4 mount参数:-o defaults, async, noatime, nodiratime, data=writeback, barrier=0
关闭ext4日志:tune2fs -O^has_journal /dev/sdb1CDN公司,ext2
b.高并发的数据库业务可选xfs,例如:有门户网站MySQL业务选择xfs。
c.视频下载、流媒体、数据库选择ext4、xfs、小文件业务ext4也是OK的,通用文件系统。
d.有些CDN公司的cache业务服务器,曾经还选择了ext2文件系统,因为它没有日志功能,速度快,CDN是做网站加速服务的,对数据完整性要求不高,对速度要求高。
常规的服务应用建议,系统默认是什么就选择什么就好,简单方便,例如:
对于CentOS5.x系列,常规应用就选默认的ext3文件系统即可。
对于CentOS6.x系列,常规应用就选默认的ext4文件系统即可。
对于CentOS7.x系列,常规应用就选默认的xfs文件系统即可。
注意:如果服务器数量少,怎么选择都可以,如果海量的服务器,考虑维护成本和性能,需要折中选择。
taobao(为了省钱) 主板接口 一个USB接口,去掉。
磁盘性能指标
使用率i/o时间百分比:过高意味i/o存在性能瓶颈
iops:(只每秒i/o请求数)(数据库服务,随机读写)
吞吐量:每秒的i、o请求大小(腾讯,爱奇艺,抖音bilibili,视频大小文件)
响应时间:指i,o请求发出收到响应的间隔时间
使用iostat查看i、o性能指标
iostat -d -x 1
集群搭建会详细谈到
输入iostat,没有找到命令,需要yum进行安装
iotop
前两行:进程的磁盘读写大小总数和磁盘真实的读写大小总数。因为缓存,缓冲区,i/o合并等因素,它们可能并不相等
Linux软件及软件安装包管理
centos7安装软件包安装方式:
rpm 软件开发商预先编译打包,安装简单 软件版本偏低
源码包:手动编译打包,安装简单 软件版本随意定制安装路径(满足定制需求)
二进制包(装mysql): 解压即可使用安装简单 不能修改源码
从源码如何创建rpm包?
什么是rpm包?
红帽公司开发用于软件包的安装,升级,卸载与查询的包管理工具
如何获取rpm软件包?
1.centos7镜像自带
2.互联网方式或镜像网站获取rpm
3.特定软件官方获取软件包
rpm软件包命令使用
rpm 【选项】【软件包名称】
- 安装常用选项
-i 安装rpm
-v 显示安装详细信息
-h 显示安装rpm进度
下载rpm(http://nginx.org/packages/)
https://nginx.org/en/linux_packages.html#RHEL
rpm -ivh 包名
可以是
1.网址 http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-module-xslt-1.18.0-2.el7.ngx.x86_64.rpm
2.全路径带包名
3.包名
[root@calms src]# rpm -ivh nginx-1.18.0-2.el7.ngx.x86_64.rpm
warning: nginx-1.18.0-2.el7.ngx.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:nginx-1:1.18.0-2.el7.ngx ################################# [100%]
升级rpm
-U 升级新版本
rpm -Uvh 包名
[root@calms src]# rpm -Uvh nginx-1.18.0-2.el7.ngx.x86_64.rpm
warning: nginx-1.18.0-2.el7.ngx.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing… ################################# [100%]
package nginx-1:1.18.0-2.el7.ngx.x86_64 is already installed
[root@calms src]#
升级前做好备份
测试环境测试好
1.可以先卸载,在安装
查询rpm -qa安装包
[root@calms src]# rpm -qa nginx
nginx-1.18.0-2.el7.ngx.x86_64
[root@calms src]# rpm -qa |grep nginx
nginx-1.18.0-2.el7.ngx.x86_64
这一种效率低
2.含有nginxwulin会出来
rpm -qi查看指定软件的详细信息
rpm -ql nginx查看安装软件包所安装的目录
rpm -qc 查询指定软件包的配置文件
rpm -qf查询文件或目录属于哪一个RPM软件
缺点:要查看的文件或·命令不存在就会查找不到(替代 yum provides 查询内容【ifconfig】)联网查询
依赖关系强制
rpm -qip 包名(了解)查询未安装的rpm软件包详细信息
rpm -qlp 查询未安装的软件包会产生哪些文件
卸载常用选项
- 卸载常用选项
选项 描述
–e 卸载软件
– –force强制
– –nodeps忽略依赖关系
rpm –qa nginx
rpm -e nginx
yum install samba -y
rpm -qa samba
rpm -e samba
强制卸载依赖关系rpm –c ––force ––nodeps 包名
rpm缺点,安装a不能成功,得先安装b,安装不了,先去按c,一层层安装。并且要进行手动安装
删除有关,都有谨慎 rm,mv find+xargs rpm –e ––nodeps yum remove
会卸载依赖,永远不用(不启动即可)
练习:
如何查询arp命令是由哪个RPM软件包安装的?
which arp
rpm –qf $(which arp)
yum provides arp
查询tree软件包都有哪些文件
rpm –ql tree
rpm使用痛点
1.依赖关系
挂载光盘
mount -t iso9660 /dev/cdrom /
ls /mnt/Packages/
rpm-ivh /mnt/packages/bind-9.11.4-16.p2.e17.x86 64.rpm
错误:依赖检测失败
2. 需要肉眼去寻找
rpm的常用用途是查询,尽量不用其安装
rpm -ivh bind.
yum软件能够自动帮管理员解决依赖,并安装
yum智能软件包管理器
什么是yum?
yum是Redhat及centos中软件包管理器,能够通过互联网下载rpm包并且进行安装,并可以自动处理依赖性关系,无需一次次安装(yum生产常用安装工具)
什么是yum源?
使用yum工具安装,更新软件需要一个包含有各种rpm软件包的仓库软件,这样的软件仓库就被称为yum源
yum源分为:
- 互联网yum源(阿里云,网易,清华源)
- 局域网源(自己制作一个yum源,http/ftp)
1.速度快 2.编译rpm放到yum源 - 服务器本地yum源(上不了网,把ISO作为yum源)
常见互联网yum源
- yum官方源:很多软件集合在线仓库,也称为base基础源
- epel源,也称为扩展源,拥有很多base源没有软件
(一般我们要配置两个源,在前面软件安装我们已经安装过了)
- 第三方源:nginx,zabbix,docker等软件开源软件的官方仓库
yum源默认都是放在/etc/yum.repos.d/目录下,以*repo结尾
(在这里要学会配置局域网yum源 ,后期去做搭建集群如果去官方下载yum源非常缓慢)
Linux系统本地yum源配置
1.互联网阿里云yum源配置
默认系统是国外源,需要替换国内的源
方法一
wget –0 /etc/yum repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
方法二
curl -s-o /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
2.互联网epel源配置
扩展源,很多软件在基本中没有
wget -o /etc/yum.repos.d/epel.repo
http://mirrors.aliyun.com/repo/epel-7.repo
方法3
yum install epel–release
3.互联网特定软件官方源配置
Nginx web软件官方源,最新的nginx版本,查找方法:
1.进入nginx.org 进入download页面
2.结尾显示 Linux packages for stable and mainline versios即可
3.配置
vim /etc/yum.repos.d/nginx.repo
[nginx]
name =nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gdgchek=0
enabled=1
PS. http://nginx.org/en/linux_packages.html
yum源实践
使用yum查询软件包的方式
yum list(查看包)
yum list tree (不需要yum list)
yum info ftp #看软件包详细信息。
使用yum安装软件包的方式
[root@calms ~]# yum install tree #需要确认
[root@calms ~]# yum install tree -y #非交互
#安装本地的rpm包, 如果有依赖关系, 会自动从互联网软件仓库中下载所需依赖
[root@wulin ~]# yum localinstall /mnt/Packages/bind-9.11.4-16.P2.el7.x86_64.rpm
you could try using --skip-breken to work arouund the problem
yum install 安装报错:
you could try using --skip-broken to work around the problem
解决方式:
- /etc/yum.repos.d清除此目录下所有无关repo结尾文件,只保留默认的
- yum clean all
- yum install openssl–devel 验证成功
#直接安装网络上的rpm包
[root@calms ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release
-3.4-2.el7.noarch.rpm
3.使用yum重新安装软件包的方式(了解,工作中不用)
[root@wulin ~]# yum install vsftpd
#1.如果不小心删除vsftpd配置文件
[root@wulin ~]# rm -f /etc/vsftpd/vsftpd.conf
#2.可以对软件进行重新安装
[root@wulin ~]# yum reinstall vsftpd
#3.检查软件的配置文件
[root@wulin ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
3.使用yum更新软件包(慎用)
#对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
[root@wulin ~]# yum check-update
#更新acl软件
[root@wulin ~]# yum update acl -y
#如下的执行很危险,这代表更新整个系统所有的软件,包括内核
[root@wulin ~]# yum update -y
#注意事项:
1)生产线慎用,最好不用。
2)安装系统之后,上线前。
3)测试环境,模拟正式环境。然后上正式。
4.使用yum删除软件包
[root@wulin ~]# yum install vsftpd -y
[root@wulin ~]# yum remove samba -y
#注意:慎用,尽量不用。
5.与yum仓库相关指令(扩展了解)
#列出yum源可用的软件仓库
[root@oldboy ~]# yum repolist
#列出全部yum源可用和禁用的仓库
[root@oldboy ~]# yum repolist all
#查找某个命令或文件属于那个软件包(生产常用)
[root@wulin ~]# yum provides /etc/my.cnf
[root@wulin ~# yum provides cd
cat /etc/yum.conf
看两项
Keepcache=0不缓存
cachedir(地址)
打包压缩命令: tar ***** gzip *** 用数据库备份 -d解包 gzip /etc/yum.repos.d/* #打包
gzip -d * #解包,删除源文件。 zip unzip *** 用于解包(zip包) zcat
配置缓存rpm包
修改yum.conf配置
sed -i.bak ‘s#keepcache=0#keepcache=1#g’ /etc/yum.conf grep keepcache
grep keepcazhe /etc/yum.conf
会显示:
Keepcache=1
测试:
rpm –e nmap–ncat
find /var/cache/yum/x86_64/7/ -name “*.rpm”
为什么要缓存?
1.配置yum仓库,rpm来源
2.rpm更新了,旧的找不到了
缓存rpm包方式二,只下载不安装
root@wulin ~]# yum install -y yum-plugin-downloadonly #插件
[root@wulin ~]# yum install httpd -y --downloadonly --downloaddir=/tmp
#3.清除所有yum缓存的软件包以及元数据
[root@wulin ~]# yum clean all
[root@oldboy ~]# find /var/cache/yum/x86_64/7/ -name “*.rpm”
#4.只清除缓存的软件包
[root@wulin ~]# yum clean packages
软件包,真正的软件。
元数据,数据的数据。
7.组包相关指令
[root@wulin ~]# yum groups list
#安装一整个组的软件
[root@wulin ~]# yum groups install Development tools
Compatibility libraries
Base Debugging Tools
#yum删除包组
[root@wulin ~]# yum groups remove -y Base
安装系统reboot后。
1)在CentOS安装完毕,首先应该修改更新源,并升级到最新的系统。修改更新yum源的命令如下:
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2)把软件更新到最新(生产上线之前)
yum update -y
3)常用软件包。
CentOS6和CentOS7都要安装的企业运维常用基础工具包
yum install tree nmap dos2unix lrzsz nclsof wget tcpdump htop iftop iotop sysstat nethogs -y
CentOS7要安装的企业运维常用基础工具包
yum install psmisc net-tools bash-completion vim-enhanced -y
查看有哪些组包:
yum groups list
[root@wulin ~]# yum groups mark convert #转换到原始的格式
[root@wulin ~]# yum groups list #查看
Available Environment Groups: #可用的环境组包
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
Cinnamon Desktop
MATE Desktop
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop #安装桌面环境
软件包:真正的软件 元数据:数据的数据
CentOS7要安装的企业运维常用基础工具包
yum install psmisc net-tools bash-completion vim-enhanced -y
查看有哪些组包:
yum groups list
[root@wulin ~]# yum groups mark convert #转换到原始的格式
[root@wulin ~]# yum groups list #查看
Available Environment Groups: #可用的环境组包
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
Cinnamon Desktop
MATE Desktop
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop #安装桌面环境
SoulfulBondWxinZ:
KDE Plasma Workspaces
Development and Creative Workstation
Installed Groups: #已经安装的组包。
Compatibility Libraries
Development Tools
Milkymist
Security Tools
System Administration Tools
Available Groups: #可用的组包。
Cinnamon
Console Internet Tools
Educational Software
Electronic Lab
Fedora Packager
General Purpose Desktop
Graphical Administration Tools
Haskell
LXQt Desktop
Legacy UNIX Compatibility
SoulfulBondWxinZ:
MATE
Scientific Support
Smart Card Support
System Management
TurboGears application framework
Xfce
Done
#安装环境组包,桌面环境包。
yum groupinstall “GNOME Desktop”
yum groupinstall “Smart Card Support”
#写一起
yum groupinstall “GNOME Desktop” “Smart Card Support”
#yum删除包组(不用)
[root@wulin ~]# yum groups remove -y Base
[root@wulin ~]# yum search --help
yum [options] COMMAND
check 检查 RPM 数据库问题
check-update 检查是否有可用的软件
SoulfulBondWxinZ:
包更新
clean 删除缓存数据 ***
deplist 列出软件包的依赖关系
downgrade 降级软件包
erase 从系统中移除一个或多个软件包
groups 显示或使用、组信息***
help 显示用法提示
history 显示或使用事务历史
info 显示关于软件包或组的详细信息
install 向系统中安装一个或多个软件包*****
list 列出一个或一组软件包*****
load-transaction 从文件名中加载一个已存事务
makecache 创建元数据缓存***
provides 查找提供指定内容的软件包*****
reinstall 覆盖安装软件包
repo-pkgs 将一个源当作一个软件包组,这样我们就可以一次性安装/移除
SoulfulBondWxinZ:
全部软件包。
repolist 显示已配置的源
search 在软件包详细信息中搜索指定字符串***
shell 运行交互式的 yum shell
update 更新系统中的一个或多个软件包***
upgrade 更新软件包同时考虑软件包取代关系***
version 显示机器和/或可用的源版本。
G点:yum命令常用
install 向系统中安装一个或多个软件包*****
provides 查找提供指定内容的软件包*****
list 列出一个或一组软件包*****
clean 删除缓存数据 ***
groups 显示或使用、组信息***
makecache 创建元数据缓存***
这一篇小编先写到这里了,希望对大家有所帮助,可以关注小编的专栏!!!