архивирование файлов по маске со 'сложной' датой, как?

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

Re: архивирование файлов по маске со 'сложной' датой, как?

Postby elos » Tue, 05 Oct 2010, 12:49

Встречный вопрос - а файлы с таким именем как было в исходном условии (первый пост аж от мая 2005 года) у тебя есть? Ещё один - а те файлы, которые ты ключом -RD 1 хочешь копирнуть, они все по времени создания попадают в этот диапазон?
Если бы привел хотя бы результат dir-а для обрабатываемой папки (чтобы подробности времени или имен были видны) - ещё можно было бы поговорить. А так о чём рассуждать?

Обычно помогает ручная "настройка" файлов тестовой папки, проверка командной строки на ней, и только затем "натравливание" командной строки на реальную папку.
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: архивирование файлов по маске со 'сложной' датой, как?

Postby mav1 » Tue, 05 Oct 2010, 13:35

elos wrote:Встречный вопрос - а файлы с таким именем как было в исходном условии (первый пост аж от мая 2005 года) у тебя есть? Ещё один - а те файлы, которые ты ключом -RD 1 хочешь копирнуть, они все по времени создания попадают в этот диапазон?
Если бы привел хотя бы результат dir-а для обрабатываемой папки (чтобы подробности времени или имен были видны) - ещё можно было бы поговорить. А так о чём рассуждать?

Обычно помогает ручная "настройка" файлов тестовой папки, проверка командной строки на ней, и только затем "натравливание" командной строки на реальную папку.


Вот результат dir
Code: Select all
 Directory of D:\input\logs

26.09.2010  00:00        10 668 192 wrap.20100925.log
26.09.2010  23:59        11 490 485 wrap.20100926.log
28.09.2010  00:00        14 505 780 wrap.20100927.log
28.09.2010  23:59        14 478 242 wrap.20100928.log
29.09.2010  23:59        15 772 316 wrap.20100929.log
01.10.2010  00:00        14 913 109 wrap.20100930.log
02.10.2010  00:00        16 937 633 wrap.20101001.log
02.10.2010  23:59        15 685 348 wrap.20101002.log
03.10.2010  23:59        15 413 992 wrap.20101003.log
05.10.2010  00:00        15 394 575 wrap.20101004.log
05.10.2010  14:21         6 442 154 wrap.20101005.log


Если использовать команду -RD 1 получаем естественно такое
Code: Select all
nnBackup. V 3.01 RC8 Build 137 2008-12-30 15:03
Copyright (C) 2001-2010 nnSoft. nemtsev@nncron.ru
Зарегистрирован только для некоммерческого использования
Registered for non-commercial use only
Tu 05.Oct.2010 14:29 Start copy
Tu 05.Oct.2010 14:29 D:\input\logs\wrap.20101004.log
Tu 05.Oct.2010 14:29 D:\input\logs\wrap.20101005.log
Tu 05.Oct.2010 14:29 Stop copy


А мне нужен только файл wrap.20101004.log. Добавление в строку -x "%test_date%" ничего не меняет.
mav1
 
Posts: 3
Joined: Mon, 04 Oct 2010, 18:10

Re: архивирование файлов по маске со 'сложной' датой, как?

Postby elos » Tue, 05 Oct 2010, 16:29

-RD 1 так работает, потому что у тебя эти файлы попадают в один день (хоть и в разное время). А ключ отсчитывает время на сутки назад. Если бы у тебя 04/10/2010 что-то вечером было - и этот бы файл ещё попал.

Команда со встроенным скриптом создает совершенно отличный от твоего формат файла ("DD-MM-YYYY").

Пойдём путём формирования имени через регулярное выражение - таким образом избавимся от использования EVAL/EVAL-SUBST, в которых я постоянно/периодически путаюсь...

Имеем исходные данные:
Code: Select all
dir D:\NN_TEST\1_LOGS /s/b
D:\NN_TEST\1_LOGS\wrap.20101001.log
D:\NN_TEST\1_LOGS\wrap.20101002.log
D:\NN_TEST\1_LOGS\wrap.20101003.log
D:\NN_TEST\1_LOGS\wrap.20101004.log
D:\NN_TEST\1_LOGS\wrap.20101005.log
D:\NN_TEST\1_LOGS\wrap.20101006.log
D:\NN_TEST\1_LOGS\wrap.20101007.log


Из командной строки (XP):
Code: Select all
nnbackup.exe copy -i D:\NN_TEST\1_LOGS -o D:\NN_TEST\2_LOGS -v -s -m "/wrap\.%YYYY%%MM%%DD S>NUM 1- S>D <# # #S #>%\.log/"
видно "обрамление" кавычками regexp-а.

Из крона:
Code: Select all
#( nn_20101005_1
NoActive
Action:
ShowNormal   NormalPriority
 START-APP: C:\nnBackup\nnbackup.exe copy -i D:\NN_TEST\1_LOGS -o D:\NN_TEST\2_LOGS -v -s -m /wrap\.%YYYY%%MM%%DD S>NUM 1- S>D <# # #S #>%\.log/
)#


Лог крона C:\nnCron\log\1006cron.log:
Code: Select all
00:03:13 720 TASK: nn_20101005_1
00:03:13 720 Start: C:\nnBackup\nnbackup.exe copy -i D:\NN_TEST\1_LOGS -o D:\NN_TEST\2_LOGS -v -s -m /wrap\.20101005\.log/
00:03:13 720 Start result: 0
Лог nnbackup после двух запусков:
Code: Select all
2010.10.05 23:52 Start copy
2010.10.05 23:52 D:\NN_TEST\1_LOGS\wrap.20101004.log
2010.10.05 23:52 Stop copy
2010.10.06 00:03 Start copy
2010.10.06 00:03 D:\NN_TEST\1_LOGS\wrap.20101005.log
2010.10.06 00:03 Stop copy


Как итог - копируем файл "на сутки меньше" только по имени файла, избежав проблем с существованием нескольких файлов с разными именами-датами в один день (как видно из результатов распечатки команды dir).
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: архивирование файлов по маске со 'сложной' датой, как?

Postby mav1 » Wed, 06 Oct 2010, 14:26

Спасибо за помощь elos!
mav1
 
Posts: 3
Joined: Mon, 04 Oct 2010, 18:10

Previous

Return to nnBackup forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests