OpenLdap - восстанавливают резервное копирование - slapcat/slapadd

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

Итак, если у вас есть программа, скажем, awk— и вы используете перенаправление <для передачи имени файла, и вы пытаетесь напечатать FILENAME, для какого файла она открыта, будет сообщено -(, что означает, что ввод stdin ); см. следующий вывод:

awk '{ print FILENAME }' --infile
--infile

awk '{ print FILENAME }' <--infile
-

Еще одним преимуществом является то, что если имя файла начинается с дефиса, оболочка обработает его сама, но если вы передадите команду в качестве аргумента, скажем grep, она будет жаловаться, потому что считает, что предоставлена ​​недопустимая опция.

grep root --infile
grep: unrecognized option '--infile'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.

Стандартные, совместимые со стандартами -команды используют --, чтобы избежать этой ошибки, сообщая команде, что это конец аргумента опции -. Вы также можете указать либо абсолютный путь к файлу, либо относительный путь с помощью ./--infle, либо позволить оболочке открыть его для команды с помощью command <--infile.

примечание :Использование <inputfile commandявляется тем же вариантом command <inputfile.

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

awk 'BEGIN{ print "ifrun" }' < non-existing_file
-bash: non-existing_file: No such file or directory

awk 'BEGIN{ print "ifrun" }' non-existing_file
ifrun
2
31.10.2014, 10:42
1 ответ

Tomado dehttp://www.openldap.org/lists/openldap-software/200504/msg00195.html

No está permitido cambiarlos ya que son internos.

Elimínelos de su LDIF o use el interruptor -c(peligroso ).

slapadd -F /etc/ldap/slapd.d -n 1 -c -l ldap.domain.com.ldif

En cuanto a no escribirlos en primer lugar, canalice la salida a través de egrep para recortarlos:

slapcat -n 1 | egrep -v  "^(structuralObjectClass|entryUUID|creatorsName|modifiersName|createTimestamp|modifyTimestamp|entryCSN):" > ${BACKUP_PATH}/ldap.domain.com.ldif 

dehttp://vaab.blog.kal.fr/2010/03/10/import-export-ldap-database/

Considero que esto es un error en slapcat, como mínimo, debería tener una opción para 'no' mostrar estas cosas.

0
27.01.2020, 22:57

Теги

Похожие вопросы