因此,我有一个 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
。我只是这样表达,因为老实说我不知道它实际上反映了什么。