- Монтируем FTP ресурс как локальную FS
- CurlFtpFS
- Installation
- Mount FTP folder as root
- Mount FTP folder as normal user
- Connect to encrypted server
- Troubleshooting
- Unable to access files with non percent-encoded characters in their filename
- Linux mount ftp folder
- Как в ubuntu (линукс) смонтировать FTP как локальную папку
- How to mount FTP share locally in Linux using ftpfs
- Installing curlftpfs on Ubuntu/Debian
- Installing curlftpfs Redhat/CentOS/Fedora
- Surendra Anne
- Latest posts by Surendra Anne (see all)
Монтируем FTP ресурс как локальную FS
Захотелось как-то исполнить команду find в ftp-пространстве, но любой нормальный ftp сервер этого не даст сделать, а решение ну очень хотелось найти.
Вот и был обнаружен curlftpfs:
$ aptitude show curlftpfs Пакет: curlftpfs Состояние: установлен Автоматически установлен: нет Версия: 0.9.2-1 Приоритет: необязательный Раздел: utils Сопровождающий: Ding Honghui Размер в распакованном виде: 111k Зависимости: libc6 (>= 2.7-1), libcurl3-gnutls (>= 7.16.2-1), libfuse2 (>= 2.6), libglib2.0-0 (>= 2.12.0), fuse-utils Описание: filesystem to access FTP hosts based on FUSE and cURL CurlFtpFS is a tool to mount FTP hosts as local directories. It connects to a FTP server and maps its directory structure to the local filesystem. Based on FUSE (filesystem in userspace) and the cURL library, CurlFtpFS has some features that distinguish it over other FTP filesystems: * support for SSLv3 and TLSv1 * connecting through tunneling HTTP proxies * automatic reconnection if the server times out * conversion of absolute symlinks to point back into the FTP filesystem Сайт: http://curlftpfs.sourceforge.net
С помощью этого замечательного средства можно выполнить практически любую операцию с ftp-ресурсом.
Для начала установим пакет:
$ sudo aptitude install curlftpfs
Затем подмонтируем интересующий нас ftp-ресурс:
$ mkdir temp-ftpfs $ curlftpfs ftp://$USER:$PASSWD@$HOST/ temp-ftpfs $ cd temp-ftpfs $ ls $ find / -name '*.txt'
А вот отномнтировать получится только с root’овыми правами:
$ sudo umount curlftpfs#ftp://$USER:$PASSWD@$HOST/
PS: Вольный перевод, с некоторыми дополнениями, статьи с Debian Administration.
ЗЫ: На мой взгляд удобнее использовать sshfs, но если нет доступа по ssh тогда и вышеуказанный метод на что-нибудь да сгодится.
CurlFtpFS
CurlFtpFS is a filesystem for accessing FTP hosts based on FUSE and libcurl.
Installation
Make sure the kernel module has been loaded.
Mount FTP folder as root
Create the mount point and then mount the FTP folder.
# mkdir /mnt/ftp # curlftpfs ftp.example.com /mnt/ftp/ -o user=username:password
If you want to give other (regular) users access right, use the allow_other option:
# curlftpfs ftp.example.com /mnt/ftp/ -o user=username:password,allow_other
Do not add space after the comma or the allow_other argument will not be recognized.
To use FTP in active mode add the option ftp_port=- :
# curlftpfs ftp.example.com /mnt/ftp/ -o user=username:password,allow_other,ftp_port=-
You can add this line to /etc/fstab to mount automatically.
curlftpfs#USER:PASSWORD@ftp.example.com /mnt/exampleorg fuse auto,user,uid=1000,allow_other,_netdev 0 0
Tip: You can use codepage when having problems with non-US English characters on servers that do not support UTF8, e.g. codepage=»iso8859-1″ .
To prevent the password to be shown in the process list, create a .netrc file in the home directory of the user running curlftpfs and chmod 600 with the following content:
machine ftp.example.com login username password mypassword
Mount FTP folder as normal user
You can also mount as normal user (always use the .netrc file for the credentials and ssl encryption!):
$ mkdir ~/example $ curlftpfs -o ssl,utf8 ftp://example.com/ ~/example
Error connecting to ftp: QUOT command failed with 500
then the server does not support the utf8 option. Leave it out and all will be fine.
Connect to encrypted server
In its default settings, CurlFtpFS will authenticate in cleartext when connecting to a non encrypted connection port. If the remote server is configured to refuse non encrypted authentication method / force encrypted authentication, CurlFtpFS will return a
# Error connecting to ftp: Access denied: 530
To authenticate to the ftp server using explicit encrypted authentication, you must specify the ssl option.
# curlftpfs ftp.example.com /mnt/ftp/ -o ssl,user=username:password
If your server uses a self-generated certificate not trusted by your computer, you can specify to ignore it
# curlftpfs ftp.example.com /mnt/ftp/ -o ssl,no_verify_peer,no_verify_hostname,user=username:password
For more details, see the curlftpfs(1) man page.
Troubleshooting
Unable to access files with non percent-encoded characters in their filename
This is a bug which has been initially reported in Launchpad bug 783033 in 2011 regarding paths with «#», confirmed in 2013 with no further activity. An upstream bug report links to a potential patch, which also fixes a breaking change in curl .
- This page was last edited on 22 April 2023, at 15:08.
- Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.
- Privacy policy
- About ArchWiki
- Disclaimers
Linux mount ftp folder
Как в ubuntu (линукс) смонтировать FTP как локальную папку
Монтируем ftp-сервер как локальную папку на вашем локальном компьютере под управлением операционной системы Linux
Для работы с файлами находящимися на FTP сервере как с локальными необходимо установиться программу CurlFtpFS.
CurlFtpFS — является инструмент для соединения FTP узлов как локальных директорий на вашем компьютере. Программа соединяется с FTP-сервером и отображает его директории в локальной файловой системе.
Установка CurlFtpFS.
# sudo aptitude install curlftpfs
Настраиваем CurlFtpFS для подключения к FTP:
# mkdir ftp_papka //Создаем папку
# curlftpfs ftp://$LOGIN:$PAROL@$HOST/ ftp_papka //Монтируем в эту папку наш FTP
# cd ftp_papka //Открываем папку
# ls //Смотрим содержимое
Для того что бы отмонтировать FTP папку необходимо внести команду
# fusermount -u ftp_papka
Для быстрого монтирования и отмонтирования можно на рабочем столе создать два ярлыка и прописать в них команды
для монтирования
curlftpfs ftp://$LOGIN:$PAROL@$HOST/ ftp_papka
и для отмонтирования
fusermount -u ftp_papka
У меня, когда я монтирую, появляется там же на рабочем столе значок my_ftp запустив который открывается содержимое моего FTP сервера.
Можно еще сделать что бы ваш FTP Монтировался как автоматически при загрузке системы. Для этого требуется отредактироваться файл /etc/fstab
curlftpfs#ftpUser:ftpPass@ftp://ftpHost /localDirectory fuse rw,uid=1000,umask=0777,user,suid,allow_other,exec,auto,utf8 0 1
В этой строчке надо заменить значения выделенные жирным шрифтом на свои.
- ftpUser — Имя пользователя для подключения к FTP.
- ftpPass — Пароль для подключения к FTP.
- ftpHost — Адрес сервера FTP (Он же хост).
- /localDirectory — Путь к папке, в которую будет монтироваться FTP (Предварительно создать папку).
Перезагрузить компьютер или запустить команду которая перемонтирует все диски
Еще можно сделать что бы ваш FTP-сервер монтировался при загрузке компьютера как диск.
Для Этого редактируем файл /etc/rc.local
Вставьте этот код, предварительно изменив в нём логин, пароль и хост для вашего FTP, аналогично примеру выше, перед строчкой «exit 0»:
sudo curlftpfs -o umask=0777,uid=1000,gid=1000,allow_other ftp://ftpUser:ftpPass@ftpHost /localdirectory
How to mount FTP share locally in Linux using ftpfs
Question: I want to transfer one latest file from my ftp server share and I want to automate this task through shell script to download latest file from my FTP server, And I don’t know what is the Operating System at server end(This is ultimate sentence I hear from the user today in my office 🙂 )?
Question: I want to write a script to login to FTP server and rename some files, how can I automate this?
Ans: With normal ftp client it’s bit difficult to automate this task using Shell or PERL script. There is a package called curlftpfs in Linux which mount our ftp server shared data as local machine. So on this mounted drive we will run our script to automate this task. What are the features this package can support extra when compared to normal ftp clients like filezilla and ftp commands?
1)SSL support
2)Connecting through tunnelling HTTP proxies
3)Automatically reconnecting if the server times out.
4)Can mount ftp server share as we do for Samba/NFS shares.
5)Automate ftp transfers.
Step 1: Installing package on Linux
Installing curlftpfs on Ubuntu/Debian
apt-get install curlftpfs
Installing curlftpfs Redhat/CentOS/Fedora
rpm -ivh fuse-curlftpfs-0.9.1-1.el5.rf.i386.rpm
Step 2: Once the package installed we have to create a mount point and mount our ftp server data using curlftpfs command, for which we must have ftp username/password. Here are my details..
My ftp User: surendra_a
My ftp password: redhat
My ftp Server: ftp2.linuxnix.com
My mount point: /ftpmount
Now create the mount point and mount ftp account data.
#mkdir /ftpmount
#curlftpfs -o allow_other surendra_a:redhat@ftp2.linuxnix.com /ftpmount
Here option allow_others 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. The remaining command is self explanatory.
Step 3: Testing our set-up
Check if you are able to see the ftp data
#cd /ftpmount
Sample output:
2010-08-16.txt common-auth-ubuntu fulll12.txt
What about df -hs command output?
Sample 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://surendra_a:redhat@ftp2.linuxnix.com/ 7.5T 0 7.5T 0% /ftpmount
Step 4: So what about mounting it permanently?. We can do it by editing fstab file in /etc folder
#vi /etc/fstab
go to last line and type below line
curlftpfs#ftp://surendra_a:redhat@ftp2.linuxnix.com/ /ftpmount fuse defaults 0 0
Let me explain what the above line indicates..
We are mentioning mount user surendra_a data which is on ftp2.linuxnix.com server on to /ftpmount using fuse file system with default settings.
Step 5: What about unmounting this drive?
#umount /ftpmount
Enjoy new learning of mounting ftp server. Stay tuned to my other post on how to mount sshfs file system locally.
Surendra Anne
Mr Surendra Anne is from Vijayawada, Andhra Pradesh, India. He is a Linux/Open source supporter who believes in Hard work, A down to earth person, Likes to share knowledge with others, Loves dogs, Likes photography. He works as Devops Engineer with Taggle systems, an IOT automatic water metering company, Sydney . You can contact him at surendra (@) linuxnix dot com.
Latest posts by Surendra Anne (see all)
- Docker: How to copy files to/from docker container — June 30, 2020
- Anisble: ERROR! unexpected parameter type in action: Fix — June 29, 2020
- FREE: JOIN OUR DEVOPS TELEGRAM GROUPS — August 2, 2019
- Review: Whizlabs Practice Tests for AWS Certified Solutions Architect Professional (CSAP) — August 27, 2018
- How to use ohai/chef-shell to get node attributes — July 19, 2018