Sometimes we get into situations where we need to remotely transfer a file. This file could be large or it could be tiny. This file may be sensitive or could be of little importance. Regardless, sending this file over to a remote location could still have its challenges. What if the file is coming from a headless server? Perhaps you have some logs that you want to inspect on your local machine instead of parsing through them remotely in an ssh session. This is where magic-wormhole comes into play.
brew install magic-wormhole
sudo apt install magic-wormhole
To send a file, you simply use the wormhole command and specify which file you wish to send.
➜ ~ wormhole send server.log Sending 1.1 GB file named 'server.log' Wormhole code is: 5-hydraulic-snowslide On the other computer, please run: wormhole receive 5-hydraulic-snowslide
Now that we have specified which file we want to send, we've been provided with a "wormhole code" that we can use on the receiving end.
wormhole receive 5-hydraulic-snowslide
And that's all we have to do! On the receiving computer, we've downloaded the requested file! In the past, I would have used
ftp but remembering the syntax, while isn't too difficult, can prove to be challenging at times especially if nonstandard ports are used or if ports aren't opened up on the firewall to make the connection.
➜ ~ wormhole receive 5-hydraulic-snowslide Receiving file (1.1 GB) into: server.log ok? (y/N): y Receiving (->tcp:some-external-ip:65250).. 80%|█████████████████▏ | 859M/1.07G [00:04<00:01, 206MB/s]