Compresiones y transfererencia

Capítulo 4

1. Gestión de Archivos Comprimidos

Los archivos comprimidos son como cajas que almacenan múltiples archivos en un espacio reducido. En Linux, el comando tar es la herramienta principal para crear y gestionar estos “paquetes” de archivos.

Ejemplo Práctico:

  • Crear un archivo comprimido

    tar -czf backup.tar.gz /ruta/directorio
    • c: Crear nuevo archivo
    • z: Comprimir con gzip
    • f: Especificar nombre del archivo
  • Listar contenido del archivo tar

    tar -tvf backup.tar.gz
    • t: Mostrar contenido
    • v: Modo verbose (detallado)
    • f: Especificar archivo
  • Extraer archivos

    tar -xzf backup.tar.gz
    • x: Extraer contenido
    • z: Descomprimir archivo gzip
    • f: Especificar archivo a extraer

Existe otra opción para comprimir archivos con el comando zip:

  • Crear archivo

    zip -r backup.zip /ruta/directorio
    • -r: Incluir subdirectorios recursivamente
  • Listar contenido del archivo

    unzip -l backup.zip
    • -l: Listar contenido sin extraer
  • Extraer archivos

    unzip backup.zip
  • Extraer en directorio específico

    unzip backup.zip -d /ruta/destino
    • -d: Especificar directorio destino

2. Transferencia Segura de Archivos

La transferencia de archivos entre sistemas debe realizarse de forma segura para proteger la información. SSH proporciona herramientas como scp y sftp para esto.

El comando SCP sigue la siguiente estructura:

scp [origen] [destino]

  • origen: Ruta del archivo/directorio local o remoto
  • destino: Ruta donde se copiará el archivo/directorio

Casos de uso con SCP:

  • Local a Servidor Remoto:

    scp archivo.txt usuario@servidor:/destino/
  • Servidor Remoto a Local:

    scp usuario@servidor:/ruta/archivo.txt ./local/
  • Entre Servidores Remotos:

    scp usuario1@servidor1:/ruta/archivo.txt usuario2@servidor2:/destino/

Iniciar sesión SFTP

sftp usuario@servidor
  • Comandos básicos SFTP

    ls        # Listar archivos remotos
    pwd       # Mostrar directorio actual remoto
    lls       # Listar archivos locales
    lpwd      # Mostrar directorio actual local
    cd        # Cambiar directorio remoto
    lcd       # Cambiar directorio local
    get file  # Descargar archivo
    put file  # Subir archivo
    rm file   # Eliminar archivo remoto
    exit      # Salir de la sesión
  • Opciones Avanzados

    “-P puerto”: Especificar puerto diferente

    “-i key.pem”: Usar clave SSH específica

    “-v”: Modo verbose para depuración

3. Sincronización de Archivos

El comando rsync permite mantener sincronizados directorios entre diferentes sistemas, transfiriendo solo los cambios necesarios.

Ejemplo Práctico:

  • Sincronizar directorios localmente

    rsync -av /origen/ /destino/
    • a: Modo archivo (mantiene permisos)
    • v: Modo verbose
  • Sincronizar con servidor remoto

    rsync -avz /origen/ usuario@servidor:/destino/
    • z: Comprimir durante transferencia
  • Sincronizar manteniendo enlaces simbólicos

    rsync -avzL /origen/ /destino/
    • L: Seguir enlaces simbólicos

Opciones Avanzadas de rsync

Tabla 4.1: Opciones habilitadas con rsync

OpciónDescripción
-v, —verboseModo detallado
-a, —archiveModo archivo (preserva todo)
-z, —compressComprime durante transferencia
-PMuestra progreso
—deleteElimina archivos extra en destino

5. Tips y Mejores Prácticas

  • Usar compresión para archivos grandes en redes lentas
  • Verificar siempre el contenido después de transferencias
  • Mantener respaldos antes de sincronizaciones importantes
  • Usar modo dry-run (--dry-run) para probar antes de ejecutar
  • Documentar los procesos de transferencia