Al crear una copia de seguridad, puede ser útil excluir ciertos directorios o archivos no indispensables (tales como directorios temporales, caches, etc.) a fin de ahorrar espacio y tiempo de compresión. Este artículo demuestra cómo excluir un directorio al crear un archivo con tar.



Recientemente los backups de este sitio Web comenzaron a aumentar considerablemente de tamaño:

root@linuxito:~# tar czf backup.tar.gz /var/www/linuxito.com/ 2>/dev/null

Al crear una copia fresca, se observa que el sitio Web ¡supera el gigabyte!

root@linuxito:~# du -h backup.tar.gz 
1.1G    backup.tar.gz

Cómo puede ser, si se trata de contenido de texto plano con algunas imágenes. Al examinar el tamaño en disco utilizado por el contenido en la raíz del sitio, se encuentra rápidamente a la culpable:

root@linuxito:~# du -hs /var/www/linuxito.com/* | grep G
1.1G    /var/www/linuxito.com/cache

Nada menos que la cache de contenido de Joomla!. Realmente llama la atención cómo crece en tamaño esta cache a lo largo de poco tiempo.

Ahora bien, esta cache no sólo no es indispensable sino que no es deseable tenerla en el backup (se trata de información temporal que es borrada frecuentemente).

El manual de tar dice que es posible excluir archivos dado un cierto patrón:

     --exclude=PATTERN
           exclude files, given as a PATTERN

La verdad que esta definición del manual de tar, al menos para mí, resulta bastante vaga. Lo que en realidad significa, es que es posible excluir archivos dado un patrón de nombre de archivo relativo a la ruta actual en el filesystem, no a la ruta en el .tar resultante.

Entonces, si estamos creando un archivo a partir del directorio /var/www/linuxito.com, y queremos excluir el directorio /var/www/linuxito.com/cache, es necesario utilizar el patrón (PATTERN de acuerdo al manual) "/var/www/linuxito.com/cache":

root@linuxito:~# tar czf backup-nocache.tar.gz /var/www/linuxito.com/ --exclude=/var/www/linuxito.com/cache 2>/dev/null

El resultado es un backup normal sin el giga de archivos de la cache de Joomla!:

root@linuxito:~# du -h backup-nocache.tar.gz 
206M    backup-nocache.tar.gz

Referencias


Tal vez pueda interesarte


Compartí este artículo