Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   "forfiles" неправильно определяет дату изменения (http://forum.oszone.net/showthread.php?t=320301)

rivera 31-10-2016 12:25 2683311

"forfiles" неправильно определяет дату изменения
 
Вложений: 1
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 2683350

Логи писать нада. Писать как минимум дату изменения файла в лог и смотреть что с ней не так.

rivera 14-11-2016 16:11 2687464

вот что следует из логов

Код:

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\"

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

Время последнего запуска



В тестовую папку было скопировано 2 файла


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


И в самой папке для последующего архивирования его нет



в самом файле DSC_pid2924.log (это ведь лог приложения) записи от разных дат (т.е. по сути он не должен был "браться" копированием)
Код:

...
30/10/2016 10:03:04.910
06/11/2016 10:00:59.192

в 10:00 комп выключился на перегрузку
в 12:00 джоб запустился на копирование/архивирование


Время: 12:13.

Время: 12:13.
© OSzone.net 2001-