The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Скрипт создающий iso образы с индексом и верификацией."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Резервное копирование)
Изначальное сообщение [ Отслеживать ]

"Скрипт создающий iso образы с индексом и верификацией."  +/
Сообщение от Аноним (0), 17-Июл-19, 16:08 

#/bin/sh

# EN: Free for non-commercial use. Commersoal users must resive wriren permission of the author.
# RU: Свободна для некоммерческого использования. Коммерсанты должны получить письменное согласие автора.

# Необходимо предварительно скопировать в /home/backup каталоги которые станут корнями оптических дисков.
# Для автоматизированы стоит использовать программы: cdbackup, cdbkup, sync2cd.

# Необходимо создать пару gpg ключей 'backup' для подписи "индексов".

# Формируем индексный файл в формате: один объект - одна строка вида:
#DATA путь/к/файлу размер название_хеша1 хеш1 название_хеша2 хеш2...

cd /home/backup
rm -f Manifest index
for dir in `ls .`
  do
    cd "${dir}"
    gpg --armor --export backup --output backup.pub
    rhash --printf=DATA\ %p\ %s\ SHA3_512\ %{sha3-512}\ WHIRLPOOL\ %w\\n --recursive -- . |grep -v -E '^DATA Manifest ' |sort -f -d > Manifest
    echo "${dir}" >> ../index
    cat Manifest |sed "s/^DATA /${dir}\//" >> ../index
    date --utc +'TIMESTEMP '%Y'-'%m'-'%d'T'%H':'%M':'%S'Z' >> Manifest
    gpg --digest-algo sha512 --clear-sign --default-key backup --output Manifest.asc Manifest
    mv Manifest.asc Manifest
    cd ..
    mkisofs -sysid "${dir}" -o "${dir}.iso" -R -J -hfs "${dir}"
    rhash --printf=DATA\ %p\ %s\ SHA3_512\ %{sha3-512}\ WHIRLPOOL\ %w\\n -- "${dir}.iso" >> Manifest
  done
date --utc +'TIMESTEMP '%Y'-'%m'-'%d'T'%H':'%M':'%S'Z' >> Manifest
gpg --digest-algo sha512 --clear-sign --default-key backup --output Manifest.asc Manifest
mv Manifest.asc Manifest
gpg --armor --export backup --output backup.pub

# Теперь надо сделать две вещи, распечатать backup.pub и уничтожить секретный ключ backup.

exit 0

Скрипт приведённый выше работает быстро, выдаёт де факто стандарт - файл Manifest, который понимают множество программ и записывает его в корень диска. Также создаётся глобальный index архива, со списком файлов, размеров и контрольных сум (хешей).

Хеши в rhash можно выбирать разные, для ускорения можно даже использовать:

"...\ CRC32\ %c\ ..."

Без хешей будет невозможно в будущем верифицировать целостность данных.

Есть и другие программы которые создают точно такой же Manifest файл.

Манифест /home/backup/Manifest, с перечнем iso образов архива, можно также распечатать, а файл хорошо прятать вместе с /home/backup/index.

Если решили корневой манифест печатать то вторую команду rhash в цикле лучше заменить на:

rhash --printf=DATA\ %p\ %s\ SHA1\ %B{sha1}\\n -- "${dir}.iso" >> Manifest

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

Ответить | Правка | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру