Cómo utilizar el comando tar a través de la red a través de una sesión SSH

¿Cómo puedo utilizar el comando tar sobre una sesión ssh segura que se ejecuta en sistemas Linux o Unix?

La versión GNU de la utilidad de archivado de tar (y otra versión antigua de tar) puede utilizarse a través de la red a través de la sesión ssh. No utilice el comando telnet, es inseguro. Puede usar canalizaciones Unix/Linux para crear archivos.

Veamos algunos ejemplos de cómo usar el comando tar sobre ssh de forma segura para crear archivos en sistemas Linux o Unix.

Sintaxis

La sintaxis es la siguiente para ssh  y ejecutar el comando tar:

ssh user@box tar czf - /dir1/ > /destination/file.tar.gz

O

ssh user@box tar czf - /dir1/ > /destination/file.tar.g

Las siguientes intrucciones hacen copias de seguridad del directorio /wwwdata al host server.ejemplo.com (IP: 192.168.0.100 sobre una sesión ssh.

# tar zcvf - /wwwdata | ssh root@ejemplo.com "cat > /backup/wwwdata.tar.gz"

O

# tar zcvf - /wwwdata | ssh root@192.168.0.100 "cat > /backup/wwwdata.tar.gz" 

Ejemplo de salida:

tar: Removing leading `/' from member names
/wwwdata/
/wwwdata/n1/dagorret.com.ar/
/wwwdata/n2/dagorret.net/
....
..
...
Password: 

La primera unidad de cinta SCSI predeterminada en Linux es /dev/st0. Puede leer más acerca de la convención de nomenclatura de unidades de cinta utilizada en Linux aquí. También puede utilizar el comando dd para mayor claridad:

# tar cvzf - /wwwdata | ssh root@192.168.0.100" dd of=/backup/wwwdata.tar.gz"

También es posible descargar copia de seguridad en un dispositivo de cinta remoto:

# tar cvzf - /wwwdata | ssh root@192.168.0.100 "cat > /dev/nst0"

O puede usar mt para rebobinar la cinta y luego volcado con el comando cat:

# tar cvzf - /wwwdata | ssh root@192.168.0.100 $(mt -f /dev/nst0 rewind; cat > /dev/nst0)$

Puede restaurar la copia de seguridad de tar en la sesión ssh:

# cd /
# ssh root@192.168.0.100 "cat /backup/wwwdata.tar.gz" | tar zxvf - 

Si desea utilizar el comando anterior en el cron o scripts, considere utilizar las claves SSH para deshacerse de las contraseñas.

Algunos ejemplos más:

$ tar cvjf - * | ssh user@backupbox "(cd /dest/; tar xjf -)"
$ tar cvzf - mydir/ | ssh user@backupbox "cat > /backups/myfile.tgz"
$ tar cvzf - /var/www/html | ssh user@server1.dagorret.com.ar "dd of=/backups/www.tar.gz"
$ ssh vivek@box2 "cat /backups/www.tar.gz" | tar xvzf -
$ tar cvjf - * | ssh root@home.nas01 "(cd /dest/; tar xjf - )"

Puede leer los manuales de los comandos tar y ssh para obtener más información:

$ man tar
$ man bash
$ man ssh
Avatar
Carlos Dagorret
CTO Facultad de Ciencias Económicas

My research interests include distributed robotics, mobile computing and programmable matter.

Relacionado

comments powered by Disqus