linux磁盘数据管理工具合集

linux中磁盘管理是运维工程师需要进场做的重要工作,目前磁盘分析工具主要使用du命令,磁盘数据拷贝使用cp/scp或者rsync这类工具,但是对于海量磁盘数据的管理这些工具很难满足运维需求,所以今天就介绍几个磁盘管理工具。

1.磁盘统计工具gdu(Go Disk Usage)

gdu是一个用Go语言编写的高性能磁盘使用情况分析器。它针对SSD和现代硬件进行了优化,支持并行处理,因此在大容量文件系统上扫描速度非常快,在面对海量磁盘数据的时候我们一般使用du命令会卡住或者很久才能打印统计结果,但是使用gdu就能更快的将磁盘信息进行统计,极大的提高了运维管理磁盘的效率
接下来我们进行安装和了解运行命令和参数

wget https://github.com/dundee/gdu/releases/latest/download/gdu_linux_amd64.tgz
tar -zxvf gdu_linux_amd64.tgz
sudo cp gdu_linux_amd64 /usr/local/bin/gdu
gdu -v
Version: v5.32.0
Built time: Sat Nov 22 12:00:38 PM CET 2025
Built user: dundee

我们来看下帮助提示

gdu -h
用 Go 语言编写的快速磁盘使用情况分析工具。
Gdu 主要针对 SSD 硬盘设计,能够充分发挥并行处理的优势。
不过,它在 HDD 硬盘上也能运行,但性能提升幅度没有那么大。
用法:
gdu [要扫描的目录] [标志]
标志:
--config-file string 从文件读取配置(默认为 $HOME/.gdu.yaml)
-g, --const-gc  在分析期间启用内存垃圾回收,级别由 GOGC 设置为常量
--enable-profiling 启用性能数据收集,并通过 http://localhost:6060/debug/pprof/ 提供
-L, --follow-symlinks 对文件的符号链接进行跟踪,即显示符号链接指向的文件的大小(不跟踪指向目录的符号链接)
-h, --help 显示 gdu 的帮助信息
-i, --ignore-dirs strings 要忽略的路径(用逗号分隔)。可以是绝对路径,也可以是相对于当前目录的路径(默认为[/proc,/dev,/sys,/run])
-I, --ignore-dirs-pattern strings 要忽略的路径模式(用逗号分 --ignore-from string 从文件读取要忽略的路径模式
-f, --input-file string 从 JSON 文件导入分析结果
-l, --log-file string 日志文件路径(默认为“/dev/null”)
-m, --max-cores int 设置 Gdu 最大使用的内核数。2 个内核可用(默认为 2)
--mouse 使用 --no-color 不使用彩色输出
-x, --no-cross                  不跨越文件系统边界
--no-delete                     不允许删除
-H, --no-hidden                 忽略隐藏目录(以点开头)
--no-prefix                     在非交互模式下显示原始数字大小,不带任何前缀(SI 或二进制)
-p, --no-progress               在非交互模式下不显示进度
--no-spawn-shell                不允许启动 shell
-u, --no-unicode                不使用 Unicode 符号(用于大小条形图)
-n, --non-interactive           不在交互模式下运行
-o, --output-file string        将所有信息以 JSON 格式导出到文件
-r, --read-from-storage         从持久键值存储中读取分析数据
--reverse-sort                  在非交互模式下反转排序顺序(从小到大)
--sequential                    使用顺序扫描(适用于旋转硬盘)
-A, --show-annexed-size         如果文件未在本地存在,则使用 git-annex 文件的表观大小(实际使用量为零)
-a, --show-apparent-size        显示表观大小-d, --show-disks                    显示所有已挂载的磁盘
-C, --show-item-count           显示目录中的项目数量
-M, --show-mtime                显示目录中项目的最新修改 --show-relative-size            显示相对大小
--si                            使用十进制 SI 前缀(kB、MB、GB)显示大小,而非二进制前缀(KiB、MiB、GiB)
--storage-path string           持久键值存储目录的路径(默认值为“/tmp/badger”)
-s, --summarize                 在非交互模式下仅显示总计
-t, --top int                   在非交互模式下仅显示最大的 X 个文件
--use-storage                   使用持久键值存储进行分析数据(实验性)
-v, --version                   显示版本
--write-config                  将当前配置写入文件(默认为 $HOME/.gdu.yaml)

例如我们需要统计目录下的文件数量和大小

gdu -C /data

可以使用非交付命令直接返回结果

gdu -n /data
11.6 GiB /share
567.2 MiB /blog
465.4 MiB /backup
106.2 MiB /logs
64.0 KiB /vpn

可以使用-i参数忽略某些目录

gdu -ni /data/logs,/data/vpn /data
11.6 GiB /share
567.2 MiB /blog
465.4 MiB /backup

其他参数可以自行再去验证,就这里就不列举每个参数的使用方法了。

2.磁盘统计工具ncdu(NCurses Disk Usage)

ncdu是一个基于curses库的交互式磁盘使用情况分析工具,它提供了比 du 更直观、更友好的界面,并且扫描速度通常更快。
这个工具可以直接进行在线安装

sudo apt install ncdu

我们来看下帮助提示

ncdu -h
ncdu [选项] [目录]
-h, --help                 显示此帮助信息
-q                         安静模式,刷新间隔 2 秒
-v, -V, --version          显示版本
-x                         同一文件系统
-e                         启用扩展信息
-r                         只读
-o FILE                    将扫描的目录导出到 FILE
-f FILE                    从 FILE 导入扫描的目录
-0, -1, -2                 扫描时使用的用户界面(0=无,2=完整 ncurses)
--si                       使用以 10 为基数(SI)的前缀,而非以 2 为基数
--exclude PATTERN          排除匹配 PATTERN 的文件
-X, --exclude-from FILE    排除匹配 FILE 中任何模式的 --follow-symlinks      跟随符号链接(不包括目录)
--exclude-caches           排除包含 CACHEDIR.TAG 的目录
--exclude-kernfs           排除 Linux 伪文件系统(procfs、sysfs、cgroup 等)
--confirm-quit             退出 ncdu 时确认
--color SCHEME             设置颜色方案(off/dark)

一般没啥特别的参数,基本就直接执行使用,如果有些需求可以查看参数帮助

3.磁盘数据拷贝工具rclone

Rclone是一个用于管理云存储上的文件的命令行程序。它是云供应商web存储接口的一个功能丰富的替代方案。超过40种云存储产品支持rclone,包括S3对象存储、商业和消费者文件存储服务以及标准传输协议。
Rclone具有与unix命令rsync、cp、mv、mount、ls、ncdu、tree、rm和cat相当的强大云功能。Rclone熟悉的语法包括shell管道支持和--干运行保护。它在命令行、脚本或通过其API使用。
我们来看看如何安装

wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cp rclone-*linux-amd64/rclone /usr/local/bin/

安装完成以后我们来看看命令参数

rclone -h
Rclone 可以在本地与云存储提供商之间同步文件,还能挂载这些文件,并以多种不同的方式列出它们。
有关安装、使用、文档、变更日志和配置指南,请访问主页(https://rclone.org/)。
用法:
rclone [标志]
rclone [命令]
可用命令:
about       获取远程的配额信息。
archive     对归档文件执行操作。
authorize   远程授权。
backend     运行特定于后端的命令。
bisync      在两个路径之间执行双向同步。
cat         连接任何文件并将其发送到标准输出。
check       检查源和目标中的文件是否匹配。
checksum    根据 SUM 文件检查目标中的文件。
cleanup     如果可能,清理远程。
completion  为给定的 shell 输出补全脚本。
config      进入交互式配置会话。
convmv      就地转换文件和目录名称。
copy        从源复制文件到目标,跳过相同的文件。
copyto      从源复制文件到目标,跳过相同的文件。
copyurl     将提供的 URL 内容复制到 dest:path。
cryptcheck  Cryptcheck 检查加密远程的完整性。
cryptdecode Cryptdecode 返回未加密的文件名。
dedupe      交互式查找重复的文件名并删除/重命名它们。
delete      删除路径中的文件。
deletefile  从远程删除单个文件。gendocs 为 rclone 生成输出到指定目录的 Markdown 文档。
gitannex    通过标准输入/输出与 git-annex 进行通信。
hashsum     为路径中的所有对象生成哈希校验文件。
help        显示 rclone 命令、标志和后端的帮助信息。
link        生成文件/文件夹的公共链接。
listremotes 列出配置文件和环境变量中定义的所有远程。
ls          列出路径中的对象及其大小和路径。
lsd         列出路径中的所有目录/容器/存储桶。
lsf         列出远程路径中的目录和对象,格式适合解析。
lsjson      以 JSON 格式列出路径中的目录和对象。
lsl         列出路径中的对象及其修改时间、大小和路径。
md5sum      为路径中的所有对象生成 MD5 校验文件。
mkdir       如果路径不存在则创建。
mount       在挂载点将远程挂载为文件系统。
move        将文件从源移动到目标。
moveto      将文件或目录从源移动到目标。
ncdu        以基于文本的用户界面浏览远程。
nfsmount    在挂载点将远程挂载为文件系统。obscure:为 rclone 配置文件生成一个不明显的密码。

purge:删除路径及其所有内容。
rc:对正在运行的 rclone 执行命令。
rcat:将标准输入复制到远程文件。
rcd:仅监听远程控制命令运行 rclone。
rmdir:删除路径下的空目录。
rmdirs:删除路径下的所有空目录。
selfupdate:更新 rclone 二进制文件。
serve:通过协议提供远程服务。
settier:更改远程对象的存储类别/层级。
sha1sum:为路径中的所有对象生成 sha1sum 文件。
size:打印远程:路径中的总大小和对象数量。
sync:使源和目标完全相同,仅修改目标。
test:运行测试命令。
touch:创建新文件或更改文件修改时间。
tree:以树状形式列出远程的内容。
version:显示版本号。

要获取有关某个命令的更多信息,请使用“rclone [命令] --help”。
要查看全局标志,请使用“rclone help flags”。
要获取支持的服务列表,请使用“rclone help backends”。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/1164

评论列表

0%