Softpanorama
(slightly skeptical) Open Source Software Educational Society

May the source be with you, but remember the KISS principle ;-)

Google   


Softpanorama FTP Protocol and Clients Evaluation Page

News

Recommended Links Books FTP Protocol FAQs Clients for Windows

Ftp Filesystems

NetDrive Mirroring Tools FTP Security FTP over weak links Command line controlled FTP clients
wu-ftpd pure-ftpd FTP by mail Web publishing Humor Etc

As for the FTP servers WU-FTP seems to be the king of the hill among free implementations.

For clients the main tendency is to incorporate FTP functionality into a regular file manager or a regular WEB browser.  But the most revolutionary technology is to create FTP filesystem. The first vendor that accomplish this was Southrivertech  with its amazing WebDrive  product that is known mainly via Novell rebranded free (for Netware and iFolder users) Netdrive. That can be done in several ways:

As for traditional command line clients (if you still need any ;-) in Unix  NCFTP might be not a bad idea. NCFTP has almost everything you always wanted to see with ftp. Includes NcFTPPut and NcFTPGet, which support FTP for shell scripts. Source code is available.

Clients for windows are discussed in a separate page

Dr. Nikolai Bezroukov



Notes:
  • Those pages are written by people for whom English is not a native language. Some amount of grammar and spelling errors should be expected.
  • This is a Spartan WHYFF (We Help You For Free) site. It cannot replace the best teachers and the best books.
  • The site contain some obsolete pages as it develops like a living tree... Some links on older pages are broken. Please try to use Google, Open directory, etc. to find a replacement link (see HOWTO search the WEB for details). We would appreciate if you can mail us a correct link.

Search Amazon by keywords:

Google   
Open directory

Research Index

 

Old News ;-)

[Jan 28, 2008] lftp 3.6.3 by Alexander V. Lukyanov

Most mirroring program like wget support ftp

About: lftp is a sophisticated command line based file transfer program. Supported protocols include FTP, HTTP, SFTP, and FISH. It has a multithreaded design allowing you to issue and execute multiple commands simultaneously or in the background. It also features mirroring capabilities and will reconnect and continue transfers in the event of a disconnection. Also, if you quit the program while transfers are still in progress, it will switch to nohup mode and finish the transfers in the background. Additional protocols supported: FTP over HTTP proxy, HTTPS and FTP over SSL. There are lots of tunable parameters, including rate limitation, number of connections limitation and more.

Changes: The sftp:use-full-path setting was added. sftp FSETSTAT is not used when it is not needed. The sftp:charset and fish:charset settings were fixed. URL escapes are not decoded in get/put when no URL schema is used. Counting of file removal errors in mirror was fixed. A 2-byte buffer overflow when showing transfer percents was fixed. A problem with incorrect port/host name in HTTP requests was fixed. Some core dumps were fixed. Compilation on some systems was fixed.

[Dec 04, 2007] CLI Magic Quick and easy backup with lftp by Dmitri Popov

wget has similar functionality and is more versatile (can use HTTP).
December 04 Linux.com

No matter what Linux distribution you are using, chances are you'll find more than one graphical FTP client in its repositories, but if you are looking for a powerful command-line FTP tool, your best bet is lftp. Of course, you can always use the good old ftp command, but lftp takes the task of managing files and directories using the FTP protocol to a new level. To see what I mean, let's use lftp to write a script that creates a local backup copy of a Web site.


To write the script, you need to know how to use lftp to connect to an FTP server and synchronize a remote directory with a local one. If your FTP server supports anonymous connections, you can connect to it using the simple command lftp ftpsite. If the server requires a user name and password, the connection command would look like lftp -u username,password ftpsite.

To synchronize a remote directory with a folder on your hard disk, lftp utilizes the mirror command. Used without switches, this command syncs the current local and remote directories. You can also specify explicitly the source and target directories:

mirror path/to/source_directory path/to/target_directory

The mirror command offers a comprehensive set of switches, which you can use to control the synchronization process. For example, used with the --delete switch, the mirror command deletes the files in the local folder that are not present in the remote directory, while the --only-newer option forces lftp to download only newer files. Another handy switch is --exclude; it allows you to specify which files and directories to skip during synchronization. And if you prefer to keep an eye on the syncing process, you can use the --verbose switch.

Typing all those switches every time you want to synchronize two directories can be a bit of a bother. Fortunately, lftp understands complex commands that can perform several actions in one fell swoop. All you have to do is to use the -e switch, so lftp stays connected and runs the specified commands:

lftp -u username,password -e "mirror --delete --only-newer --verbose path/to/source_directory path/to/target_directory" ftpsite

Using this command, lftp connects to the FTP server using the provided credentials, and then runs the command(s) in the quotes. You can save the entire command in a text file, then run it by pointing lftp to it using the -f switch:

lftp -f /home/user/ftpscript.txt

lftp has a few other clever tricks up its sleeve. The at switch can come in handy when you want to run the backup at a specific time. The following command, for example, runs at midnight:

lftp at 00:00 -u username,password -e "mirror --delete --only-newer --verbose path/to/source_directory path/to/target_directory" ftpsite &

Notice the ampersand, which sends the command to the background so you don't have to keep the terminal window open.

Now you know how to create local backup of files and directories stored on an FTP server. But how do you restore the data if disaster strikes? Quite easily, actually. All you have to do is to add the --reverse switch to the mirror command:

lftp -u username,password -e "mirror --reverse --delete --only-newer --verbose path/to/source_directory path/to/target_directory" ftpsite

As the name suggests, the switch reverses the source and target directories, so lftp uploads files from the local directory to the remote FTP server.

That's all there is to it. Check lftp's man pages to get an overview of lftp's other useful options, and start FTPing like a pro.
 

Dmitri Popov is a freelance writer whose articles have appeared in Russian, British, US, German, and Danish computer magazines.

[Apr 22, 2006]  FTP Client supporting SFTP and WebDAV Support SFTP.

BitKinex integrates the functionality of an innovative FTP, SFTP and WebDAV client for Windows. In addition to features found in other popular FTP programs (like support for the SSL/SSH, multipart and multithreaded transfers, remote edit or FXP) our FTP client introduces several unique approaches and solutions like:

[Mar 14, 2006] Linux.com Upload directories recursively with NcFTP

wget has similar functionality and is more versatile (can use HTTP).

I recently had to upload some content to a Web site, and the only access available was via FTP. I needed an FTP client capable of uploading a directory structure recursively. I found what I needed in an application called NcFTP.

I started by looking into Mozilla Firefox, but to my surprise, Firefox supports only FTP downloads, not uploads. Mozilla, on the other hand, does support uploads, but it can upload only one file at a time.

Next, I turned to command-line FTP clients. Again, the standard FTP command doesn't support recursive directory upload. Fortunately, many graphical and command-line FTP clients do, including NcFTP, yafc, and LFTP. I picked NcFTP.

After installing the software, connect to your host anonymously by entering the ncftp command followed by the hostname:

ncftp ftp.somedomain.com

or if you need to log in with a valid username, use the -u and -p parameters:

ncftp -u username -p password ftp.somedomain.com

A successful connection puts you in an NcFTP shell. If you've used the standard FTP command before, you should feel right at home here. I'll presume you're familiar with basic FTP commands such as dir and cd. You can use the lls and the lcd commands to list and navigate the local working directory.

NcFTP supports autocompletion for both commands and filenames. For instance, you can type in the first few characters of a filename and then press Tab to fill in the rest of the name automatically.

Recall that my main goal was to upload a directory structure. Use the put -R command to do a recursive directory upload:

ncftp /path > put -R somedir

Standard FTP also supports a put command, but it's limited to uploading single files.

Similarly, you can download a directory recursively using the NcFTP get -R command:

ncftp /path > get -R somedir

More handy features

If you FTP to the same sites regularly, you can save time by using NcFTP's bookmark feature. Bookmarks store the connection information, including the username, the password, the hostname, and the target directory location.

To create a bookmark on a particular directory location, first navigate to that directory and then enter the bookmark command followed by a name to identify the bookmark. For example, type these commands to bookmark /path/somedir and name it topsecret:

ncftp /path > cd somedir
ncftp /path/somedir > bookmark topsecret

A bookmark editor lets you open, edit, delete, replicate, and add bookmarks. Invoke the editor by entering the bookmarks command with no parameters:

ncftp /path > bookmarks

Once you create a bookmark, you can connect to the corresponding host and directory quickly by using the bookmark name. Login is automatic because the bookmark stores the username and password.

For instance, you can connect using a bookmark named topsecret by entering this command in the Linux shell:

ncftp topsecret

Alternatively, you can open a connection while inside the NcFTP shell:

ncftp> open topsecret

Wrapping it up

File Transfer Protocol (FTP) was once a commonly used method for transferring files over the Internet, but recent security concerns have lessened its use in favor of the more secure SSH File Transfer Protocol (SFTP) or Secure Copy (SCP). Nevertheless, FTP may be the only access available to you on occasion.

NcFTP is loaded with useful features. I've touched on only the basics. If you ever require an FTP client more powerful than the standard FTP command, consider NcFTP.

freshmeat.net Project details for NetFTPServer

Net::FTPServer is a full-featured, secure, extensible, and highly configurable FTP server which can serve files from a standard file system or a relational database. It is written in Perl, which provides natural protection against buffer overflows. It has feature parity with popular C-based servers such as wu-ftpd. The server offers virtual hosts (IP-based and experimental IP-less). It is configurable in Perl, for both small Perl "hacks" in the configuration file all the way up to complete server "personalities". It supports the latest RFCs and Internet Drafts. Authentication may be done through /etc/passwd, PAM or an authentication plug-in. Resource limits are supported. The server may run standalone or from inetd. chroot() jails are supported along with sophisticated programmable access control rules. All aspects of server use and configuration are comprehensively documented in a manual running to some 50 pages.

Linux Today - Linux Journal Configuring and Using an FTP Proxy Squid as FTP proxy

gFTP Official Homepage by Brian Masney

About: gFTP is a multithreaded FTP client for X Windows written using GTK+. It features simultaneous downloads, resuming of interrupted file transfers, FTP, HTTP, and SSH protocols, file transfer queues, downloading of entire directories, FTP and HTTP proxy support, remote directory caching, passive and non-passive file transfers, drag-n-drop support, a very nice connection manager, and more.

Changes: Lots of small bug fixes and translations updates.

[Oct 14, 2000] TheLinuxGurus.org: Automating FTP: Part two

"A few weeks ago I wrote an article on how to automate FTP via the .netrc file. ... Because the volume of mail was so high I decided to write a second part to the article to detail two other ways to automate FTP. ...for more complex tasks, or tasks needing greater error checking and flexibility you will probably want to use one of the methods outlined below."

[Jul 28th 2000] Web-FTP 1.3.0ant <ant at suave.net>

web-FTP is a lightweight Perl/CGI FTP client that can provide quick, easy, and (with an SSL-enhanced Web server) more secure access to your FTP server. Designed with file management in mind, it supports uploads, downloads, and all the usual tasks. No spool directories are used; file transfers are relayed directly from the server to the client and vice versa. It can also serve as an FTP client, allowing FTP access to clients behind a firewall.

Changes: A simple file editor and viewer, simple permissions editing, a fix for a bug that made the whole file get cached before downloading (bad for large files), and other numerous bugfixes.

[Mar 20, 2000] LinuxHelp.net: ProFTPd Setup Guide

 "ProFTPd is a nice alternative to the wu-ftpd server, which normally ships as the default FTP server with Linux. The thing I enjoy about ProFTPd is the simple configuration file (/etc/proftpd.conf) that allows you to fully customize your FTP server."

Linux Today - New Proftpd Guide by Vince

"Well today I decided to write up a guide on proftpd installation and configuration, after answering many questions on mailing lists, I decided that it was time for a guide."

For a full guide listing, goto the Lansystems.com Howto page.

WebDrive FTP Client Software by RiverFront Software -- a revolutionary FTP client. Highly recommended. Shareware $39.

WebDrive is a Windows 95/98 FTP software client  that allows you to map an Internet FTP site to a local drive utilizing the standard FTP protocol. This enables you to connect to an FTP site and perform familiar file operations like copy, xcopy, and directory functions with the Windows explorer,  a DOS box, or any other application like Microsoft Word, Excel, etc. WebDrive instantly FTP enables any application that reads or writes files by allowing the application to read files from or write files to the FTP site.

Until now, in order to upload or download files from an FTP site, you needed to run a client FTP utility that presented a user interface to manually select the files to transfer. The WebDrive FTP client makes the FTP site an extension of the file system which enables you to use any application to upload or download files to the FTP site transparently.  For more details, click here


Recommended Links

Open directory:  Clients- FTP

Open directory: Servers- FTP

Linux.DaveCentral.com FTP Shareware, Freeware, Demos and Betas

DaveCentral Windows FTP - Clients, Page 1

 THE FREEWARE PUBLISHING SITE FTP CLIENTS

SoftSeek.com - Download Managers, Shareware and Freeware

TUCOWS Search of FTP

Jumbo: FTP Clients

FileFarm: FTP Clients

Software Blast: FTP Clients

FTP Clients by Rating - CWSApps


FTP Protocol


FAQs


Servers other then WU-FTP

LinuxHelp.net: ProFTPd Setup Guide

(Mar 20, 2000, 06:45 UTC) (Posted by marty) (0 talkbacks posted) (1211 reads)
"ProFTPd is a nice alternative to the wu-ftpd server, which normally ships as the default FTP server with Linux. The thing I enjoy about ProFTPd is the simple configuration file (/etc/proftpd.conf) that allows you to fully customize your FTP server."

About ProFTPD -- GNU ftpd daemon

WU-ftpd

NcFTPd Resource Center -- NcFTPd is a high-performance File Transfer Protocol (FTP) server for UNIX systems, designed especially for high-traffic sites and internet service providers.

RiverFront Software - Developers of WebDrive FTP Software

FTP servers for Win95/NT


Clients for Unix

NFTP - Text-mode FTP client for OS/2, Windows, Linux, FreeBSD, SPARC Solaris, and BeOS Intel. Offers many keystroke shortcuts for frequently-used commands. Quasi-GUI version available for OS/2.

IglooFTP - FTP client for Linux which makes full use of the GTK+ library. Intuitive for novices to learn and use, yet offers features such as drag and drop, URL clipboard monitoring, and remote directory caching.



Web publishing

siteupdater --Crystal SiteUpdater maintains files and folders on your site, by using conventional FTP. It transfers new or updated files, and also recreates entire folder structures on the remote site, removes old files and old folder

WebDrive - A network redirector for Windows that makes an FTP site look like a network drive. This provides access to FTP servers from any application in Windows.

WholeSite FTP - FTP tool designed for web publishing. Updates a site with a single click, sending only new or modified files. Public domain software, source code is available.

Uploader - Simple FTP uploading utility designed for quick updates of web sites. Supports drag-and-drop. No download support.

NetLoad - Directory mirroring program. Automatically updates a directory on an FTP server to match the local directory, including new files, modified files, and deleted files.


FTP over weak links


Copyright © 1996-2007 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

Standard disclaimer: The statements, views and opinions presented on this web page are those of the author and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Bullet Proof FTP -- designed specifically to keep your transfers flowing despite weak links but cannot beat Net Vampire. For FTP looks like obsolete as WebDrive FTP solved all this problems in a more elegant way.

***** Net Vampire -- From: Alex Shovkoplyas This program is not a simple FTP client -- it is fully automatic FTP and HTTP file downloader. It will start at the time you specify and make as many attempts to download the file as you request. Net Vampire resumes broken connections and restarts downloads at the current position for both FTP and Web servers. To start file retrieval, just drag and drop a URL from your browser. Net Vampire provides flexible job scheduling, dialup control and support for many proxy types, including Socks. You can use multiple downloading locations for the file and switch among them on the fly. In addition to performing real-time testing, Net Vampire collects long-term site statistics, which further helps you to choose the best file location. A built-in search engine can find files on both FTP and HTTP servers. Net Vampire can list FTP directories and extract links from the downloaded HTML pages. All found links can be added to the main Job List. On job completion, Net Vampire can run a virus checker, open the received file, disconnect the modem, or shut down the computer. A detailed session log, data flow histogram, and many configurable options make download troubleshooting easier.


Command line controlled FTP clients

Most mirroring program like wget support ftp

[Jan 28, 2008] lftp 3.6.3 by Alexander V. Lukyanov

About: lftp is a sophisticated command line based file transfer program. Supported protocols include FTP, HTTP, SFTP, and FISH. It has a multithreaded design allowing you to issue and execute multiple commands simultaneously or in the background. It also features mirroring capabilities and will reconnect and continue transfers in the event of a disconnection. Also, if you quit the program while transfers are still in progress, it will switch to nohup mode and finish the transfers in the background. Additional protocols supported: FTP over HTTP proxy, HTTPS and FTP over SSL. There are lots of tunable parameters, including rate limitation, number of connections limitation and more.

Changes: The sftp:use-full-path setting was added. sftp FSETSTAT is not used when it is not needed. The sftp:charset and fish:charset settings were fixed. URL escapes are not decoded in get/put when no URL schema is used. Counting of file removal errors in mirror was fixed. A 2-byte buffer overflow when showing transfer percents was fixed. A problem with incorrect port/host name in HTTP requests was fixed. Some core dumps were fixed. Compilation on some systems was fixed.

 

Catfood Software - Catfood FTP

Catfood FTP is a 32-bit console application for Windows 95, 98 and NT. CFTP is not interactive, it just uploads and downloads files. File type is determined automatically so your HTML is sent in ACSII mode and you images in BINARY.

The server must be specified using the -s switch (i.e. "-s ftp.myhost.com"). All other switches are optional.

Specify a local path using -l. This path may be absolute or relative. CFTP will recurse all subfolders. The default local path is the current folder.

Specify the remote path using -r. This can also be absolute or relative. Be careful using an absolute path as the folder you are logged in to is probably not at the root of the remote filesystem. The default is the remote log in folder.

Use -u and -p to specify your username and password. The default is anonymous transfer.

Finally, to download rather than upload specify -g.

FTP by mail

FTPmail- FTP by email


Vincent Cate


Copyright © 1996-2007 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

Standard disclaimer: The statements, views and opinions presented on this web page are those of the author and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Last Modified: February 28, 2008