LINUX.ORG.RU
решено ФорумAdmin

Can't find your catalog (MyCatalog) in director configuration

 , makecatalogbackup,


0

1

Права на файлы конфигурации:

# ls -l /etc/bacula
total 44
-rw-r----- 1 bacula bacula  3253 Apr 25 14:26 bacula-dir.conf
-rw-r----- 1 bacula bacula  1036 Apr 25 14:26 bacula-fd.conf
-rw-r----- 1 bacula bacula 10553 May 22 11:14 bacula-sd.conf
...
Bacula-dir запущен от:
# ps aux |grep bacula-dir
bacula    1289  0.0  0.0 119248  4312 ?        Ssl  11:40   0:00 /usr/sbin/bacula-dir -c /etc/bacula/bacula-dir.conf -u bacula -g bacula
Файл bacula-dir.conf читается пользователем bacula
# su -m bacula -c 'cat /etc/bacula/bacula-dir.conf'

#
# Default Bacula Director Configuration file
#
...
Скрипт make_catalog_backup.pl под пользователем bacula не видит MyCatalog
# su -m bacula -c '/etc/bacula/scripts/make_catalog_backup.pl MyCatalog'
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Can't find your catalog (MyCatalog) in director configuration
Под пользователем root видит
# su -m root -c '/etc/bacula/scripts/make_catalog_backup.pl MyCatalog'
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
и создает нужный файл
# ls -l /var/lib/bacula/bacula.sql
-rw------- 1 root root 1028762078 May 30 13:25 /var/lib/bacula/bacula.sql
# ls -l /var/lib/ |grep bacula
drwx------ 2 bacula  bacula  16384 May 30 13:24 bacula

perl не из под root?

★★★★★

Ну юзер bacula наверное не имеет прав на запись в директорию /var/lib/bacula

Сделайте так для теста:

su -m bacula -c 'touch /var/lib/bacula/somefile.txt'

black_13
()
Последнее исправление: black_13 (всего исправлений: 1)

Не понял, в чем вопрос состоит. Что, без форума даже проблему с правами на файлы разрешить нельзя?

su -m bacula -c 'cat /path/to/bacula-dir.conf'

Что выдает?

zgen ★★★★★
()
Ответ на: комментарий от black_13

Ну юзер bacula наверное не имеет прав на запись в директорию /var/lib/bacula

Нет, ошибка выше по логике работы скрипта.

# su -m bacula -c 'touch /var/lib/bacula/somefile.txt'
# ls -l /var/lib/bacula/somefile.txt
-rw-r--r-- 1 bacula bacula 0 May 30 14:19 /var/lib/bacula/somefile.txt

petav ★★★★★
() автор топика
Ответ на: комментарий от zgen

Выдает конфигурацию

# su -m bacula -c 'cat /etc/bacula/bacula-dir.conf'

#
# Default Bacula Director Configuration file
#
...

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Ну раз прав везде хватает - ковыряйтесь в листинге скрипта, найдите тот кусок где он нечно делает, а в случай ошибки выдает «Can't find your catalog.....»

black_13
()
Ответ на: комментарий от black_13

найдите тот кусок где он нечно делает, а в случай ошибки выдает «Can't find your catalog.....»

...
open(FP, "$dir_conf -C '$cat'|") or die "Can't get catalog information $@";
# catalog=MyCatalog
# db_type=SQLite
# db_name=regress
# db_driver=
# db_user=regress
# db_password=
# db_address=
# db_port=0
# db_socket=
my %cfg;

while(my $l = <FP>)
{
    if ($l =~ /catalog=(.+)/) {
        if (exists $cfg{catalog} and $cfg{catalog} eq $cat) {
            exit dump_catalog(%cfg);
        }
        %cfg = ();              # reset
    }

    if ($l =~ /(\w+)=(.+)/) {
        $cfg{$1}=$2;
    }
}

if (exists $cfg{catalog} and $cfg{catalog} eq $cat) {
    exit dump_catalog(%cfg);
}

print "Can't find your catalog ($cat) in director configuration\n";
exit 1
petav ★★★★★
() автор топика
Последнее исправление: petav (всего исправлений: 1)

А зачем тебе запускать его не из-под root, если агент ( bacula-fd ) всё равно всегда работает под root ?

router ★★★★★
()
Ответ на: комментарий от petav

А что выдает вот это?

su -m bacula -c '/usr/sbin/dbcheck -B -c /etc/bacula/bacula-dir.conf'

Это собственно основа данного скрипта - розпарсить параметры БД из конфига бакула-директора

black_13
()
Ответ на: комментарий от black_13
# su -m bacula -c '/usr/sbin/dbcheck -B -c /etc/bacula/bacula-dir.conf'
30-May 14:43 dbcheck: ERROR TERMINATION at parse_conf.c:938
Config error: Expected a Resource name identifier, got: find:
            : line 1, col 5 of file |find /etc/bacula/conf.d/storage -name '*.conf' -type f -exec echo @{} ;
find: `/etc/bacula/conf.d/storage': Permission denied

Далее понятно... Спасибо

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Не смотря на это, имея инфу «под root работает» а под пользователем - нет, обращаться на форум за помощью как минимум странно.

zgen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.