FTP is the File Transfer Protocol. FTP support is provided using the github.com/jlaffaye/ftp package.
Here is an example of making an FTP configuration. First run
This will guide you through an interactive setup process. An FTP remote only
needs a host together with and a username and a password. With anonymous FTP
server, you will need to use
anonymous as username and your email address as
No remotes found - make a new one n) New remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config n/r/c/s/q> n name> remote Type of storage to configure. Enter a string value. Press Enter for the default (""). Choose a number from below, or type in your own value [snip] XX / FTP Connection \ "ftp" [snip] Storage> ftp ** See help for ftp backend at: https://rclone.org/ftp/ ** FTP host to connect to Enter a string value. Press Enter for the default (""). Choose a number from below, or type in your own value 1 / Connect to ftp.example.com \ "ftp.example.com" host> ftp.example.com FTP username, leave blank for current username, ncw Enter a string value. Press Enter for the default (""). user> FTP port, leave blank to use default (21) Enter a string value. Press Enter for the default (""). port> FTP password y) Yes type in my own password g) Generate random password y/g> y Enter the password: password: Confirm the password: password: Use FTP over TLS (Implicit) Enter a boolean value (true or false). Press Enter for the default ("false"). tls> Remote config -------------------- [remote] type = ftp host = ftp.example.com pass = *** ENCRYPTED *** -------------------- y) Yes this is OK e) Edit this remote d) Delete this remote y/e/d> y
This remote is called
remote and can now be used like this
See all directories in the home directory
rclone lsd remote:
Make a new directory
rclone mkdir remote:path/to/directory
List the contents of a directory
rclone ls remote:path/to/directory
/home/local/directory to the remote directory, deleting any
excess files in the directory.
rclone sync /home/local/directory remote:directory
FTP does not support modified times. Any times you see on the server will be time of upload.
FTP does not support any checksums.
In addition to the default restricted characters set the following characters are also replaced:
File names can also not end with the following characters. These only get replaced if they are last character in the name:
Note that not all FTP servers can have all characters in file names, for example:
|FTP Server||Forbidden characters|
FTP supports implicit FTP over TLS servers (FTPS). This has to be enabled
in the config for the remote. The default FTPS port is
990 so the
port will likely have to be explictly set in the config for the remote.
Here are the standard options specific to ftp (FTP Connection).
FTP host to connect to
FTP username, leave blank for current username, $USER
FTP port, leave blank to use default (21)
Use FTP over TLS (Implicit)
Here are the advanced options specific to ftp (FTP Connection).
Maximum number of FTP simultaneous connections, 0 for unlimited
Do not verify the TLS certificate of the server
Disable using EPSV even if server advertises support
Note that since FTP isn’t HTTP based the following flags don’t work
--timeout isn’t supported (but
--bind isn’t supported.
FTP could support server side move but doesn’t yet.
Note that the ftp backend does not support the
Note that while implicit FTP over TLS is supported, explicit FTP over TLS is not.