익숙한: openldap-servers-2.4.23-34.el6_5.1.x86_64
작업 : crontab
예약 된 데이터베이스 전체 백업을 만들기 위한 스크립트 를 만듭니다.
1) slapcat
-기본 형식 인 Berkeley DB로 파일을 만듭니다.
2) 실행 slapcat
중에 수행 할 수 있습니다 slapd
( bdb/hdb
데이터베이스를 사용하는 경우 ).
3) 파일을 복원하려면 slapcat
사용 slapadd
하지 않아야합니다 (아님 ldapadd
).
4) slapcat/add
비밀번호가 필요하지 않습니다.
5) 중지 된 slapadd
경우에만 수행 할 수 있습니다 slapd
.
예:
$ slapcat -f /etc/openldap/slapd.conf -b "dc=db_1" -l db_1_backup.ldif
$ slapadd -l db_1_backup.ldif
대신에 slapcat/add
살펴 보자 ldapsearch/add
.
1) ldapsearch
-거의 같은 정보를 가진 파일을 만듭니다 slapcat
.
2) ldapadd
-에서 파일을 사용할 수 있으며 중지 할 ldapsearch
필요가 없습니다 slapd
.
3) ldapadd/search
-비밀번호가 필요합니다.
예:
$ ldapsearch -D "cn=root,dc=db_1" -W -b "dc=db_1" "dc=db_1" -LLL > db_1_backup2.ldif
$ ldapadd -x -D "cn=root,dc=db_1" -W -f db_1_backup2.ldif
따라서 질문은 다음과 같습니다.
1)이 도구 설명에 빠진 것이 있습니까?
2) 사이의 차이가 다른 무엇 ldapadd/slapadd
과 ladpsearch/slapcat
?
답변
좋은 요약, 몇 가지 추가 사항 :
slapcat
(로컬) 직접 스토리지 백엔드가 무엇이든간에 버클리 (hdb 또는 bdb) 일 필요는 없으며 OLC (cn=config
) 와도 작동합니다 . LDIF 형식으로 덤프 합니다 . 직접적으로는 로컬에 저장된 경우에도 SQL 백엔드가 아닌 OpenLDAP에서 직접 관리한다는 의미입니다.ldapadd
그 slapd에 필요한 되고 , 실행slapadd
은해야 되지 않은 실행ldapsearch
즉 요구slapd
되는 실행slapcat
당신이 언급 한 바와 같이, 그것은 BDB 백엔드로 실행중인 경우 상관하지 않는다
한마디로 :
slapcat
마스터에서 가동 중지 시간이 발생하더라도 신속하게 복원 할 수있는 좋은 백업을 얻는 방법입니다 (다양한 유형의 복제 설정으로이 문제를 해결할 수 있습니다). 이것이 일반 백업 및 사전 업그레이드 백업에 사용해야합니다.ldapsearch
(없이+
) 다른 디렉토리 서버에 거의 어려움없이로드 할 수 있는 휴대용 백업을 제공하지만, 간단한 OpenLDAP 설정 (복제, 특수 오버레이, 재 작성 없음)으로 실행 가능한 복원 만 가능합니다. UUID 보존 / 메타 데이터 생성 / 수정에 신경 쓰지 않아도됩니다. 데이터와 함께 제공되는 추가 스키마 파일이 필요합니다.ldapadd
(그 다른 ID를 사용하여ldapmodify
(개체, 수정, 삭제 및 이름 변경)을 가능 또는 불가능있는 쉽게 LDAP 수정을 적용 할 수 있습니다)slapadd
/slapcat
혼자
대부분의 관리자는 각 경우에 약간 다른 LDIF 내용과 slapd
실행 요구 사항에 따라 주요 고려 사항이 발생합니다 . 더 중요한 차이점은 다음과 같습니다.
slapcat
LDAP 프로토콜 오버 헤드, 인증, 액세스 제어, 개체 및 시간 제한, 오버레이를 생략하고 데이터베이스를 덤프하기 때문에 속도가 더 빠릅니다. LDAP 계층 구조에 따라 검색하지 않습니다.slapadd
(더 이상 LDAP 프로토콜 오버 헤드가 없음) 속도가 빠르며 알려진 양호한 백업을 복원하는 경우 빠른 모드 (-q
)로 실행 하여 큰 가져 오기 속도를 높일 수 있습니다.-s
OpenLDAP 버전 사이의 스키마 또는 데이터 유효성 검사에서 약간의 변경 사항은 들어 본 적이 없지만 스키마 검사 ( )를 비활성화 할 수도 있습니다 .slapcat
로컬 데이터베이스로 제한되며 다른 디렉토리 (예 :back-ldap
,back-meta
)로 넘어 가지ldapsearch
않습니다.slapadd
/ 에도 동일하게 적용됩니다ldapadd
.ldapsearch
백엔드에 저장되지 않은 동적 속성hasSubordinates
또는 오버레이에 의해 유지되는 동적 속성 (예 🙂 을 반환합니다slapo-memberof
. 로드시 문제가 발생합니다ldapadd
(예 : 사용자가 수정하지 않은 운영 속성). 다시 쓰기 (slapo-rwm)는ldapsearch
디렉토리 내용에 대한보기를 왜곡 할 수 있습니다 .slapcat
내부 (운영) 속성을 포함하며 복제를 사용하는 경우 이러한 속성이 중요합니다. 복제를 사용하면 백업에 덜 의존하지만ldapadd
마스터를 다시로드 하는 데 사용 하면 복제에 의해 모든 오브젝트가 다시 작성 됩니다 (변경됨entryUUID
entryCSN
). 특수한 “+”속성을 사용하여ldapsearch
(또는allop
오버레이) 조작 속성을 포함 할 수 있지만 , 이것은와 동일하지 않습니다.slapcat
이전 포인트를 참조하십시오. 이러한 속성에는 DN 생성 / 수정 및 타임 스탬프도 포함되며 일부 응용 프로그램에 중요 할 수 있습니다.slapcat
LDAP 계층 구조 (암시 적 순서 지정)를 준수하지 않기 때문에 데이터 순서가 유효하다는 보장이 없습니다.ldapadd
즉, 운영 속성을 제거하더라도ldapadd
하위 항목이 상위 (부모) 앞에 나타날 수 있기 때문에 불만을 제기 할 수 있습니다. . LDAP 스펙에는 상위가 있어야하지만 이와 관련하여 검색 결과 순서는 정의되지 않은 상태로 두십시오. 아래의 Howard 의견을 참조하십시오. OpenLDAPslapadd
는 일부 백엔드에 대해 순서가없는 데이터를 자동으로 지원합니다. 핀치에서 모든 “순서가없는”상위 항목이 작성 될 때까지slapadd
계속 오류 오류 옵션 (-c
) 을 반복적으로 사용 하여 더 이상 오류 코드 32를 수신하지 않으면 중지 할 수 있습니다 (이러한 오브젝트,ldapadd
참조 규칙, 정책 (암호 정책)과 같은 LDAP 규칙 및 오버레이에 적용됩니다.slapcat
최소한 userPassword에 대해 base-64로 인코딩 된 속성 값을 사용하는 것을 선호합니다 (::
속성 이름 뒤에 표시됨)ldapsearch
LDIF 형식화와 별도의 파일에 큰 속성을 쓰는 옵션이 더 있습니다. 또한 참조 및 별칭을 처리 할 수도 있습니다 .
답변
slapcat
예를 들어 오버레이가있는 경우 작동하지 않습니다 memberOf
. 따라서 slapcat
/ slapadd
주기 멤버쉽 오버레이를 수행하면 더 이상 작동하지 않습니다.