Hoy os voy a dejar una pequeña chuleta de como empaquetar y comprimir directorios en linux, usando las herramientas más comunes como son tar, gz, bz2 o zip, algo que todo administrador se sistema debe saber hacer y que a veces se olvida.
Empaquetar directorios es una de las tareas mas comunes que un Administrador de Sistemas realizar regularmente, una tarea muy útil cuando queremos realizar backups.
Las opciones para empaquetar y desempaquetar con el comando tar son las siguiente:
Si queremos empaquetar usaremos:
tar -cvf dbigcloud.tar /directorio/
Si queremos desempaquetar usaremos:
tar -xvf dbigcloud.tar
Si lo unico que queremos es ver el contenido del paquete:
tar -tf dbigcloud.tar
Ahora llega el momento de comprimir dichos paquetes, podemos realizarlo con gz, bz2, zip... os vamos a explicar a usar los mas comunes.
Comprimir y descomprimir con ficheros gz:
Para comprimir usaremos el comando:
gzip -9 fichero
Para descomprimir usaremos:
gunzip dbigcloud.gz
Comprimir y descomprimir con ficheros bz:
Para comprimir usaremos el comando:
bzip fichero
Para descomprimir usaremos:
bzip2 -d dbigcloud.bz2
Comprimir y descomprimir con ficheros zip:
Para comprimir usaremos el comando:
zip dbigcloud.zip ficheros
Para descomprimir usaremos:
unzip dbigcloud.zip
Para ver el contenido usaremos:
unzip -v dbigcloud.zip
Podemos combinar el uso de tar con gz y bz2, para empaquetar/desempaquetar y comprimir/descomprimir.
Ficheros tar.gz
Empaquetar y comprimir:
tar -czfv dbigcloud.tar.gz ficheros
Desempaquetar y descomprimir:
tar -xzvf dbigcloud.tar.gz
Ver contenido:
tar -tzf dbigcloud.tar.gz
Ficheros tar.bz2
Empaquetar y comprimir:
tar -c ficheros | bzip2 > archivo.tar.bz2
Desempaquetar y descomprimir:
bzip2 -dc archivo.tar.bz2 | tar -xv
Ver contenido:
bzip2 -dc archivo.tar.bz2 | tar -t
Otra la posibilidad de empaquetar, comprimir es enviar el destino por red , lo podemos realizar de la siguiente forma:
Usando SSH
tar zcvf - /dbigcloud | ssh root@dbigcloud "; cat > /backup/dbigcloud.tar.gz"
Esta misma operación podemos realizarla con el comando rsync
rsync -z dbigcloud root@dbigcloud:/backup/
Estas dos últimas opciones son bastante útil en caso de querer realizar backups de ficheros/directorios y almacenarlos en un destino distinto al servidor donde se encuentran.
ACTUALIZACIÓN
Como hemos hablado anteriormente de backups, os voy a enseñar este truquillo si queries empaquetar un directorio y guardarlo por fecha.
tar -czvf "Backup_DBigCloud_"$(date +"%Y%m%d").tar.gz /ruta/dbigcloud/
Si añadimos esta linea al crontab cada X horas/dias se nos guardará un fichero llamado por ejemplo Backup_DBigCloud_200141003.tar.gz del contenido de /ruta/debigcloud asi podeis programar vuestras copias de seguridad de ficheros o directorios.