Re: Rutina en logrotate para Apache2
El Mon, 17 Jan 2011 00:11:52 +0100, Javier Barroso escribió:
> 2011/1/16 Camaleón:
>> He hecho alguna modificación para que 1) el "find" no sea recursivo y
>> no afecte a otros subdirectorios con archivos .log y para que 2) el
>> archivador no mantenga la información de la ruta (./), a ver qué te
>> parece:
>>
>> ***
>> function comprimir_logs
>> {
>> tipo="$1"
>> anyo_anterior=$(date +'%Y' -d '1 year ago')
>> - ficheros=($(find /var/log/apache2 -name
>> "$tipo.$anyo_anterior*.log*")) + ficheros=($(find /var/log/apache2
>> -maxdepth 1 -name "$tipo.$anyo_anterior*.log*" -exec basename {} \;))
> Mejor que usar -exec basename .. , yo usaría -printf "%P\n" (a efectos
> prácticos, evidentemente no notarás nada :) )
Cambiando esto no hay problema.
> Y si le quitas la ruta, en el tar te faltaría un -C /var/log/apache2
> antes del -zcf (lo del hacer cd dentro de un script no me gusta mucho,
> aunque a veces no queda más remedio)
Esto sí me da problemas. Tanto si uso:
tar -zcf -C /var/log/apache2/$tipo.$(date +'%F').tar.gz ${ficheros[*]}
^^
Como:
tar -zcfh /var/log/apache2/$tipo.$(date +'%F').tar.gz ${ficheros[*]}
^
Al ejecutar el script obtengo:
sm01@stt008:~/Desktop/test$ sh ./test2.sh
tar: access.2011-01-17.tar.gz: No se puede stat: No existe el fichero o
el directorio
tar: Salida con error demorada desde errores anteriores
Se queja de que el archivador para el año en curso (que no debe ser
comprimido) no existe (y no debe existir).
Saludos,
--
Camaleón
Reply to: