FTP allows to download but also and upload files from a server. Alternatively rcp the remote copy could be used.
There are different ftp servers:
Apacheoffers also a ftp module.
emerge vsftpd to have a standalone ftp server can be installed by doing and is described in further detail.
Open and edit /etc/vsftpd/vsftpd.conf that holds
the configuration.
It can either be standalone and watch incoming ftp requests (listen=Yes) or using
xinetd for that (listen=No). Type man vsftpd.conf for help. There is a initscript rc-update add vsftpd default. Finally the directory shared by default and anonymous user is
~/ftp/ make sure the file system does also allow to access this
directory. The use of FTP to make such a directory easily usable and visible but hide the rest of the
computer with all unnecessary details for the up and download. In konqueror type
ftp://192.168.1.34/ and you will see the contents of
~/ftp (assuming the correct IP address is given).
There is also a log file: /var/log/vsftpd.log
To have a stand alone gui tool gftp
or FileZilla
Since upload can take a while check in FileZilla window Transfer Queue the Queued files.
Use mc with ftp link ftp://<username>:<password>@<url>
The nice thin is mc escapes the password but the not so nice thing is it looses it and next time asks for the password.
Or simply type in ftp://<Uri> into a browser.
lftp can be used to keep a remote in sync with local
lftp ftp://<username>:<password>@<url> -e "mirror -e --ignore-time -R <local dir><remote dir>; quit"
-e or --delete means delete remote files that are no more used
-R or --reverse means transfer is local to remote
lftp -c "open ftp://<username>:<password>@<url>; mirror /<remote dir><local dir>" downloads the changes on the remote content to the local content. -c <command> is an other way to call lftp
Unison could then be used to synchronize the <local dir> with some other local dir.
lftp -c "open ftp://<username>:<password>@<url>; mirror --delete --reverse /<local dir> /<remote dir>" then uploads the changes to the remote content.
Instead of dealing with an Ftp client curlftpfs mounts a Ftp server to the local filesystem where tools as unison can be used to sync.
to mount curlftpfs -o allow_other,user='anonymous:' ftp.gnu.org <mounting point>
to unmount fusermount -u <mounting point>
To mount as regular user (If the password has characters as $ ! then use the escape character as \$ or \!)
curlftpfs ftp://<url>/ <local dir>/ -o user=<username>:<password>,utf8
or as root
curlftpfs -o allow_other ftp://<username>:<password>@<Url><local dir>
to unmount fusermount -u <local dir>