linux常用命令——其他
博客主页:christine-rr-CSDN博客
hi,大家好,我是christine-rr ! 今天来分享一下linux常用命令——其他
linux常用命令——其他
目录
- linux常用命令——其他
- 执行计划任务的命令
- 1. at : 一次性计划任务
- 2. crontab: 周期性计划任务
- 其他命令
- rsync:文件同步 / 备份工具
- ostat:系统 I/O 性能监控命令
执行计划任务的命令
计划任务命令用于在 Linux 中定时、自动执行指定操作(如脚本运行、日志清理、数据备份等),分为 “一次性任务” 和 “周期性任务” 两类。
1. at : 一次性计划任务
at
命令用于创建仅执行一次的定时任务,适用于需要在未来某个特定时间点运行的操作(如凌晨 3 点执行一次数据备份脚本)。
核心特性:
- 基于 “时间点触发”,不重复执行;
- 依赖
atd
服务(需确保服务已启动,否则任务无法运行); - 任务执行结果默认通过邮件发送给当前用户。
常用语法与示例:
命令格式 | 说明 | 示例 |
---|---|---|
at [时间] | 交互式创建一次性任务 | at 23:30 (在 23:30 执行任务) |
at -f [脚本文件] [时间] | 执行指定脚本作为任务 | at -f backup.sh tomorrow 10:00 (明天 10 点执行 backup.sh) |
at -l 或 atq | 查看当前用户的待执行任务列表 | at -l (列出任务 ID、执行时间、用户) |
at -d [任务ID] 或 atrm [任务ID] | 删除指定 ID 的待执行任务 | at -d 5 (删除 ID 为 5 的任务) |
at -c [任务ID] | 查看指定任务的具体内容 | at -c 3 (查看 ID 为 3 的任务详情) |
时间参数格式:
at
支持灵活的时间表达:
- 绝对时间:
at 14:20 2024-12-31
(2024 年 12 月 31 日 14:20); - 相对时间:
at now + 10 minutes
(10 分钟后)、at now + 2 hours
(2 小时后); - 特殊时间:
at midnight
(午夜)、at noon
(正午)、at tomorrow
(明天此时)。
2. crontab: 周期性计划任务
crontab
命令用于创建重复执行的定时任务(如每天凌晨清理日志、每周日备份数据库),是 Linux 中最常用的周期性任务管理工具,依赖 crond
服务。
核心特性:
- 基于 “时间周期触发”(分、时、日、月、周),支持复杂的周期配置;
- 每个用户可独立管理自己的 crontab 任务;
- 系统级任务存放在
/etc/crontab
或/etc/cron.d/
目录下。
常用语法:
命令格式 | 说明 |
---|---|
crontab -e | 编辑当前用户的 crontab 任务(首次使用会提示选择编辑器) |
crontab -l | 列出当前用户的所有 crontab 任务 |
crontab -r | 删除当前用户的所有 crontab 任务(谨慎使用) |
crontab -u [用户名] -l | 查看指定用户的 crontab 任务(需 root 权限) |
任务配置格式(核心):
编辑 crontab 时,每条任务需遵循以下格式(共 6 个字段,空格分隔):
* * * * * 命令/脚本路径
分 时 日 月 周 要执行的操作
字段 | 取值范围 | 特殊符号说明 |
---|---|---|
分 | 0-59 | * (每分钟)、*/5 (每 5 分钟)、10-20 (10 到 20 分)、10,20,30 (10、20、30 分) |
时 | 0-23 | 同上,例:*/2 (每 2 小时)、9,18 (9 点和 18 点) |
日 | 1-31 | 同上,例:1 (每月 1 日)、1-5 (每月 1 到 5 日) |
月 | 1-12 或 Jan-Dec | 例:1,3,5 (1、3、5 月)、Jul-Sep (7-9 月) |
周 | 0-7 或 Sun-Sat(0 和 7 均代表周日) | 例:0 (每周日)、1-5 (工作日) |
示例:
- 每天凌晨 2 点执行
/home/user/backup.sh
脚本:
0 2 * * * /home/user/backup.sh
- 每周一、三、五的 18:30 清理
/var/log
日志:
30 18 * * 1,3,5 rm -rf /var/log/*.log
- 每 10 分钟执行一次
/usr/local/check.sh
脚本:
*/10 * * * * /usr/local/check.sh
其他命令
rsync:文件同步 / 备份工具
rsync
(remote sync)是 Linux 中功能强大的文件同步与增量备份工具,支持本地与本地、本地与远程(通过 SSH、rsync 服务)的文件同步,核心优势是 “只传输变化的文件”,效率极高。
核心特性:
- 增量同步:仅复制源与目标之间不同的部分(大小、修改时间等),节省带宽和时间;
- 保持属性:可同步文件的权限、所有者、修改时间等元数据;
- 支持远程:通过 SSH 或 rsync 服务实现跨主机同步,安全性高;
- 断点续传:支持大文件传输中断后恢复。
常用语法与选项:
基本格式:
rsync [选项] 源路径 目标路径
常用选项 | 说明 |
---|---|
-a | 归档模式(常用!):等价于 -rlptgoD ,包含递归、保持权限 / 时间 / 所有者等几乎所有属性 |
-v | 显示详细同步过程(verbose) |
-z | 传输时压缩数据(节省带宽,适合远程同步) |
-P | 等价于 -progress + -partial :显示传输进度 + 支持断点续传 |
-delete | 删除目标路径中 “源路径没有” 的文件(确保目标与源完全一致,谨慎使用) |
-n | 模拟同步(dry run):只显示会执行的操作,不实际修改文件 |
典型示例:
- 本地同步:将
/home/user/docs
同步到/backup/docs
,保持所有属性并显示进度:
rsync -avP /home/user/docs/ /backup/docs/
注意:路径末尾的
/
表示 “同步目录内的内容”,若无/
则会同步目录本身(如/backup/docs/docs
)。
- 远程同步(本地 → 远程,通过 SSH):将本地
/data
同步到远程主机192.168.1.100
的/remote/data
:
rsync -avzP /data/ user@192.168.1.100:/remote/data/
- 远程同步(远程 → 本地,通过 SSH):将远程
192.168.1.100
的/var/log
同步到本地/local/log_backup
:
rsync -avzP user@192.168.1.100:/var/log/ /local/log_backup/
- 完全同步(删除目标多余文件):确保远程
/remote/data
与本地/data
完全一致(删除远程多余文件):
rsync -avzP --delete /data/ user@192.168.1.100:/remote/data/
ostat:系统 I/O 性能监控命令
iostat
是 Linux 系统中用于监控 CPU 使用率 和 磁盘 I/O 性能 的核心命令,主要用于诊断磁盘读写瓶颈、分析 I/O 负载分布,是系统性能调优和故障排查的常用工具。
基本功能:
- 监控系统磁盘I/O的读写速度
- 查看CPU利用率
- 统计设备负载情况
- 识别I/O性能瓶颈
典型应用场景:
- 服务器性能调优
- 存储设备性能分析
- 系统瓶颈排查
- 容量规划
它属于 sysstat
工具包的一部分,若系统未预装,需先通过包管理器安装。
# Ubuntu/Debian
sudo apt-get install sysstat# CentOS/RHEL
sudo yum install sysstat# Fedora
sudo dnf install sysstat
基本语法:
iostat [选项] [时间间隔] [次数]
- 选项:核心选项用于过滤输出内容,聚焦特定监控维度。
- 时间间隔:每次监控数据的采集间隔(单位:秒)。
- 次数:采集数据的总次数(若省略,将持续输出直到按下
Ctrl+C
)。
常用选项:
选项 | 作用说明 |
---|---|
-c | 仅显示 CPU 使用率统计,不显示磁盘 I/O 信息 |
-d | 仅显示 磁盘 I/O 统计,不显示 CPU 信息 |
-k | 以 KB 为单位 显示 I/O 数据(默认单位为块,1 块≈512 字节) |
-m | 以 MB 为单位 显示 I/O 数据,更直观适合大文件场景 |
-x | 显示 扩展磁盘 I/O 统计(包含利用率、响应时间等关键性能指标) |
-t | 在输出中添加 时间戳,便于日志分析和时间关联 |
-p [设备] | 显示指定磁盘 / 分区的详细信息(如 -p sda 显示 sda 及所有分区) |
常用示例:
- 基础用法:默认输出 CPU + 磁盘概览
直接执行 iostat
,将显示系统启动以来的 平均 CPU 使用率 和 磁盘 I/O 统计:
iostat
输出示例:
Linux 5.15.0-78-generic (ubuntu-server) 10/09/2024 _x86_64_ (4 CPU)avg-cpu: %user %nice %system %iowait %steal %idle2.30 0.01 1.20 0.45 0.00 96.04Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
sda 3.20 45.60 120.30 0.00 4560000 12030000 0.00
sdb 0.05 0.80 0.00 0.00 80000 0 0.00
- 实时监控:按间隔输出多次数据
每 2 秒采集一次磁盘 I/O 数据,共采集 3 次(以 MB 为单位):
iostat -d -m 2 3
输出示例(仅显示第 1 次实时数据):
Linux 5.15.0-78-generic (ubuntu-server) 10/09/2024 _x86_64_ (4 CPU)Device tps MB_read/s MB_wrtn/s MB_dscd/s MB_read MB_wrtn MB_dscd
sda 5.80 0.12 0.35 0.00 12 35 0.00
- 注:首次输出仍为 “系统启动以来的平均值”,从第 2 次开始为 “间隔时间内的实时值”。
- 关键场景:扩展磁盘 I/O 分析(-x 选项)
-x
是排查 I/O 瓶颈的核心选项,输出 磁盘利用率、响应时间 等关键指标(以 KB 为单位):
iostat -d -x -k sda 1 2
输出示例:
Linux 5.15.0-78-generic (ubuntu-server) 10/09/2024 _x86_64_ (4 CPU)Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 0.50 5.30 20.00 212.00 0.10 2.20 16.7 29.3 0.80 2.50 0.01 40.00 40.00 0.30 0.18
输出指标详解:
- CPU 统计指标(avg-cpu 部分)
指标 | 说明 | 关键意义 |
---|---|---|
%user | 用户态进程占用 CPU 的百分比 | 若过高,说明应用程序(如数据库、Web 服务)负载重 |
%system | 内核态进程占用 CPU 的百分比 | 若过高,可能是内核 I/O 调度、中断处理频繁 |
%iowait | CPU 等待磁盘 I/O 完成的百分比 | 核心指标:若持续 >20%,说明磁盘 I/O 成为瓶颈 |
%idle | CPU 空闲百分比 | 若过低(<10%),说明 CPU 资源紧张 |
- 磁盘 I/O 基础指标(Device 部分)
指标 | 说明 | 单位 |
---|---|---|
Device | 磁盘或分区名称(如 sda、nvme0n1) | - |
tps | 每秒 I/O 操作次数(含读、写) | 次 / 秒 |
kB_read/s | 每秒读取数据量 | KB / 秒 |
kB_wrtn/s | 每秒写入数据量 | KB / 秒 |
kB_read | 累计读取数据量 | KB |
kB_wrtn | 累计写入数据量 | KB |
- 扩展磁盘 I/O 指标(-x 选项)
指标 | 说明 | 关键意义 |
---|---|---|
r/s / w/s | 每秒读 / 写操作次数 | 区分读 / 写负载类型 |
rrqm/s / wrqm/s | 每秒合并的读 / 写请求数 | 合并率高说明 I/O 调度高效 |
%rrqm / %wrqm | 合并请求占总请求的百分比 | - |
r_await / w_await | 读 / 写请求的平均等待时间(含队列等待 + 处理时间) | 若 >50ms,说明 I/O 响应慢 |
aqu-sz | 平均 I/O 队列长度 | 若持续 >2,说明 I/O 队列拥堵 |
svctm | 设备处理 I/O 请求的平均时间(不含队列等待) | 反映磁盘硬件本身的处理速度 |
%util | 磁盘忙碌时间占比 | 核心瓶颈指标:若持续 >80%,说明磁盘已接近满负载 |