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
- Cache - Joomla! Documentation
man tar
man du