1

从 /proc/drbd 的输出中,我试图为每个设备(0 和 1)提取此输出的“UpToDate/UpToDate”部分。我试过:

cat /proc/drbd  | grep ' 0:' | grep -Eo 'ds:(.*)'

但这给了我:

ds:UpToDate/UpToDate C r-----

这不是我要寻找的(寻找 UpToDate/UpToDate 传播的插槽)或基本上是“UpToDate/UpToDate”的返回。无论如何,这是/proc/drbd的输出:

  0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
  1: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
4

3 回答 3

2

您可以使用以下命令查询 DRBD 设备的状态:

# drbdadm role <resource>
# drbdadm cstate <resource>
# drbdadm dstate <resource>
于 2015-05-05T04:44:51.977 回答
1

您可以使用以下grep命令:

grep -o 'ds[^[:space:]]\+' /proc/drbd

如果你不想ds:在前面,你可以在perl模式下使用 grep (如果你有 GNU grep):

grep -oP 'ds:\K[^\s]+' /proc/drbd

\K清除之前匹配的所有内容 - 在这种情况下ds:

如果您没有 GNU grep,您可以使用awk

awk -F'[: ]' '{print $8}' /proc/drbd

sed

sed 's/.*ds:\([^[:space:]]\+\).*/\1/' /proc/drbd
于 2015-05-04T14:09:30.227 回答
0

使用以下正则表达式:

grep -o 'ds:([^ ]*)'
于 2015-05-04T14:11:39.630 回答