Linux核心操作知识总结(计划任务、软件包管理、本地YUM仓库)
本文基于Red Hat/RockyLinux系统,详细讲解了计划任务crontab 、RPM包基础管理 、本地YUM仓库搭建与使用三大核心操作,同时修正实操细节偏差、补充企业级运维场景的注意事项,适配Linux服务器基础运维实战需求。
一、计划任务(crontab)
计划任务是Linux自动化运维的核心工具,用于按固定时间间隔自动重复执行系统任务 (如定时备份、日志清理、数据同步),核心基于cronie软件与crond系统服务实现,无需人工值守即可完成周期性操作。
1. 核心组件(必知前提)
-
软件依赖 :需安装
cronie、crontabs(Red Hat/RockyLinux默认预装,可通过rpm -q cronie验证); -
系统服务 :
crond是计划任务的核心服务,需确保开机自启:bashsystemctl start crond && systemctl enable crond # 启动并设置开机自启 systemctl status crond # 验证服务状态(显示running即为正常) -
日志文件 :
/var/log/cron(记录所有计划任务的执行时间、用户、命令及结果,是排错的核心依据)。
2. 核心管理命令(crontab)
命令通用格式:crontab [选项] [-u 用户名],核心规则:
- 无
-u参数时,默认操作当前登录用户的计划任务; - 仅
root用户可通过-u管理其他用户的任务,普通用户只能操作自身任务; - 编辑任务时默认使用
vi编辑器,需遵循vi的编辑/保存规则(i编辑、ESC退出、:wq保存)。
| 选项 | 作用 | 实操示例 |
|---|---|---|
-e |
编辑计划任务(无任务则创建) | crontab -e -u jim(为jim创建/编辑任务) |
-l |
查看已配置的计划任务 | crontab -l(查看当前用户)、crontab -l -u tom(查看tom) |
-r |
清除当前用户所有计划任务(高危操作,无确认步骤) | crontab -r -u jim(删除jim所有任务) |
3. 计划任务配置格式(核心规则)
必须严格遵循:分 时 日 月 周 任务命令(绝对路径),五个时间字段定义执行周期,字段间用空格分隔,任务命令必须写绝对路径(避免环境变量缺失导致执行失败)。
(1)时间字段取值与特殊符号
| 时间字段 | 取值范围 | 特殊符号说明(核心) |
|---|---|---|
| 分钟 | 0-59 | *:任意时间;,:分隔不连续时间(如1,30);-:连续范围(如10-20);/:频率(如*/5每5分钟) |
| 小时 | 0-23 | 同上(如8,18表示8点和18点) |
| 日期 | 1-31 | 同上(注意月份天数限制,如2月无30日) |
| 月份 | 1-12 | 同上(如1-6表示1-6月) |
| 星期 | 0-7 | 0和7均代表周日;同上(如1-5表示周一至周五) |
(2)格式示例(快速理解)
| 配置规则 | 执行逻辑 |
|---|---|
*/10 * * * * /usr/bin/echo 123 |
每10分钟执行一次echo命令 |
30 8 * * 1-5 /usr/bin/backup.sh |
每周一至周五8:30执行备份脚本 |
0 0 1 * * /usr/bin/clean_log.sh |
每月1日0点执行日志清理脚本 |
4. 实操示例(完整流程)
需求:为jim配置计划任务,每分钟向/opt/date.txt追加内容123,步骤如下:
bash
# 1. 编辑jim的计划任务
crontab -e -u jim
# 2. 写入配置规则(按格式编写)
* * * * * /usr/bin/echo 123 >> /opt/date.txt
# 3. 保存退出(vi编辑器:ESC → :wq)
# 4. 验证配置是否生效
crontab -l -u jim # 查看是否显示上述规则
# 5. 检查执行结果(等待1分钟后)
cat /opt/date.txt # 应看到多行123
# 6. 无需时删除任务
crontab -r -u jim
补充注意事项(避坑关键)
- 命令绝对路径可通过
which 命令查询(如which echo得到/usr/bin/echo); - 若任务执行无结果,优先查看
/var/log/cron日志(如权限不足、路径错误都会记录); - 普通用户的任务若写入系统目录(如
/usr),会因权限不足执行失败; - 避免任务在分钟/小时为
*时执行高负载操作(如每分钟备份数据库),防止系统资源耗尽。
二、Linux软件包管理
Linux软件包是标准化的安装单元,不同系统有专属格式,核心分为预编译包(RPM/DEB) 和源码包 ,本文聚焦Red Hat/RockyLinux的.rpm包管理。
1. 主流软件包格式对比
| 操作系统/系列 | 包格式 | 核心管理工具 | 核心特点 |
|---|---|---|---|
| Windows | .exe | 图形安装程序 | 手动双击安装,依赖需手动处理 |
| macOS | .dmg | 图形挂载/brew | 图形化为主,brew可自动化管理依赖 |
| Red Hat/RockyLinux/CentOS | .rpm | rpm、yum、dnf | 预编译包,yum/dnf自动解决依赖 |
| Ubuntu/Debian | .deb | dpkg、apt/apt-get | 预编译包,apt自动解决依赖 |
| 通用Linux | .tar.gz/.zip(源码包) | 手动编译(configure/make/make install) | 需编译,可自定义参数,无依赖自动处理 |
2. RPM包基础(原生管理方式)
RPM是Red Hat专属预编译包,rpm命令是其原生管理工具,能分析依赖但无法自动解决(需手动安装所有依赖包,适合单包无依赖场景)。
2.1 RPM包命名规则(标准化)
格式:软件名-主版本.次版本.修订号-发布号.系统版本.架构.rpm
示例:kernel-4.18.0-477.15.1.el8_8.x86_64.rpm
kernel:软件名(内核);4.18.0:版本号(主.次.修);477.15.1:发布号;el8_8:适配RHEL8.8(RockyLinux8.8);x86_64:硬件架构(64位),另有i386(32位)、noarch(跨架构)。
2.2 rpm命令核心用法
通用格式:rpm [选项] [软件名/完整包名],核心查询、安装、卸载选项如下:
(1)查询类(最常用)
| 选项 | 作用 | 示例 |
|---|---|---|
-q 软件名 |
查询指定软件是否安装 | rpm -q cronie |
-qa |
列出所有已安装的RPM包 | `rpm -qa |
-qi 软件名 |
查看软件详细信息(版本、发布号、描述) | rpm -qi vsftpd |
-ql 软件名 |
列出软件所有文件的安装路径 | rpm -ql vsftpd(查配置文件/执行文件路径) |
(2)安装/卸载/升级类(了解,用的少)
| 选项 | 作用 | 示例 |
|---|---|---|
-ivh 完整包名 |
安装RPM包(i=安装,v=详情,h=进度条) | rpm -ivh vsftpd-3.0.3-35.el8.x86_64.rpm |
-e 软件名 |
卸载RPM包(无需完整包名) | rpm -e vsftpd |
-Uvh 完整包名 |
升级RPM包(无则安装,有则升级) | rpm -Uvh kernel-4.18.0-477.15.1.el8_8.x86_64.rpm |
三、本地YUM仓库搭建与使用
YUM(Yellowdog Updater Modified)是基于RPM包的高级管理工具,核心优势是自动分析并解决RPM包的依赖关系 (无需手动安装依赖)。YUM仓库是存放RPM包和repodata清单(记录依赖关系)的存储位置,本文重点讲解本地YUM仓库(基于系统光盘搭建,无网络依赖、稳定性最高)。
核心原理
系统光盘(ISO)中自带完整的RPM包和repodata清单,只需将光盘永久挂载到本地目录,再配置YUM客户端指向该目录,即可搭建本地仓库(服务端与客户端为同一台机器)。
3.1 YUM服务端配置(永久挂载光盘)
核心是修改/etc/fstab实现光盘永久挂载(重启后不失效),步骤如下(root用户操作):
bash
# 1. 备份配置文件(防止改错)
cp /etc/fstab /opt/fstab.bak
# 2. 创建挂载点(空目录,名称自定义)
mkdir /mydvd
# 3. 编辑fstab,追加挂载规则
vim /etc/fstab
# 新增一行:/dev/cdrom 挂载点 文件系统 权限 自检 优先级
/dev/cdrom /mydvd iso9660 defaults 0 0
# 4. 刷新挂载配置(立即生效,无需重启)
mount -a
# 5. 验证挂载结果
df -h # 查看是否有/dev/cdrom -> /mydvd的挂载记录
# 6. 检查仓库文件(光盘包含两个核心仓库)
ls /mydvd/AppStream # 显示Packages(RPM包)、repodata(清单)
ls /mydvd/BaseOS # 同上
3.2 YUM客户端配置(关键步骤)
YUM客户端通过.repo配置文件指定仓库位置,需严格遵循路径和命名规则,步骤如下:
步骤1:清理原有配置(避免干扰)
bash
# 创建备份目录
mkdir /etc/yum.repos.d/bak
# 移动系统默认.repo文件到备份目录
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
# 验证(确保目录下无其他.repo文件)
ls /etc/yum.repos.d/
步骤2:编写本地仓库配置文件
新建/etc/yum.repos.d/mydvd.repo,内容如下(对应光盘的两个仓库):
ini
[AppStream] # 仓库名称(唯一,自定义)
name=Local AppStream Repository # 仓库描述(自定义)
baseurl=file:///mydvd/AppStream # 本地仓库路径(file:///表示本地协议)
enabled=1 # 启用仓库(1=启用,0=禁用)
gpgcheck=0 # 关闭签名验证(本地光盘无需检测)
[BaseOS] # 第二个仓库名称
name=Local BaseOS Repository
baseurl=file:///mydvd/BaseOS
enabled=1
gpgcheck=0
步骤3:验证仓库配置
bash
# 1. 清空YUM缓存(首次配置必执行)
dnf clean all
# 2. 查看仓库信息(验证是否生效)
dnf repolist -v
# 正常结果:显示AppStream和BaseOS仓库,且包含软件包数量(如8265个)
3.3 YUM/DNF常用命令(RockyLinux8+推荐用dnf)
dnf是yum的升级版,命令格式完全兼容,核心用法如下(root用户执行):
| 命令 | 作用 | 关键说明 |
|---|---|---|
dnf clean all |
清空缓存 | 配置新仓库后必执行 |
dnf repolist [-v] |
查看启用的仓库 | -v显示软件包详细信息(包数量、路径) |
dnf [-y] install 软件名 |
安装软件 | -y:非交互式安装(自动确认) |
dnf provides [路径/]文件名 |
查找指定文件所属的软件包 | 排错神器(如dnf provides /etc/passwd) |
dnf list [软件名] |
列出软件信息 | 如dnf list vsftpd(查看版本、仓库来源) |
dnf [-y] remove 软件名 |
卸载软件 | 慎用-y,可能卸载系统依赖组件 |
dnf search 关键词(了解) |
搜索软件 | 如dnf search ftp(查找ftp相关软件) |
3.4 实操示例(安装/卸载/查询)
bash
# 示例1:安装vsftpd
rpm -q vsftpd # 先检查是否安装
dnf -y install vsftpd # 非交互式安装
rpm -q vsftpd # 验证安装结果
# 示例2:卸载vsftpd
dnf remove vsftpd # 手动输入y确认
rpm -q vsftpd # 验证是否卸载
# 示例3:查找文件所属软件包
dnf provides /etc/default/useradd # 查看该文件由哪个包提供
四、核心总结与实操要点
1. 计划任务(crontab)
- 核心:命令绝对路径 +目录写入权限 ,排错优先查
/var/log/cron; - 避坑:普通用户任务避免操作系统目录,
-r参数慎用(无恢复机制)。
2. RPM包管理
rpm命令适合无依赖的单包管理 ,有依赖时优先用dnf/yum;- 卸载核心包(如
glibc)会导致系统崩溃,需谨慎操作。
3. 本地YUM仓库
- 核心:
fstab永久挂载光盘 + 正确的.repo配置文件; - 关键:
baseurl路径必须正确(file:///+ 挂载点 + 仓库目录),/etc/yum.repos.d/无无效.repo文件; - 扩展:若将光盘文件复制到
/opt/yum,只需将baseurl改为file:///opt/yum/AppStream即可。
4. 工具选择原则
- 自动化重复任务 →
crontab; - 快速安装/卸载(有依赖) →
dnf/yum; - 单包查询/验证 →
rpm; - 自定义编译需求 → 源码包(configure/make/make install)。