LINUX.ORG.RU

Система менджмента архивов


0

0

Задача: Имеется постоянно накапливаемый архив данных (фото с веб-камеры), пишущиеся на сервер. Задача собирать файлы за день (по маске - файлы имеют имя imgYYYYMMDDHHMMSS), паковать их в архив и складывать это на NAS. А файлы, которые остались удалять. Пока идея делать это по скриптом по крону. Но тут возникает проблема проверки целостности данных. Как в скрипте проверить перед удалением что все запаковано без ошибок не представляю

>Как в скрипте проверить перед удалением что все запаковано без ошибок не представляю

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

Deleted ()

если шизофрения не отпустит, могу предложить лишь одно...

1. на машине А собрать md5 всего барахла, которое нужно запаковать и отправить на машину Б

2. запаковать и отправить на машину Б архив и набор md5-сумм

3. распаковать данные на машине Б проверить md5-суммы

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

Т.е .если я говорю zip -r file.zip file1 file2 а потом не будет обработки нештатного завершения операции то скрипт остановится а не будет выполнять rm?

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

#!/bin/sh -e
Теперь остановится. Главное, чтобы при ошибке zip завершился с ненулевым кодом завершения.

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

Если она прошла удачно, $? после выполнения команды равно 0. Иначе - больше ноля. (естественно, я имею ввиду sh-скрипт)

Различные значения $? описаны в manpage архиватора.

Если sh запущен с параметром -e, или в скрипте встретилось «set -e», sh будет проверять $? (это называется exit code) после каждой команды и завершаться, если он не равен 0. Соответственно, удаление файлов не произойдёт, а вы можете запустить что-то вроде
./mybackupscript.sh || echo «script returned non-zero exit code» | mail -s «backup error» root@localhost

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

Если архиватор вылетит (код завершения не 0), то следующие команды в скрипте выполняться не будут.
При условии, конечно, что команды перечислены в виде command1 && command2 && command3

mingebag ()

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

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

Если разработчики архиватора не дебилы, то невозможен.

AITap ★★★★★ ()

RTFM, @#$#@

man zip: ... Move the specified files into the zip archive ... Test the integrity of the new zip file.

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