linux常用命令——其他

博客主页:christine-rr-CSDN博客

​​​​​ ​​

hi,大家好,我是christine-rr ! 今天来分享一下linux常用命令------其他

linux常用命令------其他

目录

    • linux常用命令------其他
    • 执行计划任务的命令
      • [1. at : 一次性计划任务](#1. at : 一次性计划任务)
      • [2. crontab: 周期性计划任务](#2. crontab: 周期性计划任务)
    • 其他命令
      • [rsync:文件同步 / 备份工具](#rsync:文件同步 / 备份工具)
      • [ostat:系统 I/O 性能监控命令](#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 -latq 查看当前用户的待执行任务列表 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 个字段,空格分隔):

plaintext 复制代码
*  *  *  *  *  命令/脚本路径
分 时 日 月 周  要执行的操作
字段 取值范围 特殊符号说明
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(工作日)

示例

  1. 每天凌晨 2 点执行 /home/user/backup.sh 脚本:
plaintext 复制代码
0 2 * * * /home/user/backup.sh
  1. 每周一、三、五的 18:30 清理 /var/log 日志:
plaintext 复制代码
30 18 * * 1,3,5 rm -rf /var/log/*.log
  1. 每 10 分钟执行一次 /usr/local/check.sh 脚本:
plaintext 复制代码
*/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):只显示会执行的操作,不实际修改文件

典型示例

  1. 本地同步 :将 /home/user/docs 同步到 /backup/docs,保持所有属性并显示进度:
bash 复制代码
rsync -avP /home/user/docs/ /backup/docs/

注意:路径末尾的 / 表示 "同步目录内的内容",若无 / 则会同步目录本身(如 /backup/docs/docs)。

  1. 远程同步(本地 → 远程,通过 SSH) :将本地 /data 同步到远程主机 192.168.1.100/remote/data
bash 复制代码
rsync -avzP /data/ user@192.168.1.100:/remote/data/
  1. 远程同步(远程 → 本地,通过 SSH) :将远程 192.168.1.100/var/log 同步到本地 /local/log_backup
bash 复制代码
rsync -avzP user@192.168.1.100:/var/log/ /local/log_backup/
  1. 完全同步(删除目标多余文件) :确保远程 /remote/data 与本地 /data 完全一致(删除远程多余文件):
bash 复制代码
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 工具包的一部分,若系统未预装,需先通过包管理器安装。

bash 复制代码
# 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 及所有分区)

常用示例

  1. 基础用法:默认输出 CPU + 磁盘概览

直接执行 iostat,将显示系统启动以来的 平均 CPU 使用率磁盘 I/O 统计

bash 复制代码
iostat

输出示例:

plaintext 复制代码
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
  1. 实时监控:按间隔输出多次数据

每 2 秒采集一次磁盘 I/O 数据,共采集 3 次(以 MB 为单位):

bash 复制代码
iostat -d -m 2 3

输出示例(仅显示第 1 次实时数据):

plaintext 复制代码
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 次开始为 "间隔时间内的实时值"。
  1. 关键场景:扩展磁盘 I/O 分析(-x 选项)

-x 是排查 I/O 瓶颈的核心选项,输出 磁盘利用率、响应时间 等关键指标(以 KB 为单位):

bash 复制代码
iostat -d -x -k sda 1 2

输出示例

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

输出指标详解

  1. CPU 统计指标(avg-cpu 部分)
指标 说明 关键意义
%user 用户态进程占用 CPU 的百分比 若过高,说明应用程序(如数据库、Web 服务)负载重
%system 内核态进程占用 CPU 的百分比 若过高,可能是内核 I/O 调度、中断处理频繁
%iowait CPU 等待磁盘 I/O 完成的百分比 核心指标:若持续 >20%,说明磁盘 I/O 成为瓶颈
%idle CPU 空闲百分比 若过低(<10%),说明 CPU 资源紧张
  1. 磁盘 I/O 基础指标(Device 部分)
指标 说明 单位
Device 磁盘或分区名称(如 sda、nvme0n1) -
tps 每秒 I/O 操作次数(含读、写) 次 / 秒
kB_read/s 每秒读取数据量 KB / 秒
kB_wrtn/s 每秒写入数据量 KB / 秒
kB_read 累计读取数据量 KB
kB_wrtn 累计写入数据量 KB
  1. 扩展磁盘 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%,说明磁盘已接近满负载
相关推荐
zhaotiannuo_19984 小时前
虚拟机安装ikuai系统相关配置
运维·服务器·性能优化
“αβ”4 小时前
了解“网络协议”
linux·服务器·网络·c++·网络协议·tcp/ip·tcp
Doro再努力4 小时前
Linux01:基础指令与相关知识铺垫(一)
linux·运维·服务器
一只专注api接口开发的技术猿4 小时前
容器化与调度:使用 Docker 与 K8s 管理分布式淘宝商品数据采集任务
开发语言·前端·数据库
tryxr4 小时前
MySQL 之索引为什么选择B+树
数据库·mysql·b+树·索引
Cyan_RA94 小时前
Linux 远程Ubuntu服务器扩展硬盘后,将/home目录移动到新的硬盘空间上(把新硬盘的分区挂载到/home目录) 教程
linux·运维·ubuntu
_dindong4 小时前
Linux网络编程:Socket编程TCP
linux·服务器·网络·笔记·学习·tcp/ip
七宝大爷4 小时前
深度解析英伟达DGX与HGX服务器——从架构差异到场景选择
运维·服务器·架构
wanhengidc4 小时前
服务器的安全性如何?
运维·服务器·安全·游戏·智能手机