tar sobre ssh o casi cualquier cosa sobre ssh…

Y no sobre scp… bueno seguro muchos ya lo han visto alguna vez… para otros con los discos actuales, les parecera necia la idea, como tar y luego sobre red! por que mejor no un scp -r directo, bueno para empezar por que 1) scp no preserva los permisos de los archivos es decir si uno desde root en una maquina copia a otra con otro usuario va a terminar con todos los archivos con el dueño con su usuario 2) tar preserva los atributos de los archivos 3) aun existen discos pequeños donde no se puede hacer primero el tar y luego hacer scp

Bueno el clasico es:

tar cvf – /wwwdata | ssh usuario@mimaquina.algo «cat > /respaldo/wwwdata.tar»

Al cual podemos añadir compresión

tar cvf**z** – /wwwdata | ssh usuario@mimaquina.algo «cat > /respaldo/wwwdata.tgz»

Es mas si queremos y tenemos bzip2

tar cvf**j** – /wwwdata | ssh usuario@mimaquina.algo «cat > /respaldo/wwwdata.tar»

Total que aunque no uso mucho este me encontre ayer con la necesidad de mover unos dumps de unas bases de datos a una maquina con respaldo y sin la opcion de comprimir ni al vuelo, por que estaban en uso (exceso de carga en el cpu y cosas por el estilo), asi que si esto funciona con tar, tendria que funcionar com mysqldump o con pg_dump y si, totalmente funcionan y lo hacen muy bien

pg_dump db.enorme | ssh usuariomimaquina.algo «cat > /media/usb0/db.enorme.sql»
mysqldump -p db.enorme | ssh usuariomimaquina.algo «cat > /media/usb0/db.enorme.sql»

Nomas por claridad /media/usb0 es un disco externo :D por supuesto que nos va a pedir el password de nuestro usuario a menos que ya hayamos preparado un entorno de autentificación via llaves (del cual en algun otro momento escribi).

Como nota practicamente cualquier cosa que escupa al stdout puede ser «pipeada» via ssh a cualquier otra cosa… es decir la idea es la redireccion en este caso el truco lo hace el cat que lo avienta a un archivo en la otra maquina. Tambien como nota, en el caso del tar, comienza y despues pide el password en el caso de pg_dump imaginando que lo estan haciendo como el usuario postgres no requiere pass mas que de ssh, en el caso de mysql, el password y el usuario van a ser necesarios ponerlos en la linea de comando, etc. Como reminiscencia este hack se lo vi por primera vez a Gwolf aunque en su momento no le entendi bien como para que, tengo que reconocer que es muy bueno ;).

En fin… que no imagino como una de estas DB llego a 4.2GB, la ultima que vi mas grande que esa fue de BB y media 6.8GB.

Esta entrada fue publicada en Sin categoría. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.