CMD/BAT - "forfiles" неправильно определяет дату изменения

Ответить
Аватара пользователя
rivera

CMD/BAT - "forfiles" неправильно определяет дату изменения

Сообщение rivera »

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-.....



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

[Расширение jpg было запрещено, вложение больше недоступно.]

Аватара пользователя
Elven

Re: CMD/BAT - "forfiles" неправильно определяет дату изменения

Сообщение Elven »

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

Re: CMD/BAT - "forfiles" неправильно определяет дату изменения

Сообщение Elven »

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

Код:

Код: Выделить всё

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 джоб запустился на копирование/архивирование
Ответить

Вернуться в «Скриптовые языки администрирования Windows»