BTRFS - 检查是否有任何操作正在运行

BTRFS - 检查是否有任何操作正在运行

因此,我有一个 BTRFS 驱动器,当前正在运行替换操作,使用内置的 BTRFS 卷 raid 工具将数据从 RAID 阵列中的一个驱动器移动到另一个驱动器。替换完成后,我还有更多操作要运行。如何检查替换是否在 while 循环中运行,或者是否有其他操作在 while 循环中运行?

答案1

您可以使用 进行检查sudo btrfs replace status /path/to/mountpoint


该脚本将运行命令来检查操作是否仍在进行中:

#!/bin/bash

MOUNTPOINT="/path/to/mountpoint"
NEXT_OPERATION="sudo <some other command>"

while true; do
  status=$(sudo btrfs replace status $MOUNTPOINT)
  if [[ $status == "replace is done" ]]; then
    echo "Replace is done, running next operation..."
    $NEXT_OPERATION
    break
  fi
  sleep 60  # Wait 60 seconds before checking again
done

请注意,您应该知道已完成操作的退出状态是什么,并替换"replace is done"为 的相关输出sudo btrfs replace status /path/to/mountpoint。我只是这样表达,因为老实说我不知道​​它实际上反映了什么。

相关内容