Blog

How To mirror or migrate a website from one server to another using lftp

Tags: lftpmirroringwebsite migration

Published on: May 22, 2010 by George K.

How To mirror or migrate a website from one server to another using lftp

Scenario:

In website migration services, we often need to migrate websites using LFTP. Let us see what is mean by LFTP and how this can be used to migrate websites.

lftp

LFTP – (Leech File Transfer Protocol or is it Lukyanov File Transfer Protocol ? ) is a very powerful shell-like command line ftp client. Besides FTP, it also supports FTPS, HTTP, HTTPS, HFTP, FISH, and SFTP by specifying the desired protocol in a location URL. One feature which is especially handy is support for FXP i.e. data transfers between two FTP servers, bypassing the client machine. It even support torrent protocol. Cool isn’t it ?

Every operation in lftp is reliable, that is any non  fatal error is ignored and the operation is repeated. So if downloading breaks, it will be restarted from the point automatically. lftp will try to retrieve the file from the very beginning until the file is transferred completely.

You can install lftp  using any of the common methods like yum, apt-get or rpm. If you are a geek, likes to compile from source and prefer latest versions , then you should get it from http://lftp.yar.ru/get.html

Establishing connection

Establishing connection to the server / site is quite simple as in the case of ftp.

For  anonymous connections,

#lftp ftpsite

Eg : lftp 192.168.1.52
lftp 192.168.1.52:~>

here you will get the exact prompt as of  lftp and you may feel that you logged into the server without providing any login info . But  lftp isn’t actually connected to the server. There’s no need to connect until you actually send a request.  Suppose if I try to send request to the server using the command ‘ls’ , then only the lftp try to connect to the server.

The syntax for LFTP is

lftp -u username,password -p [portno] ftpsite

If FTP runs on default port you can omit the  switch “p”

Mirror a directory

lftp has built-in mirror which can download or update a whole directory tree. There is also reverse mirror (mirror -R) which uploads or updates a directory tree on server. Mirror can also synchronize directories between two remote servers, using FXP if available.

The format of the command is

mirror path/to/source_directory  path/to/target_directory

Or you can use the following format without  login to the server.

lftp -u username ,password -e "mirror  –verbose path/to/source_directory path/to/target_directory”  ftpsite

Eg: To synchronize  /home/user/public_html  to “backup” folder  in your machine

log into the server using lftp and then execute the command

192.168.1.52:~>  mirror /home/user/public_html   /backup/

The mirror command  has a set of switches, which  can be used  to control the synchronization process.

--delete –   used to delete the files in the local folder that are not present in the remote directory

--only-newer — option to download only newer files

--exclude – is to specify which files and directories to skip during synchronization.

lftp stays connected and runs the specified commands if you specify the switch “-e” .

So a  command with all these  switches will look like the following one

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

Reverse mirror ( local directory  to FTP server)

If you want to synchronize local directory  to FTP server, ie upload the directory tree in your machine to the server, we can use the –reverse switch. Here the command will look like

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.

You can use our website migration services for getting assistance on website migration.

Category : General, Howtos, Linux

George K.

George K.

George started his career in web hosting and Linux technical support in the year 2004 and is with SupportSages since 2009. He has keen interest in server optimizations, custom security solutions, hacked server recovery, cyber forensic and high availability fail over system design and implementation. George loves long drives and is passionate about art and literature.

You may also read:

Comments

Add new commentSIGN IN

Let's Connect

Get new updates

Categories

$0.000 items