ZFS, который близок, но не точно файловая система журналирования, гарантирует дизайном против повреждения после сбоя питания.
Не имеет значения, если продолжающаяся запись будет прервана в середине как в таком случае, то его контрольная сумма будет, конечно, неправильной, таким образом, блок будет проигнорирован. Поскольку файловая система является копией на записи, предыдущие корректные данные (или метаданные) находятся все еще на диске и будут использоваться вместо этого.
К сожалению, я не полагаю, что OpenSSL может сделать это. OpenSSL принимает один сертификат на файл для x509 действий.
Согласно этому сайту необходимо разделить их на отдельные файлы. Он даже предоставляет сценарий жемчуга, который разделит его для Вас. Вы могли затем циклично выполниться по файлам или изменить сценарий жемчуга для извлечения предмета непосредственно.
Установите переменную file
так, чтобы она указывала на ваш файл, измените команду openssl, и все готово:
file="your file name"; first=""; for i in $(grep -n CERT "${file}" | cut -f 1 -d:)
do
if [ -z "$first" ]
then
first=$i
continue
fi
sed -n "$first,${i}p" "${file}" | openssl x509 -noout -subject
first=""
done
Для печати всех предметов в файле CA:
openssl crl2pkcs7 -nocrl -certfile ca-certificates.crt | openssl pkcs7 -print_certs -text -noout | grep 'Subject:'