Исключение по маске

Обсуждение программы nnBackup

Исключение по маске

Postby cyganek » Wed, 02 Apr 2014, 01:39

nnbackup sync -i d:\temp\111 -o d:\temp\222 -s -e -ad -da -v -x *.doc,*.^^^,*.txt -log d:temp\nnbackup.log

Некое ПО создает временные файлы со след. маской *.^^^ , NNbackup запускаю с ключом -x *.^^^, т.к. в резервной копии мне не нужны временные файлы, но NNbackup всеравно их копирует!? Что делать и кто виноват? :)
cyganek
 
Posts: 3
Joined: Wed, 02 Apr 2014, 01:24

Re: Исключение по маске

Postby elos » Wed, 02 Apr 2014, 22:47

Версию nnbackup в студию... У меня последний.

просто синхронизация без масок (каждый раз приёмник пустой)
Code: Select all
C:\nnBackup>nnbackup sync -i d:\temp\111 -o d:\temp\222 -s -e -ad -da -v -log d:\temp\nnbackup.log
nnBackup. V 3.01 RC10 Build 140 2010-01-28 14:27
Copyright (C) 2001-2014 nnSoft. nemtsev@nncron.ru
Th 03.Apr.2014 00:06 Start synchronization
Th 03.Apr.2014 00:06 Копирование файлов
Th 03.Apr.2014 00:06 d:\temp\111\1.doc
Th 03.Apr.2014 00:06 d:\temp\111\1.tzt
Th 03.Apr.2014 00:06 d:\temp\111\1.^^^
Th 03.Apr.2014 00:06 d:\temp\111\2.txt
Th 03.Apr.2014 00:06 d:\temp\111\2.^^^
Th 03.Apr.2014 00:06 d:\temp\111\Descript.ion
Th 03.Apr.2014 00:06 Удаление файлов
Th 03.Apr.2014 00:06 Stop synchronization
синхронизация с масками
Code: Select all
C:\nnBackup>nnbackup sync -i d:\temp\111 -o d:\temp\222 -s -e -v -x *.doc,*.^^^,*.txt -log d:\temp\nnbackup.log
nnBackup. V 3.01 RC10 Build 140 2010-01-28 14:27
Copyright (C) 2001-2014 nnSoft. nemtsev@nncron.ru
Th 03.Apr.2014 00:07 Start synchronization
Th 03.Apr.2014 00:07 Копирование файлов
Th 03.Apr.2014 00:07 d:\temp\111\1.tzt
Th 03.Apr.2014 00:07 d:\temp\111\1.^^^
Th 03.Apr.2014 00:07 d:\temp\111\2.^^^
Th 03.Apr.2014 00:07 d:\temp\111\Descript.ion
Th 03.Apr.2014 00:07 Stop synchronization

Видим, что файлы вида *.^^^ исключающей маской не обрабатываются... Для регулярного выражения - обрамление не задано, да и с наличием прямых слешей что получится?
* - Ноль или больше раз
. - Любой символ кроме переводов строки
^^^ - Начало строки три раза (бред, по моему)
Почему-то думается, что идёт разбор как-бы regexp-а (несмотря на отсутствие обрамления), но при наличии "бреда" этот regexp просто игнорируется.

Может я не так маску понял и она по другому выглядит? Пример dir-а можно? Да, у тебя в пути логирования обратный слеш был пропущен...
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: Исключение по маске

Postby cyganek » Thu, 03 Apr 2014, 23:36

Может я тоже чего недопонимаю...
*.^^^ все названия файлов с расширением ^^^ т.е.
base.^^^
old.^^^
select.^^^ и др.
Файлы с таким расширением создает Pervasive Backup Agent, если есть соединения(изменения данных) с базой во время бэкапа, после выключения Pervasive Backup Agent изменения дописывает в основную базу.
cyganek
 
Posts: 3
Joined: Wed, 02 Apr 2014, 01:24

Re: Исключение по маске

Postby WAndrey » Fri, 04 Apr 2014, 08:07

Заключите вашу маску в кавычки :) "*.^^^" Или пишите символ ^ 6 раз *.^^^^^^
^ это символ экранирования, а так как вы передаете его через cmd, то соответственно и имеете фигню... nnbackup не виноват
WAndrey
 
Posts: 44
Joined: Fri, 20 May 2011, 10:57

Re: Исключение по маске

Postby elos » Fri, 04 Apr 2014, 09:30

В который раз убеждаюсь, что всё-таки лучше всего всегда заключать всё, связанное с именами файлов или путями в кавычки. Даже если имена вкладываются в стандарт 8.3 ...
Итак, набор файлов аналогичен первому примеру, только добавил внутрь папку с тем же набором файлов.

Для наглядности первая синхронизация без маски:
Code: Select all
D:\temp\444>nnbackup sync -i d:\temp\111 -o d:\temp\222 -s -e -v -log d:\temp\nnbackup.log
nnBackup. V 3.02b3 Build 147 2012-03-22 13:37
Copyright (C) 2001-2014 nnSoft. nemtsev@nncron.ru
2014.04.04 10:25 Start synchronization
2014.04.04 10:25 Копирование файлов
2014.04.04 10:25 d:\temp\111\1.doc
2014.04.04 10:25 d:\temp\111\1.tzt
2014.04.04 10:25 d:\temp\111\1.^^^
2014.04.04 10:25 d:\temp\111\2.txt
2014.04.04 10:25 d:\temp\111\2.^^^
2014.04.04 10:25 d:\temp\111\333\1.doc
2014.04.04 10:25 d:\temp\111\333\1.tzt
2014.04.04 10:25 d:\temp\111\333\1.^^^
2014.04.04 10:25 d:\temp\111\333\2.txt
2014.04.04 10:25 d:\temp\111\333\2.^^^
2014.04.04 10:25 Stop synchronization

Теперь с маской в очищенный приёмник:
Code: Select all
D:\temp\222>nnbackup sync -i d:\temp\111 -o d:\temp\222 -s -e -v -x "*.doc,*.^^^,*.txt" -log d:\temp\nnbackup.log
nnBackup. V 3.02b3 Build 147 2012-03-22 13:37
Copyright (C) 2001-2014 nnSoft. nemtsev@nncron.ru
2014.04.04 10:22 Start synchronization
2014.04.04 10:22 Копирование файлов
2014.04.04 10:22 d:\temp\111\1.tzt
2014.04.04 10:22 d:\temp\111\333\1.tzt
2014.04.04 10:22 Stop synchronization

Кстати, до кучи обратите также внимание на использование \\?\ - при манипуляциях с длинными путями очень помогает избавиться от ошибок.

P.S. не успел первым ответить...
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: Исключение по маске

Postby cyganek » Sun, 04 May 2014, 20:21

Что-то не подумал про "". Спасибо
cyganek
 
Posts: 3
Joined: Wed, 02 Apr 2014, 01:24


Return to nnBackup forum (Russian)

Who is online

Users browsing this forum: No registered users and 1 guest

cron