Diferencia entre revisiones de «Netcat»
(→Backup remoto) |
m |
||
(No se muestran 10 ediciones intermedias realizadas por 2 usuarios) | |||
Línea 1: | Línea 1: | ||
− | + | '''Netcat''' (abreviado '''nc''') es una sencilla herramienta de Unix que lee y escribe datos a través de conexiones de red mediante los protocolos TCP o UDP. Está diseñada para ser un "motor" confiable que puede usarse directamente o manejarse fácilmente mediante otros programas o guiones (scripts). Al mismo tiempo es una herramienta rica en características para la exploración y depuración de redes, dado que puede crear casi cualquier tipo de conexión que pudiese necesitar y tiene muchas capacidades interesantes integradas. | |
+ | |||
+ | |||
+ | {{Nota|In more recent versions of Netcat, the sintaxis should be nc -l 5555 (without the -p parameter.}} | ||
+ | |||
Cosas curiosas que puede hacer: | Cosas curiosas que puede hacer: | ||
Línea 13: | Línea 17: | ||
CLIENTE: $ cat entrada.txt | gzip | nc remote.host 5555 -q 0 | CLIENTE: $ cat entrada.txt | gzip | nc remote.host 5555 -q 0 | ||
− | == | + | == Copia de seguridad remota == |
− | Ya que sabemos como funciona esta herramienta, podemos ir un paso más allá y hacer un | + | Ya que sabemos como funciona esta herramienta, podemos ir un paso más allá y hacer un copia de seguridad remota. En la máquina servidora escribimos: |
$ netcat -l -p 3333 -v > backup.tgz | $ netcat -l -p 3333 -v > backup.tgz | ||
Línea 21: | Línea 25: | ||
Y el cliente: | Y el cliente: | ||
− | $ tar - | + | $ tar -czvpf - /path/to/files | netcat -q 0 remote.host 3333 |
Para hacer una copia en plan bestia de todo el sistema puedes hacer: | Para hacer una copia en plan bestia de todo el sistema puedes hacer: | ||
− | $ | + | $ tar -cjvpf - / --exclude /proc --exclude /dev --exclude /sys --exclude /tmp | netcat -q 0 remote.host 3333 |
+ | |||
+ | Y en la parte cliente: | ||
+ | |||
+ | $ netcat -l -p 3333 -v > backup.tar.bz2 | ||
+ | |||
+ | Excluiremos la información inherente creada de forma dinámica sobre la máquina, sus proceso y dispositivos. Es recomendable parar antes todos los servicios para estar seguro de tener los últimos datos. Sobre todo las bases de datos, servidores de correo y FTP. Si tenemos acceso físico a la máquina podemos ponerla en single-user mode: | ||
+ | |||
+ | $ telinit 1 | ||
+ | |||
+ | Y si queremos hacerlo en plan raw, haremos una copia de toda una partición: | ||
+ | |||
+ | $ dd if=/dev/sda1 conv=noerror,sync | gzip | netcat -q 0 remote.host 3333 | ||
+ | |||
+ | Y en la parte cliente: | ||
+ | |||
+ | $ nc -l -p 3333 -v > dev_sda1.gz | ||
+ | |||
+ | Para restaurarla bastaría con: | ||
+ | |||
+ | $ gzip -dc dev_sda1.gz | dd of=/dev/sda1 | ||
== Enlaces externos == | == Enlaces externos == | ||
+ | |||
* [http://www.linuca.org/body.phtml?nIdNoticia=276 Netcat o nc] {{es}} | * [http://www.linuca.org/body.phtml?nIdNoticia=276 Netcat o nc] {{es}} | ||
* [http://blog.unlugarenelmundo.es/2006/10/05/transferencia-de-ficheros-con-netcat-o-ssh/ Transferencia de ficheros con netcat o ssh] {{es}} | * [http://blog.unlugarenelmundo.es/2006/10/05/transferencia-de-ficheros-con-netcat-o-ssh/ Transferencia de ficheros con netcat o ssh] {{es}} |
Última revisión de 08:50 13 oct 2010
Netcat (abreviado nc) es una sencilla herramienta de Unix que lee y escribe datos a través de conexiones de red mediante los protocolos TCP o UDP. Está diseñada para ser un "motor" confiable que puede usarse directamente o manejarse fácilmente mediante otros programas o guiones (scripts). Al mismo tiempo es una herramienta rica en características para la exploración y depuración de redes, dado que puede crear casi cualquier tipo de conexión que pudiese necesitar y tiene muchas capacidades interesantes integradas.
In more recent versions of Netcat, the sintaxis should be nc -l 5555 (without the -p parameter. |
Cosas curiosas que puede hacer:
- Enviar un fichero entre dos máquinas:
SERVIDOR: $ nc -l -p 5555 > salida.txt CLIENTE: $ nc remote.host 5555 -q 0 < entrada.txt
- Enviar un fichero comprimido entre dos máquinas:
SERVIDOR: $ nc -l -p 5555 | gunzip > salida.txt CLIENTE: $ cat entrada.txt | gzip | nc remote.host 5555 -q 0
Copia de seguridad remota
Ya que sabemos como funciona esta herramienta, podemos ir un paso más allá y hacer un copia de seguridad remota. En la máquina servidora escribimos:
$ netcat -l -p 3333 -v > backup.tgz
Y el cliente:
$ tar -czvpf - /path/to/files | netcat -q 0 remote.host 3333
Para hacer una copia en plan bestia de todo el sistema puedes hacer:
$ tar -cjvpf - / --exclude /proc --exclude /dev --exclude /sys --exclude /tmp | netcat -q 0 remote.host 3333
Y en la parte cliente:
$ netcat -l -p 3333 -v > backup.tar.bz2
Excluiremos la información inherente creada de forma dinámica sobre la máquina, sus proceso y dispositivos. Es recomendable parar antes todos los servicios para estar seguro de tener los últimos datos. Sobre todo las bases de datos, servidores de correo y FTP. Si tenemos acceso físico a la máquina podemos ponerla en single-user mode:
$ telinit 1
Y si queremos hacerlo en plan raw, haremos una copia de toda una partición:
$ dd if=/dev/sda1 conv=noerror,sync | gzip | netcat -q 0 remote.host 3333
Y en la parte cliente:
$ nc -l -p 3333 -v > dev_sda1.gz
Para restaurarla bastaría con:
$ gzip -dc dev_sda1.gz | dd of=/dev/sda1
Enlaces externos
- Netcat o nc (en español)
- Transferencia de ficheros con netcat o ssh (en español)
- CLI Magic: netcat (en inglés)
- Using Netcat for Backup (en inglés)