博客主页:christine-rr-CSDN博客 hi,大家好,我是christine-rr ! 今天来分享一下linux常用命令——其他
计划任务命令用于在 Linux 中定时、自动执行指定操作(如脚本运行、日志清理、数据备份等),分为 “一次性任务” 和 “周期性任务” 两类。
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(明天此时)。crontab 命令用于创建重复执行的定时任务(如每天凌晨清理日志、每周日备份数据库),是 Linux 中最常用的周期性任务管理工具,依赖 crond 服务。
核心特性:
/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(工作日) |
示例:
/home/user/backup.sh 脚本:0 2 * * * /home/user/backup.sh/var/log 日志:30 18 * * 1,3,5 rm -rf /var/log/*.log/usr/local/check.sh 脚本:*/10 * * * * /usr/local/check.shrsync(remote sync)是 Linux 中功能强大的文件同步与增量备份工具,支持本地与本地、本地与远程(通过 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)。
/data 同步到远程主机 192.168.1.100 的 /remote/data:rsync -avzP /data/ user@192.168.1.100:/remote/data/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/iostat 是 Linux 系统中用于监控 CPU 使用率 和 磁盘 I/O 性能 的核心命令,主要用于诊断磁盘读写瓶颈、分析 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 及所有分区) |
常用示例:
直接执行 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 %idle
2.30 0.01 1.20 0.45 0.00 96.04
Device 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-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输出指标详解:
指标 | 说明 | 关键意义 |
|---|---|---|
%user | 用户态进程占用 CPU 的百分比 | 若过高,说明应用程序(如数据库、Web 服务)负载重 |
%system | 内核态进程占用 CPU 的百分比 | 若过高,可能是内核 I/O 调度、中断处理频繁 |
%iowait | CPU 等待磁盘 I/O 完成的百分比 | 核心指标:若持续 >20%,说明磁盘 I/O 成为瓶颈 |
%idle | CPU 空闲百分比 | 若过低(<10%),说明 CPU 资源紧张 |
指标 | 说明 | 单位 |
|---|---|---|
Device | 磁盘或分区名称(如 sda、nvme0n1) | - |
tps | 每秒 I/O 操作次数(含读、写) | 次 / 秒 |
kB_read/s | 每秒读取数据量 | KB / 秒 |
kB_wrtn/s | 每秒写入数据量 | KB / 秒 |
kB_read | 累计读取数据量 | KB |
kB_wrtn | 累计写入数据量 | KB |
指标 | 说明 | 关键意义 |
|---|---|---|
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%,说明磁盘已接近满负载 |