首页
友情链接
关于
Search
1
Docker 拉取镜像报错 “missing signature key” 解决办法
1,257 阅读
2
如何在CentOS 7中升级Linux内核
438 阅读
3
docker 常用命令
192 阅读
4
k8s 常用命令
190 阅读
5
Ubuntu 系统LVM 磁盘扩容
157 阅读
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
登录
/
注册
Search
标签搜索
Docker
shell脚本
Linux 系统管理
k8s
LVM
KVM
网络服务
Nginx
Ubuntu
内核升级
Linux用户管理
系统管理
MySQL
共享存储
Abbott
累计撰写
35
篇文章
累计收到
2
条评论
首页
栏目
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
页面
友情链接
关于
搜索到
12
篇与
的结果
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日
39 阅读
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日
88 阅读
0 评论
1 点赞
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日
61 阅读
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日
106 阅读
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日
438 阅读
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日
71 阅读
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日
157 阅读
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日
105 阅读
0 评论
0 点赞
2024-03-28
shell-script 创建密钥认证
[root@web ~]# cat ssh-copy-id.sh #!/bin/bash # 设置远程服务器的用户名列表和对应的IP地址列表 USERS=("user1" "user2" "user3") # 替换为你的用户名列表 SERVERS=("192.168.212.141" "192.168.212.142" "192.168.212.143") # 替换为你的服务器IP地址列表 PASSWORD="your_password" # 替换为你的远程服务器密码 PUBLIC_KEY_FILE="$HOME/.ssh/id_rsa.pub" # 公钥文件路径 # 检查公钥文件是否存在 if [ ! -f "$PUBLIC_KEY_FILE" ]; then echo "公钥文件不存在,请确认路径是否正确或者生成新的SSH密钥对。" exit 1 fi # 循环遍历远程服务器列表,并推送公钥 for ((i = 0; i < ${#SERVERS[@]}; i++)); do REMOTE_SERVER="${USERS[$i]}@${SERVERS[$i]}" # 向远程服务器传输公钥内容 echo "正在将公钥推送到远程服务器 $REMOTE_SERVER ..." sshpass -p "$PASSWORD" ssh-copy-id -o StrictHostKeyChecking=no -i "$PUBLIC_KEY_FILE" "$REMOTE_SERVER" if [ $? -eq 0 ]; then echo "公钥已成功推送到远程服务器 $REMOTE_SERVER。" else echo "无法将公钥推送到远程服务器 $REMOTE_SERVER,请检查权限和SSH配置。" fi done
2024年03月28日
63 阅读
0 评论
0 点赞
2024-03-28
shell 脚本批量创建免密登录
#!/bin/bash ipadd="192.168.212" read -p "请输入密码" passwd ssh_copy(){ for i in 141 142 143 do echo "正在连接$ipadd.$i" sshpass -p "$passwd" ssh-copy-id $ipadd.$i -o StrictHostKeyChecking=no done } if [ -f /usr/bin/sshpass ];then ssh_copy else yum -y install sshpass ssh_copy fi
2024年03月28日
38 阅读
0 评论
1 点赞
2024-03-28
shell 脚本安全审计
[root@web ~]# cat security.sh #!/bin/bash # 安全审计和漏洞扫描脚本 # 设置输出文件 output_file="security_scan_report.txt" # 执行系统信息收集 echo "收集系统信息..." > $output_file date >> $output_file echo "---------------------------" >> $output_file uname -a >> $output_file df -h >> $output_file echo "" >> $output_file for ip in {1..254} do ping -c 3 192.168.218.$ip if [ $? -eq 0 ]; then # 执行漏洞扫描 echo "执行漏洞扫描..." >> $output_file echo "---------------------------" >> $output_file # 在这里使用适合你的漏洞扫描工具,例如:Nmap、OpenVAS、Nessus等 nmap -p 1-65535 -T4 -A -v 192.168.218.$ip >> $output_file echo "" >> $output_file # 执行安全审计 echo "执行安全审计..." >> $output_file echo "---------------------------" >> $output_file # 在这里使用适合你的审计工具,例如 Lynis 或其他自定义脚本 yum -y install lynis > /dev/null lynis audit system >> $output_file echo "" >> $output_file else echo 192.168.218.$ip down fi done # 结束脚本 echo "安全审计和漏洞扫描已完成。报告保存在 $output_file。"
2024年03月28日
60 阅读
0 评论
0 点赞
2024-03-08
Linux 软件包管理
Linux安装及管理软件 本章主要简介Linux下软件安装方式,Linux安装软件也有自己的一套方式,最常见的有源码安装方式,RPM安装方式、YUM安装方式和二进制安装方式。用户可以根据自己的需要和获得软件包的不同,选择不自己喜欢的安装方式。1、源码安装方式由于Linux操作系统开放源代码,因而在其上安装的软件大部分也都是开源软件,例如Apache、Tomcat、PHP等软件,开源软件基本都是提供源码下载、源码安装的方式;源码安装的好处是用户可以定制软件功能,安装需要的模块,不需要的功能可以不用安装,此外用户还可以自己选择安装路径,方便管理,卸载软件也很方便,只需要删除对应的安装目录即可。源码安装软件一般有以下几个步骤:下载解压源码、分析安装平台环境(configure)、编译安装软件(make、make install) 2、下载、解压源码Linux下软件的源码一般都是C或者C++语言编写的,并且都会在软件的官网上提供源码包下载,我们可以从官网下载源码文件,然后再传到所在的Linux系统下,如果你的Linux系统处于联网状态下,也可以直接在系统内通过wget之类的下载命令将源码包直接下载到Linux系统下。下载完成,把相应的软件包解压即可,针对下载的软件包的不同,使用不同方法进行解压,解压完成后进入解压生成的目录中。在这个目录下,一般都在一个REDAME文件。这个文件非常重要,它详细介绍了这个软件所能完成的功能、授权许可、安装需求、安装注意事项、安装方式等。3、分析安装平台环境在软件包解压完成之后,源码目录中,一般都会存在configure和README这两个文件,Linux下软件的安装受到操作系统安装环境的影响,比如某些软件在安装或者运行过程中需要调用操作系统本省的库文件,或者需要运行系统的摸个工具等。4、编译、安装软件在验证软件安装环境后正式进入软件的编译步骤,在进行编译前,首先了解下关于编译的一些基础知识. 在Linux系统下,make是经常用到的编译命令,无论是安装软件还是项目开发,都会经常用到编译、安装命令,也就是make和make install。对于一个包含很多源文件的应用程序,使用make和Makefile工具可以简单快速地解决各个源文件之间复杂的依赖关系,同时,make工具可以自动完成所有源码文件的编译工作,并且可以只对上次编译后修改过的文件进行增量编译,因此,熟练掌握了make和Makefile工具之后,源码安装软件就变得像Windows下安装软件一样简单。 1、makefile 文件 make工具最主要的功能就是通过makefile文件来实现的,makefile文件时按照某种语法来进行编写的,文件中定义了各个源文件之间的依赖关系,说明了如果编译源文件并生成可执行文件,它通过描述各个源程序之间的关系make工具自动完成编译工具, 2、make与make install 在了解Makefile文件结构,我们就可以控制编译的选项,定制自己所需的软件功能,接下来,我嗯只须在命令行输入make命令,即可进入编译阶段,根据软件源程序的大小和系统的硬件配置,编译时间不定,编译完成,会在当前目录以及子目录下生成相应的可执行文件,之后就可以进入安装软件,在命令行输入make install命令,在开始安装软件,安装进程会首先创建安装目录,如果没有指定安装目录安装程序默认会在系统的/usr/local目录下创建安装目录,然后将相应的文件和可执行程序从源码目录复制到安装目录下,这样安装就完成了。RPM包安装RPM介绍RPM是Red Hat Package Manager的缩写,本意是Red Hat软件包管理,是最先由Redhat公司开发出来的Linux下软件包管理工具,由于这种软件管理非常方便,逐渐被其他Linux发行商所借用,现在已经成为Linux平台下通用的软件包安装方式。RPM包管理方式的优点是:安装简单、方便,因为软件已经编译完成且打包完成,安装只是个验证环境和解压的过程,此外通过RPM方式安装的软件RPM工具都会记录软件的安装信息,这样方便了软件日后的查询、升级和卸载。RPM包管理方式的缺点是对操作系统环境的依赖很大,它要求RPM包的那幢环境必须与PRM包封装时的环境和一致或相当,还需啊满足安装时与系统某些软件包的依赖关系。RPM包的种类和组成RPM包的封装格式一般有两种,分别是RPM和SRPM,SRPM包也是一种RPM,但是它包含了编译时的源文件和一些编译指定的参数文件,因而在使用的时候需要重新进行编译,通常SRPM对应的RPM文件类似于“xxx.src.rpm”格式。RPM工具描述:RPM工具的使用分为安装、查询、验证、更新、删除等操作。安装软件包:语法格式:rpm [选项...]常用选项:安装/升级/擦除选项: --allfiles 安装全部文件,包含配置文件,否则配置文件会被跳过。 --allmatches 移除所有符合 <package> 的软件包(如果 <package> 被指定未多个软件包,常常会导致错误出现) --badreloc 对不可重定位的软件包重新分配文件位置 -e, --erase=<package>+ 清除 (卸载) 软件包 --excludedocs 不安装程序文档 --excludepath=<path> 略过以 <path> 开头的文件 --force --replacepkgs --replacefiles 的缩写 -F, --freshen=<packagefile>+ 如果软件包已经安装,升级软件包 -h, --hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好) --ignorearch 不验证软件包架构 --ignoreos 不验证软件包操作系统 --ignoresize 在安装前不检查磁盘空间 -i, --install 安装软件包 --justdb 更新数据库,但不修改文件系统 --nodeps 不验证软件包依赖 --nofiledigest 不验证文件摘要 --nocontexts 不安装文件的安全上下文 --noorder 不对软件包安装重新排序以满足依赖关系 --noscripts 不执行软件包脚本 --notriggers 不执行本软件包触发的任何脚本 --nocollections 请不要执行任何动作集 --oldpackage 更新到软件包的旧版本(带 --force 自动完成这一功能) --percent 安装软件包时打印百分比 --prefix=<dir> 如果可重定位,便把软件包重定位到 <dir> --relocate=<old>=<new> 将文件从 <old> 重定位到 <new> --replacefiles 忽略软件包之间的冲突的文件 --replacepkgs 如果软件包已经有了,重新安装软件包 --test 不真正安装,只是判断下是否能安装 -U, --upgrade=<packagefile>+ 升级软件包 --reinstall=<packagefile>+ reinstall package(syum安装方式yum是yellowdog update modified 的缩写,yellow dog(黄狗)也是Linux的一个发行版本,只不过Red Hat公司是将这种升级技术利用到自己的发行版上就形成了现在的yum,yum是进行Linux系统下软件安装和升级常用的一个工具,通过Linux工具配合互联网即可实现软件的便捷安装和自动升级。yum 安装及配置yum的安装以CentOS 7 为例,要检查yum是否已经安装,基本系统默认会自动安装yum工具[root@localhost ~]# rpm -qa |grep yumyum的配置yum的配置文件有主要配置文件/etc/yum.conf,资源库配置目录/etc/yum.repos.d。 yum 安装后,默认的一些资源库配置可能无法使用,因此需要进行修改,修改配置文件为:/etc/yum.repos.d/[cr] name=CentOS-$releasever - cr baseurl=http://mirror.centos.org/centos/$releasever/cr/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=0yum的特点与基本用法yum的特点安装方便,自动解决添加或删除RPM包时遇到的依赖性问题。可以同时配置多个资源库(Repository)配置文件简单明了(/etc/yum.conf, /etc/yum.repos.d/)保持与RPM数据库的一致性yum的基本用法如果安装或者删除RPM包[root@localhost ~]# yum -y install *.rpm [root@localhost ~]# yum -y remove *.rpm检查yum工具更新软件包[root@localhost ~]# yum check-update更新所有的RPM软件包[root@localhost ~]# yum update -y 通过yum查询RPM包信息[root@localhost ~]# yum info
2024年03月08日
88 阅读
0 评论
0 点赞