Linux: Download all file from ftp server recursively

by nixcraft · 7 comments

You can use ncftpget command to download entire ftp directory and sub directories from remote ftp server. Let us say you would like to download /www-data directory and all subdirectories inside this one from ftp.nixcraft.net server. You need to use ncftpget command.

Install ncftp client

ncftp client software can be downloaded from http://www.ncftp.com/ncftp/ and works with FreeBSD, Solaris and all most all UNIX variant. You can also run command as follows to install ncftp:
$ sudo apt-get install ncftp

FTP get directory recursively

ncftpget is Internet file transfer program for scripts and advance usage. You need to use command as follows:
$ ncftpget –R –v –u "ftpuser" ftp.nixcraft.net /home/vivek/backup /www-data
Where,

  • -R : Copy all subdirectories and files (recursive)
  • -v : Verbose i.e. display download activity and progess
  • -u "USERNAME" : FTP server username, if skipped ncftpget will try anonymous username
  • ftp.nixcraft.net : Ftp server name
  • /home/vivek/backup : Download everything to this directory
  • /www-data : Remote ftp directory you wish to copy

If you get an error which read as follows:

tar: End of archive volume 1 reached
tar: Sorry, unable to determine archive format.
Could not read directory listing data: Connection reset by peer

Then add –T option to ncftpget command:

$ ncftpget –T –R –v –u "ftpuser" ftp.nixcraft.net /home/vivek/backup /www-data

Where,

  • -T : Do not try to use TAR mode with Recursive mode

Featured Articles:

Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our daily email newsletter to make sure you don't miss a single tip/tricks. Subscribe to our weekly newsletter here!

{ 7 comments… read them below or add one }

1 haakondahl 11.27.07 at 4:30 pm

This is GREAT! I have been struggling with transferring files from multiple partitions on one machine to multiple partitions on another, so NFS doesn’t get it done no matter which isthe server of client. I am now using ProFTPd as a server, and ncftp as a client, and I am watching the partitions fill up as I expected, rather than as NFS and cp -vurf were getting it done.
Thank you for posting this fantastic guide!

2 Daniel 08.26.08 at 1:27 pm

Great. I’ve been trying to make a full copy of my ftp site for a backup.

3 Chris 03.06.09 at 4:09 pm

Thanks! needed to backup my site, and didn’t want to spend too much time writing a script…

4 nasser 05.13.09 at 8:58 pm

very nice guide.

I install ncftp client in CentOS and its work.

5 computerjan 06.09.09 at 10:04 am

Very useful guide !
I´m using it for my FTP-Server

6 Ravi 07.25.09 at 9:25 am

Hi Vivek,
Very nice and encourageing blog you have, it’s inspire to all of us, realy it works in all manner, I hope you could be feeling the same

Cheers
Go opensource……

Ravi Bhure

7 corky 01.02.10 at 9:09 am

This is great…except where the directory on the ftp happens to have a [ or ] character in it. A file in a directory your getting can have those characters, just not the directory you specify in the command :(
ncftpget will return the error “remote directory listing failed.”

Really unfortunate, this was *almost* the perfect solution for me.

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Previous post:

Next post: