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

Как восстановить базу postgrey.db?

Добавлено: 2013-04-15 16:52:11
Termitnik
Перестал запускаться postgrey. Если сделать бекап /var/db/postgrey и удалить все в этой директории, то postgrey запускается, иначе валится с такой ошибкой

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

postgrey[69128]: FATAL: ERROR: can't create DB environment: Permission denied (dbdir: /var/db/postgrey uid/gid: 225,225)
Как заставить postgrey работать с старой базой?

Re: Как восстановить базу postgrey.db?

Добавлено: 2013-04-15 17:57:07
ChihPih
Termitnik писал(а):Перестал запускаться postgrey.
И после чего оно произошло?

Re: Как восстановить базу postgrey.db?

Добавлено: 2013-04-15 18:37:09
Termitnik
Тяжело сказать, перед возникновением проблемы к серверу никто не прикасался несколько месяцев

Re: Как восстановить базу postgrey.db?

Добавлено: 2013-04-15 21:20:04
rayder

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

Permission denied
а с правами на "dbdir: /var/db/postgrey"там точно все в порядке?
вы не написали, потому и спрашиваю.

Re: Как восстановить базу postgrey.db?

Добавлено: 2013-04-15 22:32:38
Termitnik
да вроде

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

ls -d /var/db/postgrey/
drwxr-xr-x  2 postgrey  postgrey  -  512B Apr 15 16:14 /var/db/postgrey/

Re: Как восстановить базу postgrey.db?

Добавлено: 2013-04-15 22:41:10
ChihPih

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

id postgrey
?

Re: Как восстановить базу postgrey.db?

Добавлено: 2013-04-15 22:48:08
Termitnik

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

id postgrey
uid=225(postgrey) gid=225(postgrey) groups=225(postgrey)

Re: Как восстановить базу postgrey.db?

Добавлено: 2013-04-16 0:47:19
rayder
уточнение, а на все что в /var/db/postgrey/ как с правами? при восстановлени из бекапа могут рутовые права остаться.
обновлений точно никаких не было(не обязательно самого postgrey. например perl)?

Re: Как восстановить базу postgrey.db?

Добавлено: 2013-04-16 1:15:09
Termitnik
Повторил последовательность действий: теперь другая ошибка в логе

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

Apr 16 01:13:47 ns2 postgrey[13675]: FATAL: ERROR: can't create DB environment: No such file or directory (dbdir: /var/db/postgrey uid/gid: 225,225)

[/dev/pts/4]root@ns2:/usr/local/www# ls -d /var/db/postgrey/
drwxr-xr-x  2 postgrey  postgrey  -  512B Apr 16 01:13 /var/db/postgrey/
[/dev/pts/4]root@ns2:/usr/local/www# ls /var/db/postgrey/
total 70080
-rw-------  1 postgrey  postgrey  -   10M Apr 16 01:12 log.0000000099
-rw-------  1 postgrey  postgrey  -   22M Apr 16 01:12 postgrey.db
-rw-------  1 postgrey  postgrey  -    0B Apr 16 01:12 postgrey.lock
-rw-------  1 postgrey  postgrey  -  2,7M Apr 16 01:12 postgrey_clients.db

Re: Как восстановить базу postgrey.db?

Добавлено: 2013-04-16 13:14:34
Termitnik
Написал скрипт, чтобы посмотреть, что внутри базы. Посмотрел, все нормально, вроде бы

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

cat berk.pl
#!/usr/bin/perl
use BerkeleyDB;
my %hash;
tie %hash, 'BerkeleyDB::Btree',
              -Filename      => $ARGV[0];
print "START";
foreach (%hash)
{
print $_;
print "\n";
}

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

~/berk.pl ~/postgreydb_backup/postgrey.db
....
92.243.76.0/bp@hazti.com.ua/me@termit.ln.ua
1359938611,1359942325,179
94.100.176.0/kavlusha@mail.ru/me@termit.ln.ua
1358426046,1359984347,18
94.100.176.0/nata999.#@mail.ru/me@termit.ln.ua
1362167123,1362168914,87
94.100.178.0/nata999.#@mail.ru/me@termit.ln.ua
1362167121,1362167121,74
....
Кроме того, обратил внимание, что содержимое новой и старой дирекиторий отличается
ls /var/db/postgrey/
total 21648
-rw------- 1 postgrey postgrey - 24K Apr 16 13:02 __db.001
-rw------- 1 postgrey postgrey - 48K Apr 16 13:02 __db.002
-rw------- 1 postgrey postgrey - 264K Apr 16 13:02 __db.003
-rw------- 1 postgrey postgrey - 96K Apr 16 13:02 __db.004
-rw------- 1 postgrey postgrey - 48K Apr 16 13:02 __db.005
-rw------- 1 postgrey postgrey - 10M Apr 16 13:02 log.0000000001
-rw------- 1 postgrey postgrey - 32K Apr 16 13:02 postgrey.db
-rw------- 1 postgrey postgrey - 0B Apr 16 13:02 postgrey.lock
-rw------- 1 postgrey postgrey - 32K Apr 16 13:02 postgrey_clients.db

ls postgreydb_backup/
total 70080
-rw------- 1 postgrey postgrey - 10M Apr 11 16:52 log.0000000099
-rw------- 1 postgrey postgrey - 22M Apr 11 16:52 postgrey.db
-rw------- 1 postgrey postgrey - 0B Apr 11 16:52 postgrey.lock
-rw------- 1 postgrey postgrey - 2,7M Apr 11 16:52 postgrey_clients.db

Re: Как восстановить базу postgrey.db?

Добавлено: 2013-05-19 11:39:47
moury
Может, я после долгого отсутствия стал наивен, но зачем вообще восстанавливать базу postgrey из бекапа? При запуске сама восстановится. Postgrey - не та программа, чтобы на нее время тратить.

Для нее главное - бекап связанных с ней конфигов.