18. 10. 2016

Дополнительное резервное копирование


Как сделать резервное копирование на каком-либо этапе обработки?

Пусть у нас стоит задача сделать в процессе обработки входящих MZ посылок 440-П резервное копирование:

- посылок MZ в исходном виде
- извлеченных AFN архивов после проверки и снятия подписи.
 
Изменим сценарий обработки 440.ini:

[Section01]
Comment=Расшифровка, снятие подписи и распаковка cab-архива
Source=.\FILES\TEMP_INFO
Result=.\FILES\440\1
Mask=MZ*.*
NoResult=1
run0_signatura=RISDCRYPT
run1_signatura=RISVSIGN
run2_statutils= -CABX .\FILES\440\1 .\FILES\440\1

В этой секции входящая MZ посылка расшифровывается, затем под посылкой проверяется и снимается подпись и архив распаковывается для дальнейшей обработки.
Добавим команду копирования файла до того как будет производиться расшифровка:

[Section01]
Comment=Расшифровка, снятие подписи и распаковка cab-архива
Source=.\FILES\TEMP_INFO
Result=.\FILES\440\1
Mask=MZ*.*
NoResult=1
run0_command=COPY Z:\BACKUP\440\ORIGINAL_MZ
run1_signatura=RISDCRYPT
run2_signatura=RISVSIGN
run3_statutils= -CABX .\FILES\440\1 .\FILES\440\1

В следующей секции под архивом AFN проверяется подпись и его содержимое извлекается для дальнейшей обработки:

[Section02]
Comment=Снимаем подпись с arj-архивов и распаковываем
Source=.\FILES\440\1
Result=.\FILES\440\2
Mask=AFN*.arj
NoResult=1
run0_verbaow=VSIGN_FNS
run1_statutils= -ARJ32X .\FILES\440\2

Добавим копирование AFN архива после проверки подписи, но перед его распаковкой:

[Section02]
Comment=Снимаем подпись с arj-архивов и распаковываем
Source=.\FILES\440\1
Result=.\FILES\440\2
Mask=AFN*.arj
NoResult=1
run0_verbaow=VSIGN_FNS
run1_command=COPY Z:\BACKUP\440\PURE_AFN
run2_statutils= -ARJ32X .\FILES\440\2

Т.о. мы получили измененный сценарий, который в процессе обработки дополнительно скопирует пришедшие MZ посылки в исходном виде в каталог Z:\BACKUP\440\ORIGINAL_MZ, а архивы AFN без подписи будут скопированы в в каталог Z:\BACKUP\440\PURE_AFN
Кроме того, в именах каталогов можно использовать спец. слова %date% и %datetree% чтобы файлы копировались в подкаталоги по дате - вида ГГГГММДД в первом случае, либо ГГГГ\ММ\ДД во втором