#4sysadmins

Inicio » Comandos para agrupar archivos y realizar copias de seguridad

Comandos para agrupar archivos y realizar copias de seguridad

tar : Agrupar varios archivos en uno solo (empaquetar).

tar [opciones] archivo.tar <archivos_a_empaquetar>

Opciones:

  • crear un archivo tar: -c
  • El siguiente parámetro será el nombre del archivo tar: -f
  • Extraer archivos de un paquete tar: -x (–extract, –get)
  • Añadir nuevos archivos a un paquete tar: -r (–append)
  • Añadir archivos que ya se encuentran en el paquete, solo que estos a añadir son versiones posteriores: -u (–update)
  • Añadir un archivo tar al final de otro archivo tar: -A
  • Desplegar el contenido de un archivo tar: -t
  • Comparar un archivo con los archivos del disco: -d (–diff, –compare)
  • Pasar a un directorio X antes de desomprimir el paquete: -C
  • Crear una copia incremental: -g
  • Conservar la información de protección: -p
  • Enumerar los archivos léidos o extraídos: -v
  • Excluir un archivo del paquete tar: –exclude <archivo>
  • Comprime un paquete .tar con gzip: -z (–gzip o –ungzip)
  • Comprime un paquete .tar con bzip2: -j (algunas versiones utilizan I o y)
  • Comprime un paquete .tar con xz: -J (–xz)
  • Crear archivo tar de varios volúmenes o partes (junto a -c): M
  • Hacer que tar se comporte de forma interactiva: -w
  • Verificar los archivos después de haber sido añadidos al archivo tar: -W

Algunos ejemplos:

  • Descomprimir un paquete tar comprimido con gzip, conservando sus permisos, en un directorio diferente de donde se encuentra el paquete:
$tar -xpvzf paquete.tar.gz -C /otro/directorio/
  • Empaquetar un paquete comprimiéndolo con xz y excluyendo archivos mediante un patrón:
$tar -cpvJf todos-menos2.tar.xz ./* --exclude=*.txt

cpio : Similar a tar. Ambos comandos fueron creados para realizar copias de seguridad, aunque su funcionamiento difiere en algunos aspectos. Vamos a repasar algunos  y opciones de cpio.

Opciones:

  • Crear un nuevo archivo: -o (output)
  • Extraer desde un archivo: -i (input)
  • Copiar una estructura de directorios: -p (copypass)
  • Reiniciar el tiempo de acceso de los archivos una vez copiados: -a
  • Preservar tiempos de modificación (usado con -i): -m
  • Crear directorios en caso de que hiciesen falta (usado con -o y -i): -d
  • Especificar un archivo que contiene un patrón (usado con -i): -e
  • Listar el contenido de un archivo (usado con -i): -t
  • Solo escribe archivos existentes: -u

Copy-Out:

  • Crear copia de seguridad de todo el contenido del Escritorio, sin comprimir o comprimido (respectivamente):
$ find /home/user/desktop/ | cpio -o > /tmp/miescritorio.cpio
$ find /home/user/desktop/ | cpio -o | gzip /tmp/miescritorio.cpio.gz

Copy-In:

  • Restablecer el contenido de la copia de seguridad anteriormente creada:
$ cpio -i < /tmp/miescritorio.cpio
  • ó solo un archivo:
$ cpio -i solo-este-archivo < /tmp/miescritorio.cpio

Copy-Pass:

  • Copiar el árbol de directorio completo (comenzando desde el directorio en el que nos encontramos) en el directorio /tmp de nuestro equipo:
$ find . -depth -print | cpio -pvd /mnt/destino
  • Crear un backup de /home, /usr y /opt en una cinta:
$find /home /opt /usr -xdev | cpio -oF /dev/st0

dd : Copia archivos. Es usado para copiar particiones completas o incluso clonar discos. Vamos a estudiar este comando mediante ejemplos:

Sintaxis: dd if=origen of=destino

  • Clonar disco duro sda en sdb:
$ sudo dd if=/dev/sda of=/dev/sdb bs=1M
  • Podemos clonar solo los sectores legibles:
$ sudo dd if=/dev/sda of=/dev/sdb bs=1M conv=noerror,sync
  • Copiar un disco completo a la primera partición del disco sdb
$ sudo dd if=/dev/sda of=/dev/sdb1 bs=1M
  • Crear una imágen de un disco duro o CD
$ sudo dd if=/dev/sda of=/home/syu/sda.[bin|iso]
$ sudo dd if=/dev/cdrom of=/home/syu/myCDRROM.iso
  • Rellenar un disco o partición con 0, es decir elimina su contenido:
$ sudo dd if=/dev/zero of=/dev/sda[X]
  • Para borrar solo el primer sector:
$ sudo dd if=/dev/zero of=/dev/sda count=1 bs=512
  • Para eliminar el cargador de arranque, pero no la tabla de particiones:
$ sudo dd if=/dev/zero of=/dev/hda count=1 bs=446
  • Respaldar el sector de arranque (MBR):
$ sudo dd if=/dev/sda of=/home/syu/Desktop/mbr.backup count=1 bs=512
$ sudo dd if=/home/syu/Desktop/mbr.backup of=/dev/sda
  • Crear un archivo de swap sin espacios vacíos:
$ dd if=/dev/zero of=/extra-swap bs=1024 count=1024

El tamaño conviene que sea un múltiplo de 4, debido a que el kernel escribe páginas de
memoria (memory pages), de 4 kb de tamaño. Si el tamaño no es múltiplo de 4 los últimos kilobytes del
archivo pueden ser desperdiciados. Podríamos haber indicado una velocidad mayor como de bs=4k.

Expliquemos las opciones aquí mencionadas y algunas otras:

  • ibs: Lee N bytes del archivo de origen
  • obs: Escribe N bytes en el archivo destino
  • bs: Se usa para indicar un mismo tamaño para ibs y obs. Es la ‘velocidad’ de lectura/escritura. Si bs=4k se leerá/escribirá en bloques de 4Kb. A mas velocidad menos seguro será el tratamiento de la información.
  • count: Es el tamaño a copiar. Para el ejemplo de la memoria swap. Se creará una partición de 1GB
  • skip: Se salta N bloques del archivo origen antes realizar la operación de copiado. El tamaño es dado por bs o ibs
  • seek: Se salta N bloques del archivo destino antes realizar la operación de copiado. El tamaño del bloque es indicado por bs o obs.
  • conv=modo,[modo2,…]: Realiza conversiones o acciones. Se pueden pasar varios parámetros separados por ‘,’. Por ejemplo conv=noerror,sync

Modos:

  • noerror: No se detiene el proceso ante errores de lectura en el origen
  • sync: Rellena cada bloque leído con ceros
  • ascii: Convierte los caracteres a ascii
  • lcase: Convierte caracteres a minúsculas
  • ucase: Convierte caracteres a mayúsculas
  • notrunc: No se trunca el archivo utilizado como destino

2 comentarios

  1. […] Importante: Podemos aprender mas sobre las herramientas de compresión (gzip, bzip2 y xz) aquí o incluso si queremos extender el conocimiento con mas opciones útiles de este comando, existe una página “man” de este comando en este mismo blog. […]

    Me gusta

  2. […] Página ‘man tar‘ en 4sysadmins (blog de nebul4ck) […]

    Me gusta

Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: