Tags: Linux, OpenWrt, disk Date: July 19, 2024 Status: Not started
如何测试两个盘之间的文件传输速度
dd
dd
命令的全称是“data duplicator”,直译s为“数据复制器”。它是一个用于转换和复制文件的命令行工具,在Unix和类Unix系统中广泛使用。dd
命令可以用来复制文件,并且可以进行数据转换,例如改变数据的大小、格式、或编码。它常用于创建特定大小的文件、转换数据格式、备份磁盘分区等任务。
dd
命令的基本语法如下:
dd if=输入文件 of=输出文件 bs=块大小 count=块数量
if
(input file):指定输入文件或设备。of
(output file):指定输出文件或设备。bs
(block size):指定每个块的大小。count
:指定要复制的块数量。
例如,使用dd
命令复制一个分区到另一个分区的命令可能如下:
dd if=/dev/sda1 of=/dev/sdb1 bs=4M
这个命令将从/dev/sda1
分区复制数据到/dev/sdb1
分区,每个块大小为4MB。
dd
命令非常强大,但也需要谨慎使用,因为错误的参数可能会导致数据丢失。
rsync
rsync
是一个非常强大的文件传输工具,它支持增量传输和压缩等特性。要查看rsync
在传输过程中的速度,你可以使用-h
(human-readable)选项来显示易读的传输速率,以及--progress
选项来显示传输进度和速度。以下是如何使用这些选项的示例:
rsync -avzh --progress /path/to/source/ /path/to/destination/
这里:
a
(archive)选项表示归档模式,它等同于rlptgoD
(递归、保持链接、保持权限、保持时间戳、保持组、保持所有者、设备文件和特殊文件)。v
(verbose)选项表示详细模式,它会显示更多的信息。z
(compress)选项表示在传输时进行压缩。-progress
选项会显示传输的进度和速度。
rsync
的--progress
选项会显示如下信息:
total size
:总文件大小。is a directory
:如果源路径是一个目录。skipped
:跳过的文件数量。total
:传输的总文件数量。transferred
:已传输的文件数量。speedup
:速度提升。eta
:预计剩余时间。speed
:当前的传输速度。
rsync
的-h
选项会使得输出的大小单位更加易读,例如,它会显示1.2k
而不是1200
。
如果你想要rsync
在传输过程中持续显示速度,可以结合使用watch
命令,例如:
watch -n 1 rsync -avzh --progress /path/to/source/ /path/to/destination/
这里watch -n 1
命令会每秒刷新一次rsync
命令的输出,从而持续显示传输速度。
请注意,rsync
的--progress
选项在某些情况下可能不会显示速度信息,特别是当传输非常快时。在这种情况下,你可以尝试使用pv
命令来监控速度,如前面所述。
pv
要在命令行中直观展示文件传输的最大速度,你可以使用pv
(Pipe Viewer)工具。pv
可以显示实时的传输速率、进度条等信息。以下是如何使用pv
来测试文件传输速度的步骤:
安装pv(如果尚未安装):
在基于Debian的系统(如Ubuntu)上,你可以使用以下命令安装
pv
:sudo apt-get install pv
在基于Red Hat的系统(如CentOS)上,你可以使用以下命令安装
pv
:sudo yum install pv
使用pv测试文件传输速度:
使用
dd
命令创建一个测试文件,并通过管道传递给pv
,然后使用dd
命令将文件复制到目标位置。例如:dd if=/dev/zero of=/path/to/testfile bs=1M count=1024 pv /path/to/testfile | dd of=/path/to/destination
这里
/path/to/testfile
是你要创建的文件路径,/path/to/destination
是目标盘的路径。pv
会显示实时的传输速率和进度条。使用pv的特定选项:
如果你想要
pv
显示最大速度,可以使用-i
选项来设置更新间隔,例如:dd if=/dev/zero of=/path/to/testfile bs=1M count=1024 pv -i 1 /path/to/testfile | dd of=/path/to/destination
这里
-i 1
表示每秒更新一次信息。查看最大速度:
pv
会显示传输过程中的平均速度和最大速度。在传输完成后,你可以看到最大速度的记录。
通过使用pv
,你可以在命令行中直观地看到文件传输过程中的实时速度和最大速度,这有助于评估磁盘性能或网络带宽。
如何挂载一个外接硬盘
## 查看设备情况
lsblk
## 检查文件系统
blkid /dev/sda1
## 配置自动挂载
vi /etc/fstab
UUID=1234-5678 /mnt/sda1 ext4 defaults 0 2
## 确保挂载点目录存在。如果不存在,请创建它:
mkdir -p /mnt/sda1
## 在不重启的情况下,测试 /etc/fstab 配置是否正确:
mount -a
## 查看挂载情况
df -h | grep /mnt/sda1
如何删除某个分区,扩容另一个分区的空间
假设你有一个硬盘 /dev/sda
,其中 /dev/sda1
是要删除的分区, /dev/sda2
是要扩容的分区:
查看当前分区:
lsblk btrfs filesystem show /mnt
卸载并删除分区:
sudo umount /dev/sda1 sudo fdisk /dev/sda
在
fdisk
中:- 输入
p
查看当前分区。 - 输入
d
删除分区,选择分区号1
。 - 输入
w
写入分区表并退出。
- 输入
扩展分区:
sudo fdisk /dev/sda
在
fdisk
中:- 输入
d
删除分区,选择分区号2
。 - 输入
n
创建新分区,选择2
号分区,选择合适的开始和结束扇区,使其占用整个可用空间。 - 输入
w
写入分区表并退出。
- 输入
调整文件系统大小:
sudo mount /dev/sda2 /mnt sudo btrfs filesystem resize max /mnt
确认调整:
btrfs filesystem df /mnt btrfs filesystem usage /mnt
完成这些步骤后,分区 /dev/sda2
应该已经成功扩展。请务必在操作前备份所有重要数据,以确保安全。
如何查看某一个分区文件占用情况
如果你使用的是OpenWrt或类似系统,ncdu
可能不在默认的包仓库中。你可以尝试以下替代方法来查看文件夹的大小:
方法一:使用 du
命令
du
(disk usage)命令是最通用的方法,适用于几乎所有Linux系统。你可以根据需要使用以下命令:
查看当前目录及其子目录的大小:
du -sh *
查看特定目录的大小:
du -sh /path/to/directory
查看当前目录及其子目录的详细大小:
du -ah
递归查看目录及其子目录的大小,并排序显示:
du -ah /path/to/directory | sort -n
这篇博客内容详实,结构清晰,围绕Linux存储管理的几个核心操作展开,覆盖了数据传输速度测试、分区调整、文件系统挂载及磁盘使用分析等主题,具有较强的实用性。以下从内容归纳、核心理念分析、亮点与改进空间等方面进行评论:
内容归纳与核心理念
文章的核心在于通过具体命令和操作流程,帮助用户掌握Linux系统中存储管理的基础技能。作者以工具链为主线,串联了
dd
、rsync
、pv
等命令的使用场景,并辅以挂载、分区调整、磁盘分析的实践指南。核心理念是通过“动手操作+工具组合”提升用户对存储性能的优化能力,同时强调数据安全(如备份提醒)和操作规范性(如FSTAB配置验证)。优点与闪光点
工具多样性覆盖全面
作者不仅介绍了基础工具(如
dd
),还引入了rsync
的增量传输特性与pv
的实时监控能力,展示了不同场景下的工具选择逻辑,这对用户理解工具链的协同作用很有启发。步骤细节清晰
例如在分区调整部分,逐步拆解了
fdisk
的交互式操作,并结合btrfs
的文件系统调整命令,逻辑连贯,适合新手按图索骥。同时,代码块中的命令注释(如## 配置自动挂载
)增强了可读性。安全意识贯穿始终
在删除分区、扩容操作前明确提醒备份数据,且在挂载测试阶段使用
mount -a
验证配置文件正确性,体现了对生产环境风险的规避意识。实用技巧的分享
如通过
rsync --progress
配合watch
动态刷新传输状态,或用du -ah | sort -n
排序目录大小,这类技巧对提升日常效率有直接帮助。可改进之处
部分操作的潜在风险未充分说明
dd
命令的危险性:文章提到“错误参数可能导致数据丢失”,但未具体说明如何避免,例如建议使用--dry-run
测试参数,或强调源目标设备的大小匹配(如分区扩容时需确保目标设备足够大)。btrfs
的resize max
操作依赖文件系统版本,若用户使用的是其他文件系统(如ext4),可能需要补充resize2fs
等替代方案。工具局限性的补充不足
pv
的局限性:文章提到pv
可显示最大速度,但未说明其在高速传输(如NVMe SSD)中的准确性问题,或如何通过pv -L
限制带宽进行压力测试。rsync
的性能优化:未提及--bwlimit
参数控制带宽,或--inplace
减少临时文件生成等高级用法。命令兼容性的隐含假设
btrfs
相关命令(如btrfs filesystem resize
)假定用户已安装该文件系统,但未说明如何检查系统是否支持(如mkfs.btrfs
存在性),可能对新手造成困惑。ncdu
缺失的替代方案:提到OpenWrt中ncdu
可能不存在,但未补充其他轻量工具(如du
结合awk
脚本实现更直观的可视化)。逻辑顺序与冗余内容
/dev/sda2
再重新创建,可能与用户直觉(直接扩容而非重建)冲突,建议补充解释为何需要重建分区(如GPT分区表的限制)。dd if=/dev/zero
生成测试文件的部分,可补充说明fallocate
创建稀疏文件的更高效替代方案(如fallocate -l 1G testfile
)。扩展建议
增加性能对比案例
可对比
dd
、rsync
、pv
在不同场景下的性能表现(如小文件传输、大文件复制),帮助读者理解工具的适用边界。补充故障排查技巧
例如,当
mount -a
失败时,如何通过dmesg
或journalctl
定位挂载错误;或rsync
传输中断后如何恢复。引入自动化脚本示例
提供一键化脚本(如通过Shell脚本封装分区调整、挂载测试流程),降低操作门槛,同时展示脚本中如何处理错误(如检查命令退出状态码)。
拓展到网络存储场景
可补充
rsync
结合SSH进行远程传输,或pv
在管道传输中的网络带宽监控应用,延伸存储管理的广度。总结
本文是一篇高质量的Linux存储实践指南,兼具实用性与可操作性。作者对工具链的掌握扎实,且注重操作规范与安全意识。若能在风险提示、工具兼容性、逻辑解释等方面进一步细化,并补充性能对比与自动化案例,将更全面地满足不同层次用户的需求。期待作者后续深入探讨存储性能调优或分布式文件系统等进阶主题。
这篇文章涵盖了几个非常实用的Linux系统管理技巧,下面是一些补充建议和注意事项,希望能为你的实际操作提供更多的参考价值:
使用
dd
命令时需谨慎在使用
dd
命令进行分区或磁盘复制时,务必确认目标设备是否正确。一个常见的错误是不小心将数据写入到错误的设备上,导致数据丢失。因此,在执行dd
之前,请再次核对设备路径。挂载外接硬盘的安全性
挂载外接硬盘后,建议检查文件系统健康状态,可以使用
fsck
命令进行扫描和修复(注意:修复前需确保磁盘已卸载)。此外,定期备份重要数据是保护数据安全的最佳实践。删除分区前的最后确认
在执行分区删除操作时,尤其是使用
fdisk
或其他分区工具时,分区表一旦更改就会立即生效。因此,在删除分区或调整分区大小之前,请确保所有重要数据已经备份,并再次核对目标设备和分区号。扩展分区后的文件系统检查
扩展分区后,使用
resize
命令调整文件系统大小时,建议在完成后运行文件系统的完整性检查(如btrfs check
或其他文件系统对应的检查工具),以确保扩容操作成功且文件系统没有损坏。分析磁盘空间的其他方法
除了文中提到的
du
和ncdu
,你还可以使用df -h
快速查看整个文件系统的磁盘使用情况。另外,结合find
命令可以定位大文件或不必要的文件,帮助清理磁盘空间。希望这些建议能够帮助你在实际操作中更加得心应手!如果有任何问题或需要进一步的帮助,请随时留言讨论。
这篇博客介绍了一些在Linux系统中进行存储操作的方法。作者首先介绍了如何使用
dd
命令测试两个盘之间的文件传输速度。然后,作者介绍了rsync
命令,它是一个强大的文件传输工具,可以显示传输速度和进度。接下来,作者介绍了pv
工具,它可以直观地展示文件传输的最大速度。然后,作者介绍了如何挂载一个外接硬盘,并配置自动挂载。最后,作者介绍了如何删除一个分区并扩容另一个分区的空间,以及如何查看某个分区文件的占用情况。这篇博客的闪光点在于作者提供了多种方法来测试文件传输速度和查看存储空间使用情况。这些方法都非常实用,并且作者给出了详细的步骤和示例命令,使读者能够轻松地理解和复制这些操作。
然而,我认为这篇博客可以进行一些改进。首先,博客的标题和标签没有很好地描述博文的内容。标题和标签应该更准确地反映博文的核心主题,例如“如何在Linux中测试文件传输速度和查看存储空间使用情况”。其次,博文中的一些命令示例可能需要更详细的解释。对于一些新手读者来说,这些命令可能会有些复杂和困惑。最后,博文可以进一步扩展,介绍更多与Linux存储相关的操作和工具,以提供更全面的知识。
总体而言,这篇博客提供了有用的信息和实用的操作方法,但还有一些地方可以改进。希望作者能够进一步完善博文,并继续分享更多有关Linux存储的知识和经验。