PDA

Показать полную графическую версию : "forfiles" неправильно определяет дату изменения


rivera
31-10-2016, 12:25
Win Server 2008 SP2
На сервере есть приложение dsc.exe, которое инкрементно пишет свои логи. Это значит, что лог файл можно удалить, приложение не "держит" его. Но если его удалить, то следующая запись в логе не появится, потому что приложение найти лог файл не сможет.
Каждое воскресенье, шедулер перезагружает сервер в 10:00.
После перезагрузки, приложение стартует автоматически.

Хочу раз в неделю, копировать логи, которые были изменены последний раз приложением dsc.exe неделю назад и ранее.
строка для выполнения
forfiles /D -7 /C "cmd /c copy @path d:\archive\"
Данная команда запускается по воскресеньям в 11:00

Но почему-то, каждый раз в скопированных файлах я вижу файлы, которые были изменены в тот же день, чего быть не должно.
Проверяю командой ниже, иногда попадают проблемные логи, иногда нет. Закономерности я так и не нашел.
forfiles /D -7 /C "cmd /c echo @fdate @path"

Вот картинка с поледнего запуска (см.вложение)

вот, к примеру, что в этом логе:
...
26/10/2016 09:15:48.538 INFO [0x00001778-00.....
26/10/2016 09:15:48.538 INFO [0x000013ec-] Base.....
26/10/2016 09:15:48.772 INFO [0x0000136c-.....
30/10/2016 10:00:36.017 INFO [0x000013f8-.....
30/10/2016 10:00:36.033 INFO [0x0000136c-.....
30/10/2016 10:00:36.033 INFO [0x00001778-.....
30/10/2016 10:00:36.033 INFO [0x00000a98-.....


вопрос: почему этот лог попадает в копирование?

Elven
31-10-2016, 14:19
Логи писать нада. Писать как минимум дату изменения файла в лог и смотреть что с ней не так.

rivera
14-11-2016, 16:11
вот что следует из логов

pushd d:\tm\logs

@rem копируем файлы в тестовую папку для логов
forfiles /D -14 /C "cmd /c copy @path d:\tm\logs\archive\1\"

@rem записываем имена файлов в текстовый файл
forfiles /D -14 /C "cmd /c echo %date% %time% @path @fdate >> d:\tm\logs\archive\1\1.txt"

@rem копируем для последующей архивации
forfiles /D -14 /C "cmd /c move @path d:\tm\logs\archive\"

и вот что получилось:

Время последнего запуска
https://dl.dropboxusercontent.com/u/81534977/last_run.JPG


В тестовую папку было скопировано 2 файла
https://dl.dropboxusercontent.com/u/81534977/2_files.JPG

Хотя в файле d:\tm\logs\archive\1\1.txt такого файла нет (самая ранняя/поздняя запись Sun 11/13/2016 12:05:11.13)
https://dl.dropboxusercontent.com/u/81534977/find.JPG

И в самой папке для последующего архивирования его нет
https://dl.dropboxusercontent.com/u/81534977/no_file.JPG


в самом файле DSC_pid2924.log (это ведь лог приложения) записи от разных дат (т.е. по сути он не должен был "браться" копированием)
...
30/10/2016 10:03:04.910
06/11/2016 10:00:59.192
в 10:00 комп выключился на перегрузку
в 12:00 джоб запустился на копирование/архивирование




© OSzone.net 2001-2012