首页
友情链接
关于
Search
1
Docker 拉取镜像报错 “missing signature key” 解决办法
1,331 阅读
2
如何在CentOS 7中升级Linux内核
494 阅读
3
docker 常用命令
218 阅读
4
k8s 常用命令
200 阅读
5
docker 拉去镜像失败Retrying in 1 second
166 阅读
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
登录
/
注册
Search
标签搜索
Docker
shell脚本
Linux 系统管理
k8s
LVM
KVM
网络服务
Nginx
Ubuntu
内核升级
Linux用户管理
系统管理
MySQL
共享存储
Abbott
累计撰写
37
篇文章
累计收到
2
条评论
首页
栏目
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
页面
友情链接
关于
搜索到
21
篇与
的结果
2025-06-16
Nginx 优化
Nginx 的优化是一个系统工程,涉及服务器硬件、操作系统、Nginx 配置本身,以及您所服务的应用类型。核心配置优化 (Master-Worker 架构)Nginx 采用 Master-Worker 架构,一个 Master 进程负责读取和解析配置,管理 Worker 进程;Worker 进程则负责处理实际的请求。1. worker_processes auto; auto 是 Nginx 1.8.1 及更高版本推荐的值。Nginx 会根据可用的 CPU 核心数自动调整 Worker 进程的数量。这样可以最大化 CPU 利用率,并避免手动设置可能导致的资源浪费或不足。1. 为什么是 CPU 核心数? Nginx 是事件驱动的非阻塞服务器。一个 Worker 进程可以高效处理数万甚至数十万并发连接,因为当一个连接处于等待状态(例如等待数据从磁盘读取或网络发送)时,Worker 进程可以立即切换到处理另一个连接。过多的 Worker 进程会导致:- 上下文切换开销: 操作系统需要花费更多时间在 Worker 进程之间切换,这会抵消并行处理带来的益处。- 内存消耗: 每个 Worker 进程都会消耗一定的内存。{callout color="#ff9300"}特殊情况{/callout}磁盘 I/O 密集型应用 (如大型静态文件服务器):** 如果您的 Nginx 主要用于提供大量静态文件,并且这些文件分散在不同的磁盘上,那么适当增加 Worker 进程数量(可能略高于 CPU 核心数)可能有助于利用多磁盘的并行 I/O 能力。但这需要仔细测试。CPU 密集型模块 (不常见): 如果您使用了某些 CPU 密集型的 Nginx 模块 (例如自定义的 Lua 脚本执行大量计算),那么也可能需要根据实际情况调整。但对于常规使用,auto 或 CPU 核心数通常是最佳选择。worker_connections 10240;(示例子值) 这是单个 Worker 进程可以处理的最大并发连接数。这个值直接影响 Nginx 服务器的总并发能力:总并发连接数 = worker_processes * worker_connections。{callout color="#00fdff"}关键考量:{/callout}文件描述符 (File Descriptors - FD): 每个连接在操作系统中都会占用一个文件描述符。因此,worker_connections 的值不能超过操作系统对单个进程允许的最大文件描述符数量(ulimit -n)。系统级限制: 还需要检查系统级的最大文件描述符限制 (/proc/sys/fs/file-max)。内存消耗 每一个连接都会消耗少量内存,如果 worker_connections 设置过大,可能会导致内存不足。还待更新
2025年06月16日
5 阅读
0 评论
1 点赞
2025-06-16
源码编译PHP
{progress percentage="" color="#00fdff"/}环境准备:操作系统: Red Hat Enterprise Linux 8.8 (Ootpa)内核版本: Linux 4.18.0-477.10.1.el8_8.x86_641. 下载/解压软件包 [root@php-server ~]# wget https://www.php.net/distributions/php-8.4.1.tar.gz [root@php-server ~]# tar -xf php-8.4.1.tar.gz -C /usr/local/ [root@php-server php84]# ln -s php-8.4.1 php842. 安装依赖[root@php-server php84]# dnf -y install libjpeg libjpeg-devel libpng libpng-devel oniguruma freetype freetype-devel libxml2 libxml2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn openssl openssl-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2-devel openldap-devel automake autoconf libtool make openldap-devel gcc gcc-c++ sqlite-devel libxslt-devel wget vim3. 检查环境./configure --prefix=/usr/local/php8/ --with-config-file-path=/usr/local/php8/etc/ --with-curl --with-freetype-dir --with-gd --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg --with-xmlrpc --with-xsl --with-zlib --with-bz2 --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --with-pdo-mysql --enable-gd --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-zip --with-ldap4. 编译过程[root@php-server php84]# make5. 编译安装(出现以下表示编译成功)[root@php-server php84]# make install Installing shared extensions: /usr/local/php8/lib/php/extensions/no-debug-non-zts-20240924/ Installing PHP CLI binary: /usr/local/php8/bin/ Installing PHP CLI man page: /usr/local/php8/php/man/man1/ Installing PHP FPM binary: /usr/local/php8/sbin/ Installing PHP FPM defconfig: /usr/local/php8/etc/ Installing PHP FPM man page: /usr/local/php8/php/man/man8/ Installing PHP FPM status page: /usr/local/php8/php/php/fpm/ Installing phpdbg binary: /usr/local/php8/bin/ Installing phpdbg man page: /usr/local/php8/php/man/man1/ Installing PHP CGI binary: /usr/local/php8/bin/ Installing PHP CGI man page: /usr/local/php8/php/man/man1/ Installing build environment: /usr/local/php8/lib/php/build/ Installing header files: /usr/local/php8/include/php/ Installing helper programs: /usr/local/php8/bin/ program: phpize program: php-config Installing man pages: /usr/local/php8/php/man/man1/ page: phpize.1 page: php-config.1 Installing PEAR environment: /usr/local/php8/lib/php/6. 需要安装依赖<font color=red>获取方式:RPM resource oniguruma[root@php-server ~ ]# wget https://www.rpmfind.net/linux/almalinux/8.10/AppStream/x86_64/os/Packages/oniguruma-6.8.2-3.el8.x86_64.rpm [root@php-server ~ ]# wget https://www.rpmfind.net/linux/almalinux/8.10/PowerTools/x86_64/os/Packages/oniguruma-devel-6.8.2-3.el8.x86_64.rpm [root@php-server ~ ]# dnf -y install oniguruma-6.8.2-3.el8.x86_64.rpm oniguruma-devel-6.8.2-3.el8.x86_64.rpm7. 启动PHPCopy PHP的配置文件[root@php-server php8]# cp ../php84/php.ini-development etc/php.ini [root@php-server php8]# cp etc/php php-fpm.conf.default php-fpm.d/ php.ini-development [root@php-server php8]# cp etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf [root@php-server php8]# cp etc/php-fpm.conf.default etc/php-fpm.conf启动 [root@php-server php8]# sbin/php-fpm查看进程[root@php-server php8]# ss -luntp Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=790,fd=3)) tcp LISTEN 0 2048 127.0.0.1:9000 0.0.0.0:* users:(("php-fpm",pid=150797,fd=5),("php-fpm",pid=150796,fd=5),("php-fpm",pid=150795,fd=7)) tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=790,fd=4)) [root@php-server php8]# lsof -i:9000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME php-fpm 150795 root 7u IPv4 265939 0t0 TCP localhost:cslistener (LISTEN) php-fpm 150796 nobody 5u IPv4 265939 0t0 TCP localhost:cslistener (LISTEN) php-fpm 150797 nobody 5u IPv4 265939 0t0 TCP localhost:cslistener (LISTEN) 修改PHP服务监听的IP地址;(默认是监听127.0.0.1)修改监听地址[root@php-server php8]# cat etc/php-fpm.d/www.conf | grep listen ; - 'listen' (unixsocket) ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on ; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on ; 'port' - to listen on a TCP socket to all addresses ; '/path/to/unix/socket' - to listen on a unix socket. ;listen = 127.0.0.1:9000 ;listen = 0.0.0.0:9000 #监听本机的所有网卡 listen = 192.168.107.119:9000 重启[root@php-server php8]# pkill php-fpm [root@php-server php8]# ss -luntp Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=790,fd=3)) tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=790,fd=4)) [root@php-server php8]# sbin/php-fpm [root@php-server php8]# ss -lutnp Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=790,fd=3)) tcp LISTEN 0 2048 192.168.107.119:9000 0.0.0.0:* users:(("php-fpm",pid=150815,fd=5),("php-fpm",pid=150814,fd=5),("php-fpm",pid=150813,fd=7)) tcp LISTEN 0 128 [::]:22
2025年06月16日
5 阅读
0 评论
0 点赞
2024-09-26
创建PV报错信息:device is partitioned
错误信息[y40@localhost ~]$ sudo vgextend rhel /dev/sdb /dev/sdc Cannot use /dev/sdb: device is partitioned Cannot use /dev/sdc: device is partitioned原因:是因为磁盘里的数据没有清楚赶紧导致错误信息解决方法:[y40@localhost ~]$ sudo wipefs --all --backup /dev/sdb /dev/sdb:8 个字节已擦除,位置偏移为 0x00000200 (gpt):45 46 49 20 50 41 52 54 /dev/sdb:8 个字节已擦除,位置偏移为 0x773c255e00 (gpt):45 46 49 20 50 41 52 54 /dev/sdb:2 个字节已擦除,位置偏移为 0x000001fe (PMBR):55 aa [y40@localhost ~]$ sudo wipefs --all --backup /dev/sdc /dev/sdc:8 个字节已擦除,位置偏移为 0x00000200 (gpt):45 46 49 20 50 41 52 54 /dev/sdc:8 个字节已擦除,位置偏移为 0x7470c05e00 (gpt):45 46 49 20 50 41 52 54 /dev/sdc:2 个字节已擦除,位置偏移为 0x000001fe (PMBR):55 aa /dev/sdc:将调用 ioctl 来重新读分区表:成功再次创建PV[y40@localhost ~]$ sudo pvcreate /dev/sdb /dev/sdc Physical volume "/dev/sdb" successfully created. Physical volume "/dev/sdc" successfully created.
2024年09月26日
116 阅读
0 评论
0 点赞
2024-09-21
Ubuntu 配置静态IP地址
一、修改配置/etc/netplan``root@y36-server-ubuntucom:~# cat /etc/netplan/50-cloud-init.yaml # This file is generated from information provided by the datasource. Changes # to it will not persist across an instance reboot. To disable cloud-init's # network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: enp7s0: dhcp4: true dhcp6: false version: 2 bridges: bri0: interfaces: [enp7s0] addresses: [192.168.107.67/24] gateway4: 192.168.107.254 routes: - to: default via: 192.168.99.1 nameservers: addresses: - 114.114.114.114 - 8.8.8.8 - 8.8.4.4 parameters: stp: true forward-delay: 4 dhcp4: no 切记:注意缩进二、测试文件配置文件是否有误root@y36-server-ubuntucom:~# sudo netplan try 三、应用配置文件root@y36-server-ubuntucom:~# sudo netplan apply
2024年09月21日
43 阅读
0 评论
0 点赞
2024-06-27
如何在 Linux 上清除 RAM 内存缓存、缓冲区和交换空间
像任何其他操作系统一样,GNU/Linux 已经有效地实现了内存管理,甚至不止于此。但是,如果任何进程正在消耗您的内存并且您想要清除它,Linux 提供了一种刷新或清除 RAM 缓存的方法。在本文中,我们将探讨如何在 Linux 系统上清除 RAM 内存缓存、缓冲区和交换空间以提高整体性能。让我们探索 Linux 系统上的 RAM 内存缓存、缓冲区和交换空间。 RAM Memory Cache RAM内存缓存 RAM内存缓存是内核用来保存定期访问的数据的一种机制。虽然这提高了系统响应能力,但缓存过载可能会导致过时数据的保留,从而影响性能。 Buffer缓冲区 与缓存一样,缓冲区临时保存数据,但用途不同。缓冲区存储在 CPU 和硬盘等组件之间传输的数据,从而促进顺畅通信。但是,过多的缓冲数据会阻碍系统速度。Swap Space 交换空间 交换空间是硬盘上分配的区域,当物理 RAM 耗尽时充当虚拟内存。虽然它可以防止由于内存不足而导致系统崩溃,但如果过度使用,它可能会降低系统速度。清除 Linux 中的缓存、缓冲区和交换空间在某些情况下,您可能需要清除缓存、缓冲区或交换空间,如下所述。清除 PageCache要仅清除 PageCache,您可以使用以下命令,该命令将专门清除 PageCache,从而帮助释放内存资源。# sync; echo 1 > /proc/sys/vm/drop_caches要仅清除 dentries 和 inode,您可以使用以下命令,该命令将同步文件系统并清除 dentries 和 inode,通过释放缓存的目录和 inode 信息来提高系统性能。# sync; echo 2 > /proc/sys/vm/drop_caches清除 PageCache、dentry 和 Inode要清除 pagecache、dentries 和 inode,您可以使用以下命令,该命令将同步文件系统并清除 pagecache、dentries 和 inode,从而有助于释放内存并提高系统性能。# sync; echo 3 > /proc/sys/vm/drop_caches下面是对上述命令的每个部分的说明:sync:将刷新文件系统缓冲区。“;”:分号用于分隔一行上的多个命令。echo 3 > /proc/sys/vm/drop_caches: 命令用于删除页面缓存,这是最近访问的文件的临时存储区域。注意:drop_caches文件控制应清除哪种类型的缓存数据,其值如下:1 – 仅清除页面缓存。2 – 清除 dentries 和 inode。3 – 清除页面缓存、dentries 和 inode。正如内核文档中提到的,写入 drop_caches 将清理缓存而不会杀死任何应用程序/服务,命令 echo 正在执行写入文件的工作。如果必须清除磁盘缓存,则第一个命令在企业和生产环境中最安全,因为“...echo 1 > ….” 将仅清除 PageCache。不建议使用上面的第三个选项“...echo 3 >”,直到你知道自己在做什么,因为它会清除页面缓存、dentries 和 inode。如何在 Linux 中清除交换空间?要清除交换空间,可以使用带有 -a 选项的 swapoff 命令,这将禁用所有交换分区。# swapoff -a然后,通过运行以下命令将其转回,这将激活所有交换分区# swapon -a在 Linux 中释放缓冲区、缓存和交换是否可取?通常,在 Linux 中手动释放 Linux 内核可能使用的缓冲区和缓存不是一个好主意,Linux 内核旨在有效地管理这些资源,手动清除它们可能会破坏系统性能。但是,在极少数情况下,您需要清除缓冲区和缓存,例如,如果您遇到严重的内存压力并且无法通过其他方式释放内存。在这些情况下,您应该谨慎行事,并注意潜在的性能影响。同样,在正常情况下,在 Linux 中清除交换空间通常不是例行或可取的做法。自动执行内存优化要自动执行该过程并定期清除内存,您可以设置一个 cron 作业以按指定的时间间隔运行命令。打开 crontab 配置# crontab -e添加以下行以在每天午夜清除缓存、缓冲区和交换空间:0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches 0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches 0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches 0 0 * * * sudo swapoff -a && sudo swapon -a是否建议清除 Linux 生产服务器上的 RAM 缓存?考虑这样一种情况:您已安排一个脚本在每天凌晨 2 点清除 RAM 缓存。每天凌晨 2 点,执行脚本,刷新 RAM 缓存。然而,有一天,你的网站上有出乎意料的大量用户在线,对你的服务器资源有很大的需求。同时,计划的脚本运行并清除缓存中的所有内容。现在,所有用户都从磁盘检索数据,这可能会导致服务器崩溃和数据库损坏。因此,只有在必要时才清除 RAM 缓存,并注意您的操作。否则,您将面临成为 Cargo Cult 系统管理员的风险。结论高效的内存管理对于Linux系统的顺利运行至关重要。定期清除RAM内存缓存、缓冲区和交换空间可以显着提高系统性能。通过了解这些机制并使用提供的命令,您可以使 Linux 系统保持最佳运行状态。
2024年06月27日
94 阅读
0 评论
1 点赞
2024-06-16
Redhat 8 安装Nginx
nginx 部署yum|dnf 源部署nginx 依赖与第三方源 epel1、安装第三方源[root@localhost lvm-test]# yum -y install epel-release [root@localhost lvm-test]# ls /etc/yum.repos.d/ a.repo_bak bak CentOS-Base.repo epel.repo epel-testing.repo2、查找nignx服务[root@localhost lvm-test]# yum search nginx3、安装nginx[root@localhost lvm-test]# yum install nginx -y 4、启动nginx服务789版本systemclt[系统管理命令] start(开启)|stop(停止) | reload(重新加载)| enable (开机自启服务) | disable(开机不自启动) [服务的名称] [root@localhost lvm-test]# systemctl start nginx 6版本serivce [服务名称] start |stop5、添加防火墙规则7 8 firewalld#临时修改 [root@localhost lvm-test]# firewall-cmd --add-port=80/tcpiptables6、修改Selinux查看selinux状态[root@localhost lvm-test]# getenforce Enforcing #严格模式设置Selinux#临时修改 [root@localhost lvm-test]# setenforce 0 0#表示宽松模式 1#严谨模式Seliunx 工作流程图:7、测试使用搜索引擎浏览器在地址栏中:http://serverIP
2024年06月16日
152 阅读
0 评论
0 点赞
2024-06-16
初识Nginx
一、 什么是nginxnginx [engine x]是一个HTTP和反向代理服务器、邮件代理服务器和通用TCP/UDP代理服务器,最初由Igor Sysoev编写。长期以来,它一直在许多重负载的俄罗斯网站上运行,包括Yandex、Mail.Ru、VK和Rambler。据Netcraft称,nginx在2024年3月服务或代理了20.63%最繁忙的网站。以下是一些成功故事:Dropbox、Netflix、Wordpress.com、FastMail.FM。 我们在学习Nginx时也采用同样的方式,先来看看Nginx的竞争对手——Apache、Lighttpd、Tomcat、Jetty、IIS,它们都是Web服务器,或者叫做WWW(World Wide Web)服务器,相应地也都具备Web服务器的基本功能:基于REST架构风格 ,以统一资源描述符(Uniform Resource Identifier,URI)或者统一资源定位符(Uniform Resource Locator,URL)作为沟通依据,通过HTTP为浏览器等客户端程序提供各种网络服务。 Tomcat和Jetty面向Java语言,先天就是重量级的Web服务器,它的性能与Nginx没有可比性。apache的特点 Apache有许多优点,如稳定、开源、跨平台等,但它出现的时间太长了,在它兴起的年代,互联网的产业规模远远比不上今天,所以它被设计成了一个重量级的、不支持高并发的Web服务器。为什么选择Nginx更快这表现在两个方面:一方面,在正常情况下,单次请求会得到更快的响应;另一方面,在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求;高扩展性Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成;高可靠性高可靠性是我们选择Nginx的最基本条件,因为Nginx的可靠性是大家有目共睹的,很多家高流量网站都在核心服务器上大规模使用Nginx;低内存消耗一般情况下,10000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础;单机支持10万以上的并发连接这是一个非常重要的特性!随着互联网的迅猛发展和互联网用户数量的成倍增长,各大公司、网站都需要应付海量并发请求,一个能够在峰值期顶住10万以上并发请求的Server,热部署master管理进程与worker工作进程的分离设计,使得Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件;最自由的BSD许可协议这是Nginx可以快速发展的强大动力。BSD许可协议不只是允许用户免费使用Nginx,它还允许用户在自己的项目中直接使用或修改Nginx源码,然后发布;Apache拥有丰富的模块组件支持,稳定性强,BUG少,动态内容处理强。Nginx轻量级,占用资源少,负载均衡,高并发处理强,静态内容处理高效nginx 官网nginx 官网地址nginx 软件下载nginx 官方文档
2024年06月16日
67 阅读
0 评论
1 点赞
2024-05-24
LVM 逻辑卷管理
什么是逻辑卷LVM是Linux的逻辑卷管理器。它提供了对磁盘空间的管理,与基于主和逻辑分区的标准磁盘分区相比,磁盘空间更灵活,限制更少。LVM受到所有主要Linux发行版的支持,它甚至在Fedora和RHEL上默认使用在计算机存储中,逻辑卷管理或LVM提供了一种在大容量存储设备上分配空间的方法,这种方法比传统的分区方案更灵活地存储卷。特别是,卷管理器可以连接、条带在一起或以其他方式将分区(或一般块设备)组合成更大的虚拟分区,管理员可以调整大小或移动,可能不会中断系统使用。LVM是一个用于逻辑卷管理的工具,包括分配磁盘、条带、镜像和调整逻辑卷大小。使用LVM,硬盘驱动器或一组硬盘驱动器被分配给一个或多个物理卷。LVM物理卷可以放置在可能跨越两个或更多磁盘的其他块设备上.物理卷被合并成逻辑卷,但/boot分区除外。/boot分区不能在逻辑卷组上,因为引导加载程序无法读取它。如果根(/)分区位于逻辑卷上,请创建一个单独的/boot分区,该分区不是卷组的一部分。由于物理卷不能跨越多个驱动器,要跨越多个驱动器,请为每个驱动器创建一个或多个物理卷。用途LVM用于以下目的:创建多个物理卷或整个硬盘的单个逻辑卷(有点类似于RAID 0,但更类似于JBOD),允许动态重新调整卷大小。通过允许添加和更换磁盘,而不会停机或服务中断,结合热交换来管理大型硬盘更换。在小型系统(如桌面)上,LVM无需在安装时估计分区需要多大,而是允许文件系统根据需要轻松调整大小。通过拍摄逻辑卷的快照来执行一致的备份。用一个密码加密多个物理分区专业术语物理卷(Physical Volumes 缩写pv)这是LVM使用的物理存储。它可能是整个磁盘或现有分区。卷组(Volume Group vg)这是一个或多个物理卷的集合,它包含逻辑卷。逻辑卷(Logical Volume lv)这是LVM提供的空间,您可以将其用作分区来制作文件系统和存储文件。PE最小存储单元,默认大小(4MB)逻辑卷的管理在Linux系统中如果没有LVM的命令(最小化安装) [root@localhost ~]# dnf search lvm ======================================================= Name Matched: lvm ======================================================== llvm.i686 : The Low Level Virtual Machine llvm.x86_64 : The Low Level Virtual Machine lvm2.x86_64 : Userland logical volume management tools [root@localhost ~]# dnf -y install lvm2.x86_64一、 物理卷管理1.1 创建物理卷命令: pvcreate描述:初始化磁盘或分区供 LVM 使用。Ex:[root@localhost ~]# pvcreate /dev/vdb Wiping dos signature on /dev/vdb. Physical volume "/dev/vdb" successfully created.1.2 查看pv命令: pvdisplay描述: 显示所有的物理卷语法: pvdisplay [pv_name]Ex:[root@localhost ~]# pvdisplay "/dev/vdb" is a new physical volume of "20.00 GiB" --- NEW Physical volume --- PV Name /dev/vdb VG Name PV Size 20.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID jzEyr7-KheP-2PiZ-G1Pz-b1xq-cZcc-G4gzkb1.3 删除 PV命令:pvremove描述: 移除逻辑卷 Ex:[root@localhost ~]# pvremove -f /dev/vdb Labels on physical volume "/dev/vdb" successfully wiped 二、 卷组管理2.1 创建卷组命令:vgcreate语法:vgcreate 卷组名称 {物理卷1 物理卷2 物理卷n}Ex:[root@localhost ~]# vgcreate test_vg /dev/vdb Volume group "test_vg" successfully created2.2 显示卷组 命令: vgdisplayEx:[root@localhost ~]# vgdisplay --- Volume group --- VG Name test_vg System ID Format lvm2 Metadata Areas 1 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 1 Act PV 1 VG Size <20.00 GiB PE Size 4.00 MiB Total PE 5119 Alloc PE / Size 0 / 0 Free PE / Size 5119 / <20.00 GiB VG UUID 3WGvBc-dyNf-1eYn-gIsi-V2zO-OPND-8YlIBY2.3 删除卷组命令: vgremove Ex:[root@localhost ~]# vgremove test_vg Volume group "test_vg" successfully removed三、 逻辑卷管理3.1 创建逻辑卷命令: lvcreate语法: lvcreate [选项] 逻辑卷的名称 VG选项:-L #指定逻辑卷的大小,单位G M K -i #指定raid的级别,磁盘阵列-l #以逻辑扩展为单位指定新 LV 的大小-n #指定逻辑卷的名称Ex:[root@localhost ~]# lvcreate -L5G test_vg WARNING: ext4 signature detected on /dev/test_vg/lvol0 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/test_vg/lvol0. Logical volume "lvol0" created.3.2 查看逻辑卷[root@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/test_vg/lvol0 LV Name lvol0 VG Name test_vg LV UUID FZ32YS-sg2B-etWG-Y84C-hqyR-gaHG-9TCYnj LV Write Access read/write LV Creation host, time localhost, 2024-05-18 15:34:06 +0800 LV Status available # open 0 LV Size 5.00 GiB Current LE 1280 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 252:03.3 移除逻辑卷[root@localhost ~]# lvremove /dev/test_vg/lvol0 Do you really want to remove active logical volume test_vg/lvol0? [y/n]: y Logical volume "lvol0" successfully removed.3.4 扩容命令: lvextend描述:Add space to a logical volume 为逻辑卷添加空间Ex:[root@bogon ~]# lvextend -L 10G /dev/test_vg/test_lv Size of logical volume test_vg/test_lv changed from 5.00 GiB (1280 extents) to 10.00 GiB (2560 extents). Logical volume test_vg/test_lv successfully resized. [root@bogon ~]# lvdisplay --- Logical volume --- LV Path /dev/test_vg/test_lv LV Name test_lv VG Name test_vg LV UUID 9c1tLT-Dyul-qvWp-QdsN-pAYA-oyba-XeyKeW LV Write Access read/write LV Creation host, time localhost, 2024-05-18 15:46:39 +0800 LV Status available # open 1 LV Size 10.00 GiB Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 252:0 #刷新文件系统 - resize2fs 支持`ext2,3,4` 不支持xfs - xfs_growfs 支持xfs文件系统 [root@bogon ~]# xfs_growfs /dev/mapper/test_vg-test_lv meta-data=/dev/mapper/test_vg-test_lv isize=512 agcount=4, agsize=327680 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=1310720, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 1310720 to 2621440 [root@bogon ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.8G 0 1.8G 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 1.8G 25M 1.8G 2% /run tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/vda3 17G 5.1G 12G 30% / /dev/vda2 2.0G 47M 2.0G 3% /home /dev/vda1 1014M 212M 803M 21% /boot /dev/mapper/test_vg-test_lv 10G 104M 9.9G 2% /test_lv tmpfs 367M 0 367M 0% /run/user/0四、 格式化逻辑卷(创建文件系统)[root@localhost ~]# mkfs.xfs /dev/test_vg/test_lv meta-data=/dev/test_vg/test_lv isize=512 agcount=4, agsize=327680 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=1310720, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0五、 挂载使用5.1 临时挂载[root@localhost ~]# mkdir /lv_tst [root@localhost ~]# mount /dev/test_vg/test_lv /lv_tst/ [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.8G 0 1.8G 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 1.8G 17M 1.8G 1% /run tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/vda3 17G 5.1G 12G 30% / /dev/vda2 2.0G 47M 2.0G 3% /home /dev/vda1 1014M 212M 803M 21% /boot tmpfs 367M 0 367M 0% /run/user/0 /dev/sr0 12G 12G 0 100% /mnt /dev/mapper/test_vg-test_lv 5.0G 68M 5.0G 2% /lv_tst5.2 永久挂载实现永久挂载,需要修改主配置文件 /etc/fstab[root@localhost ~]# cat /etc/fstab UUID=787a972d-9811-42a3-b57b-8ecb567e23a4 / xfs defaults 0 0 UUID=2ccfb650-c2b0-4822-bea5-b8da75434b52 /boot xfs defaults 0 0 UUID=0541f6b0-a7f4-4566-8e63-30b87aa83a01 /home xfs defaults 0 0 # 挂载的目录 挂载点 文件系统 defaults 0 0 UUID=9c1tLT-Dyul-qvWp-QdsN-pAYA-oyba-XeyKeW /test_lv xfs defaults 0 0 或者使用文件的路径 /dev/test_vg/test_lv /test_lv xfs defaults 0 0 # 获取UUID [root@localhost ~]# blkid /dev/vdb: UUID="V6TrIv-Aip2-gyat-kxAa-6mK0-3zPL-zzRWEY" TYPE="LVM2_member" /dev/mapper/test_vg-test_lv: UUID="f4366c5b-231b-47d8-a39a-41fc0b55c8b9" BLOCK_SIZE="512" TYPE="xfs"切记:不能写错5.2.1 测试文件是否输入正确[root@localhost ~]# mount -a #读取/etc/fastab文件中的所有内容 [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/test_vg-test_lv 5.0G 68M 5.0G 2% /test_lv案例[root@localhost ~]# pvcreate /dev/vd{c..e} Physical volume "/dev/vdc" successfully created. Physical volume "/dev/vdd" successfully created. Physical volume "/dev/vde" successfully created. # 创建卷组 vgcreate my_test_vg /dev/vdc /dev/vdd #创建逻辑卷 lvcreate -L 10G -n test_lv_test my_test_vg #创建文件系统 mkfs.ext4 /dev/my_test_vg/test_lv_test #创建挂载点 mkdir /test_lv_1 #挂载测试 mount /dev/my_test_vg/test_lv_test /test_lv_1/ #扩容 lvextend -L 15G /dev/my_test_vg/test_lv_test #刷新文件系统 [root@localhost ~]# resize2fs /dev/my_test_vg/test_lv_test resize2fs 1.45.6 (20-Mar-2020) Filesystem at /dev/my_test_vg/test_lv_test is mounted on /test_lv_1; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 2 The filesystem on /dev/my_test_vg/test_lv_test is now 3932160 (4k) blocks long. #验证 [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/my_test_vg-test_lv_test 15G 24K 14G 1% /test_lv_1 # 添加物理卷到卷组中 [root@localhost ~]# vgextend my_test_vg /dev/vd vda vda1 vda2 vda3 vdb vdc vdd vde [root@localhost ~]# vgextend my_test_vg /dev/vde Volume group "my_test_vg" successfully extended [root@localhost ~]# vgdisplay my_test_vg --- Volume group --- VG Name my_test_vg System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 3 Act PV 3 VG Size <29.99 GiB PE Size 4.00 MiB Total PE 7677 Alloc PE / Size 2560 / 10.00 GiB Free PE / Size 5117 / <19.99 GiB VG UUID a5wcDK-0edK-LzGd-BV5a-GaSk-wuk3-iVEfct
2024年05月24日
113 阅读
0 评论
0 点赞
2024-05-21
kvm 管理工具webvirtmgr
介绍WebVirtMgr是一个基于libvirt的Web界面,用于管理虚拟机。它允许您创建和配置新域,并调整域的资源分配。VNC查看器向来宾域显示一个完整的图形控制台。KVM是目前唯一支持的虚拟机管理程序。技术:应用程序逻辑是用Python和Django编写的。LIBVIRT Python绑定用于与底层虚拟机管理程序交互。安装1. 查看系统版本[root@web ~]# hostnamectl Static hostname: web.server.com Icon name: computer-desktop Chassis: desktop Machine ID: e57ef32020fa406d9bbee213aba339ed Boot ID: 5a70728f01fd4402a40d90d47e3f10df Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.114.2.el7.x86_64 Architecture: x86-642. 安装]# yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release ]# yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx gcc python-devel ]# pip3 install numpy 3.安装python要求并设置Django环境[root@web ~]# git clone https://github.com/retspen/webvirtmgr.git [root@web ~]# cd webvirtmgr [root@web webvirtmgr]# pip install -r requirements.txt4.同步用户数据[root@web webvirtmgr]# ./manage.py syncdb WARNING:root:No local_settings file found. Creating tables ... Creating table auth_permission Creating table auth_group_permissions Creating table auth_group Creating table auth_user_groups Creating table auth_user_user_permissions Creating table auth_user Creating table django_content_type Creating table django_session Creating table django_site Creating table servers_compute Creating table instance_instance Creating table create_flavor You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (leave blank to use 'root'): root Email address: Password: Password (again): Superuser created successfully. Installing custom SQL ... Installing indexes ... Installed 6 object(s) from 1 fixture(s)5.添加一个超级用户[root@web webvirtmgr]# ./manage.py createsuperuser Username: abbott Email address: Password: Password (again): Superuser created successfully.运行服务[root@web webvirtmgr]# ./manage.py runserver & 默认端口:"8000"6.配置Nginx作为web代理6.1 将项目文件拷贝到/var/www/在/etc/nginx/conf.d添加文件webvirtmgr.conf:[root@web webvirtmgr]# cp webvirtmgr /var/www/ -R6.2 配置nginx代理server { listen 80 default_server; server_name $hostname; #access_log /var/log/nginx/webvirtmgr_access_log; location /static/ { root /var/www/webvirtmgr/webvirtmgr; # or /srv instead of /var expires max; } location ~ .*\.(js|css)$ { proxy_pass http://127.0.0.1:8000; } location / { proxy_pass http://127.0.0.1:8000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Proto $scheme; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; client_max_body_size 1024M; # Set higher depending on your needs } }6.3 检查nginx配置语法是否正确[root@web nginx]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful6.4 启动nginx[root@web nginx]# systemctl start nginx [root@web nginx]# systemctl enable nginx最终实现
2024年05月21日
99 阅读
0 评论
0 点赞
2024-04-13
用户管理
1. 创建用户在Linux系统中,redhat系列 命令: useradd 描述:创建新用户或更新默认的新用户信息语法: useradd [options] user_name选项:-d, --home-dir HOME_DIR home directory of the new account -u, --uid UID user ID of the new account -m, --create-home create the user's home directory -s, --shell SHELL login shell of the new account -M, --no-create-home 不创建家目录Example 1: 创建一个新的普通用户[root@localhost ~]# useradd dev检查用户是否创建成功[root@localhost ~]# id dev uid=1000(dev) gid=1000(dev) groups=1000(dev) uid: user ID #用户ID gid:group ID #组ID groups: #组名称Example 2: 给用户创建密码命令: passwd[root@localhost ~]# passwd dev Changing password for user dev. New password: #输入一次密码 BAD PASSWORD: The password is shorter than 8 characters #不满足密码的要求 Retype new password: #确认密码 passwd: all authentication tokens updated successfully.Example 3: 使用普通用户登录系统[root@web ~]# ssh
[email protected]
4: 创建新用户的时候且指定家目录[root@localhost ~]# useradd dev03 -d /opt/dev03验证结果:Example 5: 创建用户时指定uid 用户ID [root@localhost ~]# useradd dev04 -u 1100 [root@localhost ~]# id dev04 uid=1100(dev04) gid=1100(dev04) groups=1100(dev04)Example 6: 创建伪用户,不能登录shell 环境[root@localhost ~]# useradd dev05 -s /sbin/nologin [root@localhost ~]# id dev05 uid=1101(dev05) gid=1101(dev05) groups=1101(dev05) [root@localhost ~]# ls /home/ dev dev01 dev04 dev05 #测试 显示用户无法登录系统 [root@localhost ~]# su - dev05 This account is currently not available. # 创建用户时,指定不能登录shell环境,且不创建家目录 [root@localhost ~]# useradd dev06 -M -s /sbin/nologin #验证是否创建家目录 [root@localhost ~]# ls /home/ dev dev01 dev04 dev05 [root@localhost ~]# 在debin (ubuntu)系列中命令: adduser2. 删除用户命令:userdel语法:userdel [options] [user_name]example 1: 删除用户[root@localhost ~]# userdel dev06 [root@localhost ~]# id dev06 id: 'dev06': no such user [root@localhost ~]# id dev05 uid=1101(dev05) gid=1101(dev05) groups=1101(dev05) [root@localhost ~]# userdel dev05 [root@localhost ~]# id dev05 id: 'dev05': no such userexample 2: 删除用户的所有文件[root@localhost ~]# userdel -r dev05 [root@localhost ~]# ls /home/ dev dev01 dev04修改用户命令:usermod语法:usermod [options] [user_name]Example 1: 修改用户的uid[root@localhost ~]# useradd dev01 [root@localhost ~]# id dev01 uid=1000(dev01) gid=1000(dev01) groups=1000(dev01) [root@localhost ~]# [root@localhost ~]# usermod -u 1001 dev01 [root@localhost ~]# id dev01 uid=1001(dev01) gid=1000(dev01) groups=1000(dev01)Example 2: 修改用户的家目录[root@localhost ~]# mkdir /opt/dev01 [root@localhost ~]# usermod -d /opt/dev01 dev01 测试: [root@localhost ~]# su - dev01 Last login: Sat Apr 13 16:36:49 CST 2024 on pts/0 [dev01@localhost ~]$ pwd /opt/dev01 关于用户的主配置文件/etc/passwd # 用户的主配置文件/etc/shadow # 用户的密码文件主配置文件[root@localhost ~]# cat /etc/passwd |grep dev tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin dev01:x:1001:1000::/opt/dev01:/bin/bash dev03:x:1100:1100::/opt/dev03:/sbin/nologin 以冒号(:)作为分隔符 dev03:x:1100:1100::/opt/dev03:/sbin/nologin 第一个字段 #用户名 第二个字段 #密码占位符 第三个字段 #用户的ID 第四个字段 #用户组ID 第五个字段 #描述信息 第六个字段 #用户的家目录 第七个字段 #用户是否可以登录shell环境 用户的密码文件[root@localhost ~]# cat /etc/shadow root:$1$ruWCBuGb$dP9mCNiYN1mUuhiKZYo1b.::0:99999:7::: dev03:$6$NYLpnJrtz7T0o0A0$OvJkT3iQEalo0yl2Ht4HZse22:19826:0:99999:7::: 以冒号(:)作为分隔符 第一个字段 #用户名 第二个字段 #用户的密码 第三个字段 #最后修改时间 第四个字段 #最小间隔时间 第五个字段 #最大间隔时间 第六个字段 #警告时间 第七、八个字段 #保留字段切换用户命令:su语法: su [options][username]Example 1 切换用户当不切换所在的位置 - #切换用户的时候,连目录一起切换(系统环境) root@localhost ~]# su - dev04 [dev04@localhost ~]$ pwd /home/dev04
2024年04月13日
62 阅读
0 评论
0 点赞
2024-04-11
如何在CentOS 7中升级Linux内核
介绍Linux内核是所有Linux发行版运行的基础。它是开源软件-任何人都可以反编译、检查和修改代码。内核的更新版本可以提高安全性,增加功能,并提高操作系统的运行速度。本指南将指导您如何在CentOS 7上升级Linux内核。 先决条件CentOS服务器访问命令行/终端访问Sudo特权您系统的最新备份更新CentOS内核版本的步骤yum软件包管理器允许内核更新。然而,CentOS没有在官方存储库中提供最新的内核版本。要更新CentOS上的内核,您需要安装一个名为ElRepo的第三方存储库。ElRepo提供来自kernel.org的最新内核版本。官方版本经过测试,以确保它们正常工作,并且不会破坏应用程序和操作系统功能的稳定性。有两种类型的Linux内核版本:稳定的长期支持内核版本-更新频率较低,但支持时间更长。主线内核发布-支持期限较短,但更新更频繁。步骤1:检查您当前的内核版本要在CentOS上检查当前内核版本,请打开命令行界面并输入以下命令: [root@web ~]# uname -msr系统应该返回一个如下所示的条目:Linux 3.10.0-862.el7.x86-64 x86-64输出指示您当前运行的内核版本,以及它基于哪种架构。 第2步:更新CentOS存储库在升级内核之前,所有软件包都必须更新到最新版本。要更新CentOS软件存储库,请使用以下命令:[root@web ~]# yum -y update步骤3:启用ELRepo存储库要安装新的内核版本,需要启用一个新的存储库(ELRepo存储库)。在终端窗口中,键入:导入ELRepo存储库安装GPG密钥。这很重要-CentOS不允许安装未签名的软件包。GPG密钥提供数字签名,以验证软件是否真实。[root@web ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org安装elrepo库[root@web ~]# rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm安装完成输出:第4步:列出可用内核要列出可用的内核,请输入:[root@web ~]# yum list available --disablerepo='*' --enablerepo=elrepo-kernel系统应返回可用模块的列表。在列表中,注意一行说kernel-lt——表示稳定的长期支持版本——或kernel-ml——表示主线版本,支持期限较短,但更新更频繁。[root@web ~]# yum list available --disablerepo='*' --enablerepo=elrepo-kernel 已加载插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager to register. Loading mirror speeds from cached hostfile * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn elrepo-kernel | 3.0 kB 00:00:00 elrepo-kernel/primary_db | 2.1 MB 00:00:05 可安装的软件包 elrepo-release.noarch 7.0-6.el7.elrepo elrepo-kernel kernel-lt.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-devel.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-doc.noarch 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-headers.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-tools.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-ml.x86_64 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 6.7.1-1.el7.elrepo elrepo-kernel perf.x86_64 5.4.267-1.el7.elrepo elrepo-kernel python-perf.x86_64 5.4.267-1.el7.elrepo elrepo-kernel 第5步:安装新的CentOS内核版本要安装最新的主线内核[root@web ~]# yum --enablerepo=elrepo-kernel install kernel-ml第6步:查看可用版本[root@web ~]# cat /boot/grub2/grub.cfg | grep 'menuentry ' menuentry 'CentOS Linux (6.7.1-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-6.7.1-1.el7.elrepo.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' { menuentry 'CentOS Linux (3.10.0-1160.114.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.114.2.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' { menuentry 'CentOS Linux (3.10.0-1160.95.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.95.1.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' { menuentry 'CentOS Linux (3.10.0-1160.92.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.92.1.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' { menuentry 'CentOS Linux (3.10.0-1160.71.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.71.1.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' { menuentry 'CentOS Linux (0-rescue-e57ef32020fa406d9bbee213aba339ed) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-e57ef32020fa406d9bbee213aba339ed-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' {第7步:设置新内核为默认启动修改启动内核两种方法:第一种:修改grub引导到配置文件一旦您确认新内核兼容并正常工作,您将需要编辑GRUB引导实用程序,以便默认情况下,它会加载您的新内核。导航到/etc/default/,然后使用文本编辑器打开grub文件。或者,在终端中键入以下内容:sudo vim /etc/default/grub文件打开后,查找显示GRUB_DEFAULT=X的行,并将其更改为GRUB_DEFAULT=0(零)。此行将指示引导加载程序默认为列表中的第一个内核,这是最新的。保存文件,然后在终端中键入以下命令以重新创建内核配置:sudo grub2-mkconfig -o /boot/grub2/grub.cfg第二种:直接通过命令修改grub2-set-default 'CentOS Linux (6.7.1-1.el7.elrepo.x86_64) 7 (Core)'第8步: 查看设置的内核版本[root@web ~]# grub2-editenv list saved_entry=CentOS Linux (6.7.1-1.el7.elrepo.x86_64) 7 (Core)第9步:重启服务reboot验证默认情况下,引导加载程序是否设置为加载最新的内核。
2024年04月11日
494 阅读
0 评论
2 点赞
2024-04-05
nurses 磁盘使用
ncdu 命令概述ncdu(NCurses Disk Usage)是著名的 "du "的curses版本,可快速查看哪些目录正在占用磁盘空间。语法:ncdu <options> <directory>选项-h,--help此帮助信息 -q静音模式,刷新间隔为 2 秒 -v,-V,--版本 打印版本 -x 相同的文件系统 -启用扩展信息 -r 只读 -o FILE 将扫描目录导出到 FILE -从 FILE 导入扫描目录 -0,-1,-2扫描时使用的 UI(0=无,2=全 ncurses) --si 使用进制 10 (SI) 前缀,而不是进制 2 --exclude PATTERN 排除与 PATTERN 匹配的文件 -X, --exclude-from FILE 排除与 FILE 中任何模式匹配的文件 -L, --follow-symlinks 遵循符号链接(不包括目录) --exclude-caches 排除包含 CACHEDIR.TAG 的目录 --exclude-kernfs 排除 Linux 伪文件系统(procfs、sysfs、cgroup...) --confirm-quit 确认退出 ncdu --color SCHEME 设置颜色方案(off/dark/dark-bg)示例ubuntucom:~$ ncdu /
2024年04月05日
72 阅读
0 评论
0 点赞
2024-04-02
Ubuntu 系统LVM 磁盘扩容
问题 系统磁盘总容量500G,在安装ubuntu系统选择使用LVM作为分区,所以导致现在系统磁盘不够使用排查:查看卷组:查看逻辑卷:ubuntu系统默认不会把所有的存储空间划分给系统,以保证系统安全性,所以保留了一些存储空间,解决方案:从卷组里划分出一些空间给逻辑卷扩容y36@y36-server-ubuntucom:~$ sudo lvextend -L +100G /dev/ubuntu-vg/ubuntu-lv Size of logical volume ubuntu-vg/ubuntu-lv changed from 100.00 GiB (25600 extents) to 200.00 GiB (51200 extents). Logical volume ubuntu-vg/ubuntu-lv successfully resized.刷新逻辑卷y36@y36-server-ubuntucom:~$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv resize2fs 1.47.0 (5-Feb-2023) Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required old_desc_blocks = 13, new_desc_blocks = 25 The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 52428800 (4k) blocks long.查看系统磁盘空间y36@y36-server-ubuntucom:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 3.2G 1.9M 3.2G 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv 197G 81G 108G 43% / tmpfs 16G 0 16G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 16G 0 16G 0% /run/qemu /dev/sda1 2.0G 243M 1.6G 14% /boot tmpfs 3.2G 4.0K 3.2G 1% /run/user/1000
2024年04月02日
158 阅读
0 评论
0 点赞
2024-03-28
使用shell脚本创建KVM虚拟机
[root@web ~]# cat install_vm.sh #!/bin/bash # 定义虚拟机名称、磁盘路径、操作系统镜像和Kickstart文件路径 read -p "请输入虚拟机的名称:" VM_NAME #VM_NAME="myvm" VM_DISK_PATH="/home/xuni/${VM_NAME}.qcow2" #read -p "请输入您安装系统镜像的位置:" ISO_IMAGE ISO_IMAGE="/home/ISO/rhel-8.8-x86_64-dvd(1).iso" KICKSTART_FILE="/root/ks.cfg" #read -p "请指定KS文件位置" KICKSTART_FILE # 创建虚拟机磁盘 qemu-img create -f qcow2 "${VM_DISK_PATH}" 40G # 使用virt-install启动虚拟机安装过程 virt-install \ --name "${VM_NAME}" \ --memory 4089 \ --vcpus 2 \ --disk path="${VM_DISK_PATH}",format=qcow2 \ --os-type=linux \ --cdrom "${ISO_IMAGE}" \ --network network=default \ #--initrd-inject="${KICKSTART_FILE}" --extra-args "ks=file://${KICKSTART_FILE}" # 等待虚拟机安装完成 echo "等待安装完成..." while ! virsh list --all | grep -q "${VM_NAME}"; do sleep 5 done # 获取虚拟机的IP地址 VM_IP=$(virsh domifaddr "${VM_NAME}" | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b") echo "虚拟机 ${VM_NAME} 的IP地址为:${VM_IP}" echo "完成安装!"
2024年03月28日
115 阅读
0 评论
0 点赞
1
2