Recently one user asked me one question, How I can transfer one latest file from ftp server and I also want to automate this task using shell script to download latest file from ftp server is this possible?
Answer: It is difficult to automate this task using shell or Perl script in normal ftp client. We can use curlftps in Linux to mount our ftp server share data on local system. Than after mounting directory we can run script to automate this task.
- It support SSL
- Connect through tunnelling HTTP proxies
- Reconnect automatically if server went time out
- Mount same as Samba and NFS share
- Automate ftp transfers
Now Follow the below steps to install and configure curlftps.
Step #1: Install Curlftps package on Linux
On CentOS/Redhat/Fedora System
# yum install curlftps
Or If above command not work install it from rpm package.
# rpm -ivh fuse-curlftpfs-0.9.1-1.el5.rf.i386.rpm
On Ubuntu/Debian System
$ apt-get install curlftpfs
Step #2: After package installed create mount point and mount ftp server data using curlftps command, to do this we have ftp username and password. In my example:
FTP User : sagar FTP Password : [email protected] FTP Server : ftp.looklinux.com Mount Point : /ftpmount
Now we will create the mount point and mount ftp account data on it.
# mkdir /ftpmount # curlftpfs -o allow_other sagar:[email protected]@ftp2.looklinux.com /ftpmount
Above command is self explanatory and allow_others option is used to Allow Access to other users. By default the mount point is only accessible to the user who mounted it and not even to root user.
Step #3: Now test our set-up
Follow the below command to see the ftp data.
# cd /ftpmount # ls
You will get some output like below.
2017-03-02.txt mytestfile.txt common data
And with df -hs command output.
Filesystem Size Used Avail Use% Mounted on /dev/sda1 23G 5.4G 17G 25% / none 1.5G 300K 1.5G 1% /dev none 1.5G 2.9M 1.5G 1% /dev/shm none 1.5G 128K 1.5G 1% /var/run none 1.5G 0 1.5G 0% /var/lock /dev/sda7 404G 88G 296G 23% /data /dev/sda5 23G 10G 12G 46% /home /dev/sr0 3.2G 3.2G 0 100% /media/My Disc curlftpfs#ftp://sagar:[email protected]@ftp2.looklinux.com/ 6.5T 0 6.5T 0% /ftpmount
If everything looks good mount it permanently.
Step #4: Mount curlftps data permanently by editing “/etc/fstab” file.
# vim /etc/fstab
Add below line at the end of file.
curlftpfs#ftp://sagar:[email protected]@ftp.looklinux.com/ /ftpmount fuse defaults 0 0
Above we are mounting user sagar data which is on ftp.looklinux.com server on to /ftpmount using fuse file system with its default settings.
Step #5: Un-mount curlftps data.
Follow the below command to unmount it.
# umount /ftpmount
I hope this article will help you to mount ftp share data on your local Linux system. If you have any queries and problem please comment in comment section.