Search notes:

lftp

lftp is an FTP, FTPS, HTTP, HTTPS, HFTP, FISH, SFT client

Putting and renaming a file

A file can be put and renamed in one step with the -o option:
put local-file.name -o remote-name-of.file

Using the star to reference multiple file

A command (like rm) can be prepended with glob which will expand the star to matching file names:
glob rm *
However, in order to use globbing with put, the standard(?) mput command should be used.

Mirroring from one server to another

lftp is useful because it has a mirror command to download or update a whole directory tree. With -R, this mirror mechanism is reversed: it uploads or updates a directory tree on a server.

Local files to remote ftp server

The following mirrors the tree structure under the local current directory to the remote current directory (which, after cd is httpdocs/path/to/directory).
The -R stands for reverse so that files are put rather than get.
$ lftp ftp.host.xyz
cd httpdocs/path/to/directory
mirror -R

Upload only files that are not present on the server

mirror -R --only-missing

Keeping file permissions

In order to retain file permissions, apparently, --no-umask should be applied when downloading and --perms when uploading. (or --no-perms?).
But it does not really work.
Better was to temporarly execute umask 000 before downloading.

Cache

Apparently, lftp likes to cache the remote content of a directory. So, the output of ls won't change when some other process adds or removes a remote file.
The cache of lftp can be flushed, however:
cache flush
ls will then retrieve an updated directory content.

Problems

Fatal error: Certificate verification: certificate common name doesn't match requested host name: Adding set ssl:verify-certificate false to ~/.lftprc seemed to help.

Startup files

~/.lftprc
~/.netrc

See also

tools

Index

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php:78 Stack trace: #0 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(78): PDOStatement->execute(Array) #1 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(30): insert_webrequest_('/notes/tools/lf...', 1759562209, '216.73.216.149', 'Mozilla/5.0 App...', NULL) #2 /home/httpd/vhosts/renenyffenegger.ch/httpsdocs/notes/tools/lftp(109): insert_webrequest() #3 {main} thrown in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php on line 78