12 lftp Commands to Manage Files with Examples
Abstract: working local directory on client is ~/ftp. First command that we will try is uploading a file to ftp server 1. Put command This command takes one fil
Today we are going to install LFTP, which is a command line FTP client. LFTP supports many protocols in addition to FTP, such as HTTP, HTTPS, HFTP, FISH, FTPS and FXP. It supports mirroring directories and you can have commands entered in two modes.
LFTP works on command line shell or right from the bash shell. Bash shell is particularly useful if you are going to write a script that uses LFTP.
Setting up FTP serverSince LFTP is a FTP client, to work with it we would need to have some FTP server setup. So lets set up a basic FTP server that we will use for our demonstration of LFTP features. Simple ftp server in Ubuntu is vsftpd, and we are going to install it from repositories
Download Multiple Files (or ULRs) i...To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video
Download Multiple Files (or ULRs) in Parallel with Pythonsudo apt install vsftpd
After it is installed, we need to allow writting by users to the server. By default, FTP server is read only.
sed -i.orig 's/#write_enable=YES/write_enable=YES/g' /etc/vsftpd.conf
Since we changed config file we need to restart the server
systemctl restart vsftpd
Check status, to see if the server daemon is running
sudo systemctl status vsftpd
Using LFTP to connect to FTP server
Moving now to other computer, VM or server. The one where we will install LFTP and connect to FTP server. LFTP is as well present in Ubuntu repositories, so lets get it.
sudo apt-get install lftp
Before we connect to FTP server, lets make a directory from where we will connect
miki@ThinkPad-X220T:~$ mkdir ftp
miki@ThinkPad-X220T:~$ cd ftp/
and fill it with some files to work with
miki@ThinkPad-X220T:~/ftp$ touch test{1..9}
We can now use lftp to connect to the FTP server
lftp ftp://[email protected]
Password:
Enter the password of your user and you are in. Since I was in ftp dir when I made FTP connection, working local directory on client is ~/ftp. First command that we will try is uploading a file to ftp server
1. Put commandThis command takes one file from local directory and uploads it to server. We will upload file test1.
lftp [email protected]:~> put test1
2. List contents of remote directory
We can check what have been done with ls command.
lftp [email protected]:~> ls
-rw------- 1 1000 1000 0 Dec 01 12:13 test1
We see that file have been copied to FTP server.
3. Reverse mirroring of directoryIf we want to mirror the entire directory to the server, we will use reverse mirror command.
lftp [email protected]:~> mirror -R
This will copy our local directory contents to the server. The opposite process is without -R
. When we are not adding any paths to files, current local and remote directories are used. That is in our case ~/ftp and ~/.
The local directory can be changed with lcd command
lftp [email protected]:~> lcd /home/miki/Videos/
lcd ok, local cwd=/home/miki/Videos
5. Print local working directory
You can check what is your local working directory with lpwd command
lftp [email protected]:~> lpwd
/home/miki/Videos
6. Resuming mirroring after interruption
LFTP allows resumption of the file transfer if it is interrupted. After the interruption, you continue by repeating the command with adding -c
flag, which means continuation.
^C Interrupt
lftp [email protected]:~> mirror -R -c
7. Downloading the file from ftp server
Downloading files from remote directory to local directory is done with pget command
lftp [email protected]:~> pget ubuntu-16.04.1-server-amd64.iso
8. Mirroring from the server to the local directory
We earlier show how to do the opposite, now we use mirror command to get data pulled from the server
mirror
It is simple, just mirror.
9. Mirroring with arbitrary directoriesYou can also mirror with the data that is not in working local directory, for example with such command:
mirror . /home/miki/Videos/
This will pull data from servers working directory (the . is first path so it is current dir) to the ~/Videos on our local machine. It doesn't matter if we did not use lcd to move to ~/Vidoes, the pull will work.
10. Exiting the shellThe command for exiting the lftp shell is bye. This is important if you are going to script the lftp operations.
11. Using LFTP commands as part of the scriptAfter we exited the LFTP lets see how we can use above commands without logging onto ftp server. That way you can embed it into bash script.
miki@ThinkPad-X220T:~$ lftp -e 'mirror /home/miki/ /home/miki/Videos/' -u miki,password ftp://192.168.122.65
12. Mirroring the site
The lftp can use HTTP protocol as well, which makes it suitable for downloading normal website.
miki@ThinkPad-X220T:~$ lftp -e "mirror -c" http://linoxide.com/
Conclusion
We have gone through all the needed commands to successfully use LFTP. You can use it for many tasks, such as sharing files on your two computers, backing up your server periodically or backing up some internet site you like. This is all for this tutorial, thank you for reading and have a nice day.