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

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

loromir 10-07-2017 16:35 2750419

Ежедневное удаление определенного каталога (через крон)
 
Добрый всем.
Помогите пожалуйста.
Есть каталог на сетевом диске, внутри папки с датами (вот такого образца - X:\192.168.10.230\2017-06-04)
Батник будет запускаться раз в день кронтабом.
Нужно удалить самую старую папку (к примеру 4 папки 2017-06-01 / 2017-06-02 / 2017-06-03 / 2017-06-04 , удалить 2017-06-01).

Busla 10-07-2017 19:15 2750453

кронтаб и батник - на одной платформе обычно не встречаются :-)
а если и встречаются - не лучшая идея совместно их использовать

Iska 10-07-2017 20:27 2750474

Цитата:

Цитата loromir
Нужно удалить самую старую папку (к примеру 4 папки 2017-06-01 / 2017-06-02 / 2017-06-03 / 2017-06-04 , удалить 2017-06-01). »

«Самую старую»:
  • по имени;
  • по дате создания;
  • по дате модификации?

loromir 11-07-2017 12:25 2750580

Цитата:

Цитата Iska
«Самую старую»:
по имени;
по дате создания;
по дате модификации? »

либо по имени, либо по дате создания, (наверное не важно?) так как имена соответствуют датам создания

megaloman 11-07-2017 13:49 2750609

loromir, не кажется ли Вам, что эта постановка задачи опасна? Не лучше ли оставлять не менее некоторого количества самых новых папок?

Busla 11-07-2017 14:30 2750621

megaloman, количество - тоже не сказать, что оптимальная постановка задачи. Лучше и срок давности, и количество проверять.

Цитата:

Цитата loromir
так как имена соответствуют датам создания »

не лучшая практика

loromir 11-07-2017 17:28 2750680

Дело в том что это папки с записями с видео регистратора и посему нужны "по максимум все" возможные записи.
Видео регистратор не самый "продвинутый" и максимум что я могу там указать - это только путь. Куда записывать =( .
Перезаписывать на "стороннем" хранилище он тоже не умеет((
Сейчас хранилище заполнилось по максимум и поэтому каждый день приходится удалять самую старую папку. (как если бы видео регистратор перезаписывал старые записи)
Поэтому и такая постановка задачи, при каждом запуске удалять одну самую старую папку. А запускать буду раз в день. Как то так...

megaloman 11-07-2017 18:27 2750701

loromir, Если речь идёт о традиционных батниках, то:
Если оставлять не менее некоторого количества самых новых папок
Код:

@Echo Off
Set "BoxIn=X:\192.168.10.230"
Set "Mask=20??-??-??"
Set /A N=30

FOR /F "usebackq Skip=%N% delims=" %%d IN (`Dir "%BoxIn%\%Mask%" /A:D /B /O:-N 2^>nul`) DO RD /S /Q "%BoxIn%\%%d"

Если очень хочется, удалять одну самую старую
Код:

@Echo Off
Set "BoxIn=X:\192.168.10.230"
Set "Mask=20??-??-??"

FOR /F "usebackq delims=" %%d IN (`Dir "%BoxIn%\%Mask%" /A:D /B /O:N 2^>nul`) DO RD /S /Q "%BoxIn%\%%d" &GoTo :Eof

Почему мне это не нравится: по какой-то причине папки перестали писаться, а батник продолжает отрабатывать. Получим по максимуму вообще ничего. Можно ведь сообразить, сколько дней Вы можете позволить себе сохранять, с учетом того, что некоторое свободное место должно оставаться. А под завязку забивать пространство тоже опасно - а вдруг места на самое свеженькое (ИМХО, потому и самое важное) не хватит.
Если оставить гарантированное число папок, запускайте батник хоть сто раз на дню, беды не будет.
При работе батника "старость" папок определял по имени.

loromir 12-07-2017 12:38 2750860

megaloman, супер!!! Спасибо большое! =))


Время: 12:02.

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