Question: I have a 38GB "Moodle" tar file that I need to transfer from the old server (Shared hosting), which we can call "Server A" to the new server (Dedicated virtual), or "Server B". I'm with Mediatemple if that helps.

I've already tarballed the directory and used wget to transfer it to server B via SSH, however - it's a puny 100GB package and I'm at 96% disk capacity - meaning I cannot untar the file on server B! Is there any way I can transfer this huge file from Server A to Server B, preserving permissions and with least possible chance file corruption, which will not make me hit the disk limit?

While I have spent quite a while doing this so far, I would be willing to abandon my original plan if someone can offer a better idea - and I would be very grateful!

Answer: 
Don't tar. Use `rsync -av` to preserve permissions while transfering the files. Though like tar, this does not preserve selinux context. Not that I would consider that important though.
You probably want to buy more disk space, but assuming you don't, you could...

pipe the tarball around rather than downloading it.

```
newserver#  ssh olduser@oldserver "cat /path/to/tarball" | tar xf -

```

---

or if you don't have SSH access to your old server

```
newserver# wget -O - http://oldserver/path/to/tarball | tar xf -

```

---

or [use rsync like Dennis said](https://serverfault.com/a/526343/32986).

Be creative. There are other solutions I'm not mentioning.