Tengo dos cámaras IP que envían instantáneas de imágenes a un servidor FTP cada 10 segundos, de 08:00 a 20:59. La estructura del directorio se ve así:
`-- public_html
`-- securitycams
|-- cam01
| |-- 20190601
| | |-- 08
| | | |-- 20190601_080000.jpg
| | | |-- 20190601_080010.jpg
| | | |-- 20190601_080020.jpg
| | | `-- ...
| | |-- 09
| | | |-- 20190601_090000.jpg
| | | |-- 20190601_090010.jpg
| | | |-- 20190601_090020.jpg
| | | `-- ...
| | |-- 10
| | |-- 11
| | |-- 12
| | |-- 13
| | |-- 14
| | |-- 15
| | |-- 16
| | |-- 17
| | |-- 18
| | |-- 19
| | `-- 20
| `-- 20190602
| |-- 08
| | |-- 20190602_080000.jpg
| | |-- 20190602_080010.jpg
| | |-- 20190602_080020.jpg
| | `-- ...
| |-- 09
| | |-- 20190602_090000.jpg
| | |-- 20190602_090010.jpg
| | |-- 20190602_090020.jpg
| | `-- ...
| |-- 10
| |-- 11
| |-- 12
| |-- 13
| |-- 14
| |-- 15
| |-- 16
| |-- 17
| |-- 18
| |-- 19
| `-- 20
`-- cam02
| |-- 20190601
| | |-- 08
| | | |-- 20190601_080000.jpg
| | | |-- 20190601_080010.jpg
| | | |-- 20190601_080020.jpg
| | | `-- ...
| | |-- 09
| | | |-- 20190601_090000.jpg
| | | |-- 20190601_090010.jpg
| | | |-- 20190601_090020.jpg
| | | `-- ...
| | |-- 10
| | |-- 11
| | |-- 12
| | |-- 13
| | |-- 14
| | |-- 15
| | |-- 16
| | |-- 17
| | |-- 18
| | |-- 19
| | `-- 20
| `-- 20190602
| |-- 08
| | |-- 20190602_080000.jpg
| | |-- 20190602_080010.jpg
| | |-- 20190602_080020.jpg
| | `-- ...
| |-- 09
| | |-- 20190602_090000.jpg
| | |-- 20190602_090010.jpg
| | |-- 20190602_090020.jpg
| | `-- ...
| |-- 10
| |-- 11
| |-- 12
| |-- 13
| |-- 14
| |-- 15
| |-- 16
| |-- 17
| |-- 18
| |-- 19
| `-- 20
Sólo me interesa conservar una copia de las instantáneas tomadas entre:
08:00 and 09:59
13:00 and 14:59
19:00 and 20:59.
Por eso me gustaría crear unCronJobque eliminará periódicamente todos los directorios denominados "10", "11", "12", "15", "16", "17" y "18".
Soy un novato en los comandos de UNIX y busqué mucho. Logré crear este comando:
find /home/******/public_html/securitycams/* -depth \( -name "10" -or -name "11" -or -name "12" -or -name "15" -or -name "16" -or -name "17" -or -name "18" \) -type d -exec rm -r "{}" \;
Parece funcionar. ¿Pero es ese el camino correcto a seguir?
Respuesta1
Tu mando me parece bien. Pero podrías acortarlo un poco:
-depth
se puede quitar\( -name ... -or -name ... \)
se puede acortar- en lugar de
{} \;
you podría usar{} +
lo que resultaría en una sola invocación derm
find /home/******/public_html/securitycams -type d -name "1[0-25-8]" -exec rm -r {} +
Si sus cámaras se pueden configurar para almacenar imágenes entre las 08:00 y las 20:59, tal vez también se puedan configurar para almacenar imágenes solo entre las 08:00 y las 09:59, las 13:00 y las 14:59 y las 19:00 y las 20:00. :59?
Creo que no existe una "forma correcta" de hacer esto. Si un trabajo cron te funciona, ¿por qué no?