Sunday, June 22, 2025

Tag Archives: CentOS

删除CentOS的旧内核,清理CentOS的/boot分区

Linux系统在分区的时候一般不会分配过多的磁盘空间给启动分区/boot,通常情况下是300MB左右。在使用yum update升级内核(kernel)后,CentOS并不会自动删除旧内核,在启动选项中会有多个内核选项,会出现/boot分区逐渐减小、空间不足、无法更新内核的情况。如果出现这些问题,可以手动使用以下命令删除多余的内核,清理/boot分区。方法如下:

Read More »

AlmaLinux、Rocky Linux、CentOS安装多个PHP版本并使用Virtualmin为网站配置相应的PHP版本

在CentOS服务器中可以安装多个PHP版本,Virtualmin/Webmin允许您给每个网站甚至每个目录指定相应的PHP版本。

在AlmaLinux、Rocky Linux、CentOS中安装

安装Remi repository并清除缓存:

. /etc/os-release && dnf -y install https://rpms.remirepo.net/enterprise/remi-release-$(rpm -E %$ID).rpm && dnf clean all

安装PHP packages:

dnf install php81-php-{cli,fpm,pdo,gd,mbstring,mysqlnd,opcache,curl,xml,zip}

说明:根据自己实际需要,选择php81或php74等版本。

在Virtualmin/Webmin中配置第二个PHP版本(适用于所有新虚拟服务器)

Read More »

CentOS升级kernel

一、手动档

手动档就是从源码开始编译内核安装,好处是可以自己选择任意版本的内核,缺点就是耗时长,编译安装消耗系统资源

1.1、获取 kernel 源码

这世界上最伟大的 Linux 内核源码下载地址是 kernel 官网,选择一个稳定版本下载即可

1.2、解压并清理

官方要求将其解压到 /usr/src 目录,其实在哪都可以,为了规范一点索性也解压到此位置,然后为了防止编译残留先做一次清理动作

# 下载内核源码
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.4.1.tar.xz
# 解压并移动到 /usr/src
tar -Jxvf linux-6.4.1.tar.xz
mv linux-6.4.1 /usr/src/kernels
# 执行清理(没 gcc 的要装一下)
cd /usr/src/kernels/linux-6.4.1
make mrproper && make clean

1.3、生成编译配置表

kernel 在编译时需要一个配置文件(.config),用于描述开启哪些特性等,该文件一般可通过一下四种途径获得:

复制当前系统编译配置表,即 cp /boot/config-xxx .config;如果系统有多个内核,那么根据版本号选择最新的即可
使用 make defconfig 命令获取当前系统编译配置表,该命令会自动写入到 .config 中
使用 make localmodconfig 命令开启交互模式,然后根据提示生成编译配置表
使用 make oldconfig 命令根据旧的编译配置表生成新的编译配置表,刚方式会直接读取旧的便已配置表,并在以前没有设定过的配置时会自动开启交互模式
这里采用最后一种方式生成

1.4、编译并安装

内核配置表生成完成后便可进行编译和安装(需要安装 bc、openssl-devel等)

make
make modules
make modules_install
make install

最后执行重启验证即可,验证成功后可删除旧的内核

rpm -qa | grep kernel

二、自动档

相对于手动档编译安装,CentOS 还可以通过使用 elrepo 源的方式直接安装最新稳定版 kernel,脚本如下

For RHEL-7, SL-7 or CentOS-7:

# Import the public key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # To install ELRepo for RHEL-7, SL-7 or CentOS-7 yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm # install kernel yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y # modify grub grub2-set-default 0 # reboot reboot

Read More »

CentOS开启TCP BBR拥塞控制算法

Linux kernel 4.9.x开始支持tcp_bbr,本文以CentOS 7 64bit系统为例,介绍如何升级kernel开启TCP BBR拥塞控制算法。

记得先把/etc/sysctl.conf文件中关于net.ipv4.tcp_congestion_control的配置注释掉。

Read More »

服务器架设:安装SoftEtherVPN Server For Linux

SoftEtherVPN是由日本筑波大学(University of Tsukuba)登 大遊 (Daiyu Nobori)在硕士论文中提出的开源、跨平台、多重协议的虚拟专用网方案。

本文CentOS/Debian安装环境为例,讲解如何安装SoftEtherVPN Server For Linux。

第一部分:安装SoftEtherVPN Server

安装编译环境(适用于CentOS)

yum -y install gcc

安装编译环境(适用于Debian)

apt-get update && apt-get upgrade
apt-get install build-essential -y

SoftEther下载中心下载SoftEtherVPN Server For Linux

wget https://www.softether-download.com/files/softether/v4.43-9799-beta-2023.08.31-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.43-9799-beta-2023.08.31-linux-x64-64bit.tar.gz

或者从GitHub下载SoftEtherVPN Server For Linux

wget https://github.com/SoftEtherVPN/SoftEtherVPN/releases/download/5.02.5185/SoftEtherVPN-5.02.5185.tar.xz

解压文件

tar -zxvf softether-vpnserver-*.tar.gz

进入到解压目录

cd vpnserver

启动安装脚本

./.install.sh

阅读License,根据提示,输入“1”然后回车确认。

如果提示不识别某些命令比如gcc,另行安装即可。如果没有异常则说明安装成功。

启动服务

./vpnserver start

(停止服务命令为:./vpnserver stop)

可以用systemd启动vpnserver,先新建启动脚本/etc/systemd/system/vpnserver.service:

[Unit] Description=SoftEther VPN Server After=network.target [Service] Type=forking ExecStart=/root/vpnserver/vpnserver start ExecStop=/root/vpnserver/vpnserver stop [Install] WantedBy=multi-user.target

Read More »

Linux使用crontab运行定时任务详解

安装crontab:
CentOS:

yum install crontabs

Debian:

apt-get install cron

说明:

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

查看crontab服务状态:

service crond status

手动启动crontab服务:

service crond start

查看crontab服务是否已设置为开机启动,执行命令:

ntsysv

加入开机自动启动:

chkconfig –level 35 crond on

配置定时任务:

cron有两个配置文件,一个是一个全局配置文件(/etc/crontab),是针对系统任务的;一组是crontab命令生成的配置文件(/var/spool/cron下的文件),是针对某个用户的。定时任务配置到任意一个中都可以。

查看全局配置文件配置情况: cat /etc/crontab

———————————————
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
———————————————-
查看用户下的定时任务:crontab -l或cat /var/spool/cron/用户名

crontab命令说明

功能说明:设置计时器。

语  法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command

参  数:
-e  编辑该用户的计时器设置。
-l  列出该用户的计时器设置。
-r  删除该用户的计时器设置。
-u<用户名称>  指定要设定计时器的用户名称。

crontab 格式

基本格式 :
* *  *  *  *  command
分 时 日 月 周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

# Use the hash sign to prefix a comment
# +—————- minute (0 – 59)
# | +————- hour (0 – 23)
# | | +———- day of month (1 – 31)
# | | | +——- month (1 – 12)
# | | | | +—- day of week (0 – 7) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed

crontab文件的一些例子:

30 21 * * * /etc/init.d/nginx restart

每晚的21:30重启 nginx。

45 4 1,10,22 * * /etc/init.d/nginx restart

每月1、 10、22日的4 : 45重启nginx。

10 1 * * 6,0 /etc/init.d/nginx restart

每周六、周日的1 : 10重启nginx。

0,30 18-23 * * * /etc/init.d/nginx restart

每天18 : 00至23 : 00之间每隔30分钟重启nginx。

0 23 * * 6 /etc/init.d/nginx restart

每星期六的11 : 00 pm重启nginx。

* */1 * * * /etc/init.d/nginx restart

每一小时重启nginx

* 23-7/1 * * * /etc/init.d/nginx restart

晚上11点到早上7点之间,每 隔一小时重启nginx

0 11 4 * mon-wed /etc/init.d/nginx restart

每月的4号与每周一到周三 的11点重启nginx

0 4 1 jan * /etc/init.d/nginx restart

Read More »

如何使用U盘安装Linux/Unix系统

使用U盘在计算机中安装Linux/Unix系统的方法与使用光盘安装一样,不同的只是制作安装盘的过程。

光盘安装盘的制作方法很简单,只需将下载的ISO文件直接刻录到光盘即可,而U盘安装盘的制作方法略有差异。

现将主流Linux/Unix系统的U盘安装盘制作方法介绍如下:

一、制作Debian 12.0.0的U盘安装盘

使用Win32 Disk Imagerdebian-12.0.0-amd64-DVD-1.iso写入U盘即可。

Debian官网文档:https://www.debian.org/CD/faq/index.en.html#write-usb

二、制作Ubuntu 22.04.2的U盘安装盘

1、Ubuntu桌面版
使用Rufus刻录ubuntu-22.04.2-desktop-amd64.iso写入U盘即可。
2、Ubuntu服务器版
使用Win32 Disk Imagerubuntu-22.04.2-live-server-amd64.iso写入U盘即可。

Read More »

CentOS/Fedora的第三方源(软件仓库)

CentOS默认自带CentOS-Base.repo源(软件仓库),但官方源中去除了很多有版权争议的软件,而且安装的软件也不是最新的稳定版。Fedora自带的源中也找不到很多多媒体软件,如果需要安装,必需先添加其他源,如RPMFusion和RPMForge等第三方软件库。本文提及的第三方源适用于与RHEL完全兼容的linux发行版,如CentOS、Fedora、Scientific Linux。

EPEL源

EPEL即Extra Packages for Enterprise Linux,是由 Fedora 社区创建维护,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。EPEL中含有大量的软件,对官方标准源是一个很好的补充。
wiki:http://fedoraproject.org/wiki/EPEL
下载地址:http://dl.fedoraproject.org/pub/epel/
CentOS/RHEL执行下面的语句就可以使用此源:

yum -y install epel-release yum-utils
yum-config-manager --enable epel

或者

rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

ELRepo源

ELRepo项目侧重于硬件相关的包来增强你的经验与企业Linux。这包括文件系统驱动、显卡驱动、网络驱动程序、声音驱动、摄像头和视频驱动程序。
官方网站:http://elrepo.org/
CentOS/RHEL 7执行下面的语句就可以使用此源:

# import key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# install elrepo repo
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

Software Collections (SCL)

其实这不算一个“第三方仓库”,因为它是RedHat/CentOS自己提供的。这个仓库没提供几个软件,主要是服务器上常用的apache/mysql/python/ruby/pgsql等软件的新版本,它们也不会覆盖原来的旧版本,使用上也需要采用特殊的方式。
官方网站:https://www.softwarecollections.org/en/
CentOS/RHEL执行下面的语句就可以使用此源:

yum install centos-release-SCL

Webtatic Yum Repository

Webtatic Yum Repository是一个包含更新的Web相关包的CentOS/RHEL软件仓库。 其主要目标是:向CentOS/RHEL管理员提供最新稳定的小型版本的Web开发/托管软件,这些版本不是CentOS/RHEL发行版的小版本中提供的。作为一些Webtatic项目的附加安装选项。
官方网站:https://webtatic.com/
CentOS/RHEL 7执行下面的语句就可以使用此源:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Remi源

Remi源大家或许很少听说,但强烈推荐Remi源,尤其对于不想编译最新版的linux使用者,因为Remi源中的软件几乎都是最新稳定版。或许您会怀疑稳定不?放心吧,这些都是Linux骨灰级的玩家编译好放进源里的,他们对于系统环境和软件编译参数的熟悉程度毋庸置疑。Remi源需要针对不同的版本号下载。
Remi下载地址:https://rpms.remirepo.net/http://rpms.famillecollet.com/
CentOS/RHEL执行下面的语句就可以使用此源:

wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm rpm -Uvh remi-release-7.rpm yum --enablerepo=remi update remi-release

Read More »

Linux VPS自动时间校准命令

很多VPS安装完成后,过了很久才发现时间不准这个问题。有些是由于本身就没有调整好准确的时间,而有些则是因为时差问题导致连日期都有错误。本文将讲解ntpdate这一网络自动校时工具的安装与使用方法。

其实Linux中有个ntp包可以自动校准时间,并且非常好用。

Debian系统安装NTP校时包:

apt-get install ntpdate

CentOS系统安装NTP校时包:

yum install ntp

校时命令:

ntpdate cn.pool.ntp.org

如果想每隔一定时间自动校时,只需将上面的命令加入至Cron就行了:

00 12 * * * /sbin/ntpdate cn.pool.ntp.org

Read More »