Отложенный мониторинг в Bash - PullRequest
0 голосов
/ 23 марта 2011

Какой лучший способ «подождать» в скрипте Bash, пока результат команды не содержит определенный шаблон?

Я написал простой скрипт для восстановления массива RAID, и теперь я хочускрипт для ожидания, пока команда cat /proc/mdstat сообщит, что перестройка массива завершена.Я хочу подождать, потому что после этого мне нужно установить Grub на новое устройство через sudo grub-install /dev/sd*

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Что-то вроде

#! /bin/bash
doneString="RAIDFix Completed successfully"

until ${mdstat_done:-false} ; do
    if grep "${doneString:?}"  /proc/mdstat > /dev/null ; then
       sudo grub-install /dev/sd*
       mdstat_done=true
    else
       sleep ${sleepSecs:-60}
    fi
done

Вам нужно объяснение?

Надеюсь, это поможет.

2 голосов
/ 23 марта 2011

(есть более краткие способы сделать это просто для bash, но я обычно пишу на переносимом SH, когда делаю что-то вроде этого:)

weredone=0
while test $weredone = 0 ; do
    # this is not actually what you want to grep for, but you get the idea:
    grep complete /proc/mdstat
    if test $? = 0 ; then
        weredone=1
    else
        sleep 5
    fi
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...