LINUX.ORG.RU

Удалил логи LDAP

 , ,


0

3

Ребята, срочно нужна помощь!!! На почтовом сервере закончилось место, удалил все лог файлы LDAP с директории /var/lib/ldap После этого не стартует slapd. Пишет: slapd does not work, but the pid file exists

Как восстановить работу почты?

Взять дамп базы LDAP (бекап)
Переместить остатки из /var/lib/ldap в другое место
Сделать slapadd -q <ldap.dump
Рекурсивно исправить права на /var/lib/ldap от пользователя, от которого работает slapd.
Запустить slapd

Радоваться.

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 2)

лог файлы LDAP с директории /var/lib/ldap
лог файлы
/var/lib

Здесь что-то не так.

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

А где находится база LDAP? В mysql ее нет.

Кажется, он начал что-то подозревать)

constin ★★★★
()
Последнее исправление: constin (всего исправлений: 2)
Ответ на: комментарий от perrfect

А где находится база LDAP?

/var/lib/ldap

гы.

ldap не имеет отношение к mysql, это самостоятельная база данных. Те это вообще это ее единственное назначение.

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

И как сделать дамп этой базы? Получаю ошибку.

slapcat -v -c -l backup.ldif The first database does not allow slapcat; using the first available one (2) bdb(dc=example,dc=com): file id2entry.bdb has LSN 3320/7845592, past end of log at 1/2228 bdb(dc=example,dc=com): Commonly caused by moving a database from one database environment bdb(dc=example,dc=com): to another without clearing the database LSNs, or by removing all of bdb(dc=example,dc=com): the log files from a database environment bdb(dc=example,dc=com): /var/lib/ldap/id2entry.bdb: unexpected file type or format bdb_db_open: database «dc=example,dc=com»: db_open(/var/lib/ldap/id2entry.bdb) failed: Invalid argument (22). backend_startup_one (type=bdb, suffix=«dc=example,dc=com»): bi_db_open failed! (22) slap_startup failed

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

Дамп базы надо взять из того места, куда она бэкапилась каждый день. Она ведь у вас бэкапилась?

И как вы удаляли лог файлы? так:

db_archive -d -h

или rm?

constin ★★★★
()

Подписался на тред.

mos ★★☆☆☆
()
Ответ на: комментарий от perrfect

ну можно попробовать ее починить, удален только лог транзакции, если я правильно понял?

/usr/sbin/slapd -u ldap -h ldap://127.0.0.1:389/ -d 256
slapd_db_recover -h /var/lib/ldap

порт в зависимости от того, который был раньше.

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

Не помогло.

«[root@m ldap]# /usr/sbin/slapd -u ldap -h ldap://127.0.0.1:389/ -d 256 slapd_db_recover -h /var/lib/ldap @(#) $OpenLDAP: slapd 2.4.23 (Jan 10 2014 09:52:11) $ mockbuild@localhost.localdomain:/builddir/build/BUILD/openldap-2.4.23/openldap-2.4.23/build-servers/servers/slapd daemon: listen URL »/var/lib/ldap" parse error=3 slapd stopped. connections_destroy: nothing to destroy"

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

А где находится база LDAP? В mysql ее нет.

База LDAP частично находится в файлах, которые ты удалил. Если у тебя есть копия - ты можешь ей воспользоваться.


Если нет, то...

zgen ★★★★★
()

если у тебя deb-based, то при каждом обновлении пакета slapd делаются бэкапы базы в /var/backups

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

и ты забыл сказать, что это 2 разные команды ))) и что первую надо прибить, если сама не сдохнет, а вообще она не особо нужна, он все равно не понимает что вокруг него происходит, зачем ему дебаг двестипесятшестого левела ))

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

Ты прав, не особо понимаю что вокруг меня происходит, никогда с ldap не работал. Лучше скажи как быть в данной ситуации? Если я создам базу ldap по новому, создам таких же пользователей, при входе в свой почтовый ящик они будут видеть свои старые письма?

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

будут. есть небольшая вероятность, что там папки с таймстепом создаются под письма, но даже если так, то это легко исправить.

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

Давай начнем с того, что ты забэкапишь письма юзеров куда-нибудь. И тогда, если у тебя их там не миллион, с календарями, пересылками и прочей фигней, то ничего страшного не произошло.

Что там за почтовик? Какой-нибудь комбаин или самодельный?

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

Postfix только MTA, мне будет проще, если он скажет, что за комбаин он использует, чем я буду просить выкладывать конфиги и листинги папок.

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

Посмотри в /var/mail/ , есть там папки с письмами? Если нет, то найди поставь ncdu, запусти ее

ncdu /

и посмотри , где самая большая папка , она будет с письмами. Потом проверь она ли это и куда-нить ее скопируй. Сломать сервер - пол беды, просрать почту - это уже перебор)

Затем выложи конфиг postfix

cat /etc/postfix/main.cf

Ну и тебе вообще помощь нужна или ты только с openldap не работал?

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

Письма пользователей лежат на отдельном диске.

smtpd_banner = $myhostname ESMTP $mail_name (ROSA RES6) biff = no

append_at_myorigin = yes append_dot_mydomain = no

myhostname = m.test.com

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

mydomain = m.test.com

myorigin = m.test.com

mydestination = m.test.com, localhost.localdomain, localhost

relayhost =

mynetworks = 127.0.0.1/32 mailbox_size_limit = 0

recipient_delimiter = +

inet_interfaces =

all luser_relay =

delay_warning_time = 4h maximal_queue_lifetime = 10d mailbox_size_limit = 0 message_size_limit = 120971520

transport_map = ldap:/etc/postfix/ldap-transport.cf

virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf

virtual_mailbox_base =

virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf, ldap:/etc/postfix/ldap-maildrop.cf

virtual_alias_domains =

virtual_minimum_uid = 100

virtual_uid_maps = static:vmail

virtual_gid_maps = static:mail

virtual_transport = dovecot dovecot_destination_recipient_limit = 1

smtpd_use_tls = yes

smtpd_tls_loglevel = 1

smtpd_tls_cert_file = /etc/ssl/mss/certs/smtpd.pem smtpd_tls_key_file = /etc/ssl/mss/private/smtpd.key

smtpd_sasl_auth_enable = yes

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

broken_sasl_auth_clients = yes

smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =

smtpd_delay_reject = yes

smtpd_helo_required = yes

smtpd_helo_restriction =

permit_mynetworks,reject_invalid_hostname,reject_non_fqdn_hostname strict_rfc821_envelopes = yes

content_filter = amavis:[127.0.0.1]:10025

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, permit

smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, permit

smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain, permit

smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.njabl.org, reject_rbl_client cbl.abuseat.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client cbl.abuseat.org, reject_rbl_client dialups.mail-abuse.org, reject_rbl_client blackholes.mail-abuse.org, reject_rbl_client opm.blitzed.org, reject_rbl_client list.dsbl.org, reject_rbl_client sbl.spamhaus.org, reject_rbl_client dul.dnsbl.sorbs.net, reject_rbl_client dnsbl.njabl.org, reject_rbl_client dynablock.njabl.org, reject_rbl_client combined.njabl.org, permit_mynetworks, permit

smtpd_data_restrictions = reject_unauth_pipelining, permit

header_checks = regexp:/etc/postfix/header_checks

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

Если ты все сделаешь правильно - будут. Но это не так просто. Нужно знать точно, сколько было пользователей, какие у них были логины, emailы,где лежала их почта. Это все хранилось в лдапе. Пароли придется новые назначать - старые потеряны безвозвратно.

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)
Ответ на: комментарий от perrfect

структуру базы своей знаешь? если нет, то ее надо будет восстанваливать по файлам /etc/postfix/postfix-ldap*

управление пользователями было через вебпанель, что за панель?

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

кстати, если скилов нет, а восстановить сервис надо очень быстро, это это можно сделать за 15 минут. берется новая машина или сносится все на этой( кроме писем) , ставится за 2 минуты iredmail. 5 минуь на то, чтобы создать всех пользователей и отправить им по письму. после жтого у тебя готовая структура папок на новом сервере, куда ты просто копируешь/переносишь почту юзеров файлами.

но если есть понимание, какая была база. то можно продолжать

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

Лучше скажи как быть в данной ситуации?

Могу рекомендовать насать искать другую работу, так на всякий случай.

ya-betmen ★★★★★
()
Ответ на: комментарий от anonymous

Шуточки восьмилеток про

Могу рекомендовать насать искать другую работу, так на всякий случай.

Никого не красят. Когда вы будете в похожей ситуации (по другому поводу) над вами тоже смеяться вместо помощи будут.

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

Создал новую базу LDAP. Создал пользователей, их не много было, около 30. Указал использовать старые директории хранения почты. Все работает. Спасибо всем большое за помощь. Остается только вопрос как чистить логи LDAP, чтобы они не занимали место? Можно в конфиге DB_CONFIG указать параметр

set_flags DB_LOG_AUTOREMOVE?

И с какой периодичностью или при каком объеме этот лог будет удалятся?

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

Создал новую базу LDAP.

Не забудь сразу про создание бэкапов.
slapcat - твой друг.

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