Scrip para eliminar archivos de más de 6 meses

12

Configurar un trabajo cron por una vez al mes para iniciar un script.

la secuencia de comandos es rotar un archivo cada mes a medida que se hace demasiado grande y cambiar el nombre del anterior. cuando un archivo tiene más de seis meses, quería que se eliminara.

Buscando ejecutar este script una vez al mes. ¿Es posible eliminar el anterior?

Avíseme si eso no es lo suficientemente claro.

scott marriott
fuente
11
¿Por qué no solo usar logrotate?
Michael Hampton
@scottmarriott, sí, señor Hampton tiene razón, la funcionalidad que describió es básicamente lo que hace logrotate.
Bratchley
Sí, acabo de echarle un buen vistazo a logrotate tiene sentido aplausos
scott marriott
@MichaelHampton deberías darle una respuesta.
evilsoup

Respuestas:

20

Podrías comenzar con esto:

find /your/file -mtime +182 -exec rm {} +

Donde +182estan los dias cantidad.

ramonovski
fuente
Gracias por eso, podría jugar con él, pero tal vez logrotate podría ser la mejor opción
scott marriott
@jordanm alguna idea de por qué esto podría no funcionar?
Scott Marriott
ApplicationServer / logs / TestClone01 $ ls -ltr total 3320 1048458 13 dic 09:46 SystemOut_12.12.13_09.46.29.log 28 may 12:44 SystemOut.log.2013-05-28-12: 44: 52 71 30 may 08: 57 SystemOut.log.2013-05-30-08: 57: 22 48432 30 de mayo 09:16 SystemOut.log no_env): / usr / websphere6 / was61TE_LV2 / ApplicationServer / logs / TestClone01 $ find SystemOut.log -mtime +1 - exec rm {} + find: 0652-083 No se puede ejecutar :: No existe un archivo o directorio en el nombre de la ruta.
Scott Marriott
Cambié el número de días a 1
scott marriott
@scottmarriott No todas las versiones de findsoporte +/-para -mtime. ¿Qué sistema operativo y versión findtienes?
jordanm
2

Solo puedes usar logrotate. Ya está disponible en la mayoría de los sistemas Linux, y muchos paquetes ya tienen scripts logrotate preconfigurados, o puede modificarlos o escribir los suyos.

Michael Hampton
fuente