Firebird — программно определить, находится ли база данных в сети

Есть ли способ определить, находится ли база данных в сети? В частности, если он не находится в режиме «полного выключения».

Использование gstat требует запуска от имени пользователя root или пользователя firebird в соответствии с документацией:

gstat-fb -header "$db" | grep -E 'Attributes.+full shutdown'

Возвращает с «Отказано в доступе».

Я придумал это, но, конечно, есть лучший способ:

re="^Target shutdown mode is invalid for database"  
ret=$(gfix -USER "$usr" -PAS "$pwd" -shut full -tran 5 localhost:"$db" 2>&1)
        
if [[ $? -eq 0 ]]; then
  printf "Info: database '%s' has been shutdown\n" "$db"
else
  if [[ $ret =~ $re ]]; then
    printf "Info: database '%s' was already in full shutdown mode\n" "$db"
  else
    printf "Error: couldn't stop database '%s': '%s'\n" "$db" "${ret//$'\n'/ }" 1>&2
    return 1
  fi
fi

return 0

Версия Firebird: 2.5

разбить жар-птицу

Волна

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *