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来测试文件传输速度的步骤:

  1. 安装pv(如果尚未安装):

    在基于Debian的系统(如Ubuntu)上,你可以使用以下命令安装pv

    sudo apt-get install pv
    
    

    在基于Red Hat的系统(如CentOS)上,你可以使用以下命令安装pv

    sudo yum install pv
    
    
  2. 使用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会显示实时的传输速率和进度条。

  3. 使用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表示每秒更新一次信息。

  4. 查看最大速度

    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 是要扩容的分区:

  1. 查看当前分区

    lsblk
    btrfs filesystem show /mnt
    
    
  2. 卸载并删除分区

    sudo umount /dev/sda1
    sudo fdisk /dev/sda
    
    

    fdisk 中:

    • 输入 p 查看当前分区。
    • 输入 d 删除分区,选择分区号 1
    • 输入 w 写入分区表并退出。
  3. 扩展分区

    sudo fdisk /dev/sda
    
    

    fdisk 中:

    • 输入 d 删除分区,选择分区号 2
    • 输入 n 创建新分区,选择 2 号分区,选择合适的开始和结束扇区,使其占用整个可用空间。
    • 输入 w 写入分区表并退出。
  4. 调整文件系统大小

    sudo mount /dev/sda2 /mnt
    sudo btrfs filesystem resize max /mnt
    
    
  5. 确认调整

    btrfs filesystem df /mnt
    btrfs filesystem usage /mnt
    
    

完成这些步骤后,分区 /dev/sda2 应该已经成功扩展。请务必在操作前备份所有重要数据,以确保安全。

如何查看某一个分区文件占用情况

如果你使用的是OpenWrt或类似系统,ncdu 可能不在默认的包仓库中。你可以尝试以下替代方法来查看文件夹的大小:

方法一:使用 du 命令

du (disk usage)命令是最通用的方法,适用于几乎所有Linux系统。你可以根据需要使用以下命令:

  1. 查看当前目录及其子目录的大小:

    du -sh *
    
    
  2. 查看特定目录的大小:

    du -sh /path/to/directory
    
    
  3. 查看当前目录及其子目录的详细大小:

    du -ah
    
    
  4. 递归查看目录及其子目录的大小,并排序显示:

    du -ah /path/to/directory | sort -n