Есть ли способ определить, находится ли база данных в сети? В частности, если он не находится в режиме «полного выключения».
Использование 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
разбить жар-птицу
Волна