4.3 Linux 软件包管理与计划任务
一、Linux 软件包管理基础
Linux 通过软件包管理器完成软件安装、升级、卸载与依赖管理。
不同发行版使用不同的软件包格式与工具:
| 发行版 |
包格式 |
管理工具 |
| CentOS / RHEL |
rpm |
yum / dnf |
| Debian / Ubuntu |
deb |
apt |
| openSUSE |
rpm |
zypper |
二、RPM 系软件包管理
CentOS、Rocky Linux、AlmaLinux、RHEL 等使用 RPM 包管理体系。
2.1 yum 与 dnf
yum:CentOS 7 常用
dnf:CentOS 8+ 与新版本 RHEL 默认工具
dnf 兼容 yum 命令,依赖处理与性能更好。
2.2 常用软件包命令
搜索软件包
id
查看软件信息
id
安装软件
id
更新软件
id1 2 3 4 5
| yum update nginx
yum update
|
卸载软件
id
查看已安装软件
id
配合过滤:
id1
| yum list installed | grep nginx
|
查询文件属于哪个软件包
id1
| yum provides /etc/nginx/nginx.conf
|
三、APT 软件包管理
Debian 与 Ubuntu 使用 apt。
3.1 常用 apt 命令
更新软件索引
id
安装软件
id
升级软件
id
卸载软件
id
搜索软件
id
四、仓库管理
软件仓库(Repository)用于提供软件包来源。
4.1 查看仓库
RPM 系
id
仓库配置目录
id
4.2 安装 EPEL 仓库
EPEL 提供大量额外软件。
id1
| yum install epel-release -y
|
4.3 软件源配置说明
常见国内镜像源:
更换镜像源通常可提升下载速度。
五、RPM 包管理
除了 yum/dnf,还可以直接使用 rpm。
5.1 安装 RPM 包
id
参数说明:
| 参数 |
含义 |
| i |
安装 |
| v |
显示详细信息 |
| h |
显示进度 |
5.2 查看已安装 RPM
id
5.3 查询软件信息
id
六、源码编译安装
部分软件需要源码编译。
常见流程:
id1 2 3 4 5 6 7 8 9 10 11
| wget http://example.com/software.tar.gz
tar -xzvf software.tar.gz
cd software
./configure --prefix=/usr/local
make
make install
|
6.1 编译流程说明
| 命令 |
作用 |
| configure |
检查环境与生成 Makefile |
| make |
编译源码 |
| make install |
安装程序 |
源码安装灵活,但维护成本较高。
七、计划任务 cron
cron 是 Linux 定时任务服务,用于周期性执行命令或脚本。
常见用途:
- 自动备份
- 日志清理
- 定时同步
- 定时重启服务
- 自动化运维脚本
八、crontab 基础
8.1 用户级计划任务
编辑任务
id
查看任务
id
删除任务
id
九、cron 时间格式
id
对应:
id
其中:
9.1 常用表达式
| 表达式 |
含义 |
* |
任意值 |
*/5 |
每 5 次 |
1,3,5 |
指定多个值 |
1-5 |
范围 |
十、cron 示例
每天凌晨执行脚本
id1
| 30 2 * * * /root/backup.sh
|
每 10 分钟执行一次
id1
| */10 * * * * /usr/bin/date
|
每月清理日志
id1
| 0 0 1 * * find /var/log -name "*.log" -mtime +30 -delete
|
每小时第 5 分钟执行
id
十一、系统级 cron
Linux 提供系统级计划任务目录。
| 目录 |
作用 |
/etc/crontab |
主配置文件 |
/etc/cron.d/ |
额外任务配置 |
/etc/cron.hourly/ |
每小时执行 |
/etc/cron.daily/ |
每天执行 |
/etc/cron.weekly/ |
每周执行 |
/etc/cron.monthly/ |
每月执行 |
十二、cron 日志查看
查看任务执行日志:
id
Ubuntu/Debian 常见日志位置:
id
十三、常见运维场景
安装 nginx
CentOS
id
Ubuntu
id
设置定时备份
id1
| 0 2 * * * /root/backup.sh
|
定时清理日志
id1
| 0 0 * * 0 find /var/log -name "*.log" -mtime +30 -delete
|
十四、总结
| 模块 |
核心内容 |
| yum / dnf |
RPM 系软件管理 |
| apt |
Debian 系软件管理 |
| rpm |
底层 RPM 管理 |
| cron |
定时任务系统 |
| crontab |
用户计划任务 |
Linux 软件包管理与计划任务是自动化运维基础,主要用于:
- 软件部署
- 系统更新
- 自动化维护
- 周期性任务执行
- 服务器日常运维