云计算基础Day07:计划任务、软件包管理、本地YUM仓库

Linux核心操作知识总结(计划任务、软件包管理、本地YUM仓库)

本文基于Red Hat/RockyLinux系统,详细讲解了计划任务crontabRPM包基础管理本地YUM仓库搭建与使用三大核心操作,同时修正实操细节偏差、补充企业级运维场景的注意事项,适配Linux服务器基础运维实战需求。

一、计划任务(crontab)

计划任务是Linux自动化运维的核心工具,用于按固定时间间隔自动重复执行系统任务 (如定时备份、日志清理、数据同步),核心基于cronie软件与crond系统服务实现,无需人工值守即可完成周期性操作。

1. 核心组件(必知前提)

  • 软件依赖 :需安装croniecrontabs(Red Hat/RockyLinux默认预装,可通过rpm -q cronie验证);

  • 系统服务crond是计划任务的核心服务,需确保开机自启:

    bash 复制代码
    systemctl 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

补充注意事项(避坑关键)

  1. 命令绝对路径可通过which 命令查询(如which echo得到/usr/bin/echo);
  2. 若任务执行无结果,优先查看/var/log/cron日志(如权限不足、路径错误都会记录);
  3. 普通用户的任务若写入系统目录(如/usr),会因权限不足执行失败;
  4. 避免任务在分钟/小时为*时执行高负载操作(如每分钟备份数据库),防止系统资源耗尽。

二、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)

dnfyum的升级版,命令格式完全兼容,核心用法如下(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)。
相关推荐
智慧化智能化数字化方案2 小时前
数字化进阶——解读场景化、图谱化推进重点行业数字化转型的参考指引(2025版)
大数据·人工智能·云计算·行业数字化转型的参考指引
光锥智能3 小时前
AI风越大,云计算越贵
人工智能·云计算
观测云3 小时前
阿里云 Tair 集群版可观测最佳实践
阿里云·云计算·观测云
可观测性用观测云19 小时前
阿里云 Tair 集群版可观测最佳实践
云计算·监控
许国栋_1 天前
B2B企业如何建设价值管理办公室(VMO)?实践与落地解析
人工智能·安全·云计算·产品经理
亚林瓜子1 天前
为AWS ElastiCache添加CPU和内存利用率告警
云计算·aws
SaaS_Product1 天前
企业网盘哪个好?企业网盘选型需求分析
大数据·云计算·saas·onedrive
独自破碎E1 天前
告别腾讯云 COS,用 GitHub + jsDelivr 搭建零成本图床
云计算·github·腾讯云
TG_yunshuguoji1 天前
阿里云代理商:怎么创建和连接RDS云数据库?
数据库·阿里云·云计算