Страница 1 из 1

gbak и консольный вывод

Добавлено: 08 сен 2007, 15:02
Linker
Сегодня решил написать небольшой интерфейс резервного копирования для своей программы и столкнулся со странным поведением утилиты gbak.
Дело в том, что у мне необходимо было получить результат работы данной программы, что бы было видно, были ли ошибки во время копирования или нет.
Так как программа консольная - думаю переправлю весь вывод и получу отчет. Но не тут то было! Провозившись еще немного времени решил проверить - набираю в коммандной строке:

Код: Выделить всё

gbak.exe -b -g -v -user SYSDBA -pass masterkey localhost:DBAlias e:\b.bk > 1.txt

результат тот же - все на экране, в файле - пусто.

Почему такое происходит и как же всетаки можно получить этот загадочный результат работы gbak?

Re: gbak и консольный вывод

Добавлено: 08 сен 2007, 18:24
Кузнецов Евгений
Доброго времени суток!

To Linker
Для перенаправления вывода в файл у gbak есть ключ -y
Ваш вариант не работает скорее всего потому, что gbak для Вашей версии сервера (кстати, какой?) выводит сообщения не в stdout, а в stderr. Конечно, можно перенаправить вывод (см. справку по Windows - "перенаправление выхода команды"), но лучше использовать стандартные средства gbak.

Добавлено: 09 сен 2007, 02:07
WildSery
Вроде gbak всегда так делал, дело тут не в версии сервера.

Добавлено: 09 сен 2007, 04:53
Linker
Здравствуйте!

Большое спасибо за ответы, действительно проблема была в том что я читал данные из StdOut, исправив это - все заработало.

А версия сервера у меня - WI-V1.5.3.4870 Firebird 1.5

Так зависит ли вывод сообщений от версии сервера?

Добавлено: 10 сен 2007, 01:29
kdv
вывод в файл, т.е. перенаправление, может работать или не работать. Зависит как от версии gbak, так и от версии виндов. Например, с gbak перенаправление вывода может не работать, а с gstat - без проблем.

в общем,используй -y <file>

Добавлено: 10 сен 2007, 10:37
Кузнецов Евгений
Доброго времени суток!

Да, похоже, gbak под Windows так себя вел всегда. Я столкнулся с этим на IB4 и полагал, что это древний баг, который давно уже исправлен, ан нет - для 2.0.1 то же самое. В общем, действительно, на это лучше не закладываться.

Добавлено: 10 сен 2007, 10:56
WildSery
Почему же сразу "баг"?
gbak в stdout пихает собственно поток данных, которые бэкапирует, и в некоторых ситуациях это большой плюс.

Добавлено: 10 сен 2007, 11:19
kdv
ничего подобного, не баг. я вот реже сталкиваюсь с проблемой перенаправления вывода, чем с нормальной работой gbak.