Problem: you have two hosts that you can access but there is no mechanism
to transfer files between them - no ssh(scp/sftp), no ftp etc.
How to do it ?!
Solution: use nc and tar/dd/echo ...
# transfer by tar of a directory |destination_host| |source_host| nc -l 9000 | tar xvf - tar cvf - /my_dir | nc destination_host 9000 # we listen on all interfaces # we tar my_dir to STDOUT(-) and all is piped to # on port 9000, all that comes in # nc that will connect on destination_host on port 9000 # is piped to tar xvf (will extract) # and will transfer what ever is given # - means take the STDIN
# transfer by dd of a partition /dev/sda3 |destination_host| |source_host| nc -l 9000 | dd of=/backup_device dd if=/dev/sda3 | nc destination_host 9000 # we listen on all interfaces # we dd in /dev/sda3 (reading) all is piped to # on port 9000, all that comes in # nc that will connect on destination_host on port 9000 # is piped to dd and dd will write it # and will transfer what ever is given # all to /backup_device
As you can see this becomes very useful because you can open the destination port as you need it
and even transfer from a block device as /dev/sda3 in the example. Once the transfer is done
on the destination host nc stops to listen for the port you asked(there is a switch to make it
to continue listening -k, this won't work -l however).
0 comments:
Post a Comment