Войти

Показать полную графическую версию : [решено] Ежедневное удаление определенного каталога (через крон)


loromir
10-07-2017, 16:35
Добрый всем.
Помогите пожалуйста.
Есть каталог на сетевом диске, внутри папки с датами (вот такого образца - 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
кронтаб и батник - на одной платформе обычно не встречаются :-)
а если и встречаются - не лучшая идея совместно их использовать

Iska
10-07-2017, 20:27
Нужно удалить самую старую папку (к примеру 4 папки 2017-06-01 / 2017-06-02 / 2017-06-03 / 2017-06-04 , удалить 2017-06-01). »
«Самую старую»:
по имени;
по дате создания;
по дате модификации?

loromir
11-07-2017, 12:25
«Самую старую»:
по имени;
по дате создания;
по дате модификации? »

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

megaloman
11-07-2017, 13:49
loromir, не кажется ли Вам, что эта постановка задачи опасна? Не лучше ли оставлять не менее некоторого количества самых новых папок?

Busla
11-07-2017, 14:30
megaloman, количество - тоже не сказать, что оптимальная постановка задачи. Лучше и срок давности, и количество проверять.

так как имена соответствуют датам создания »
не лучшая практика

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

megaloman
11-07-2017, 18:27
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
megaloman, супер!!! Спасибо большое! =))




© OSzone.net 2001-2012