- How to Mount Remote FTP server as folder on Linux and Auto Startup it
- Auto mount CurlFtpFS
- Mount ftp as directory linux
- Как в ubuntu (линукс) смонтировать FTP как локальную папку
- Монтирование FTP шары в Linux c использованием ftpfs
- Шаг 2. Подключение FTP
- Шаг 3. Автоматическое монтирование
- Шаг 4. Настройка Iptables
- Монтируем FTP ресурс как локальную FS
How to Mount Remote FTP server as folder on Linux and Auto Startup it
In few occasions I had to mount an FTP server as a folder on Linux and then auto mount it across reboot. In this blog, I will show you how to do that, and I am going to use CentOS 6 as my linux machine.
# Installing the CurlFtpFS package (need EPEL repo): yum install curlftpfs
# $ftphost = The FTP host # $mount = Mounted to folder # $user = FTP username # $pass = FTP password # Mount the CurlFtpFS curlftpfs $ftphost $mount -o user=$user:$pass,allow_other # Unmount the CurlFtpFS fusermount -u $mount
Auto mount CurlFtpFS
Creating the startup script:
Copy and paste this. Change the FTP credentials and mounted to folder.
#!/bin/sh # # Run-level Startup script for curlftpfs # # chkconfig: 345 91 19 # description: Startup/Shutdown the curlftpfs # FTP user, password, and host (you can specify the port also eg. ftp.example.com:2002) ftpUser=user ftpPass=password ftpHost=ftp.example.com # Mounted to folder mPath="/var/mounted/ftp" # Create the mounted to dir if doesn't exist if [ ! -d $mPath ]; then mkdir -p $mPath fi case "$1" in start) curlftpfs $ftpHost $mPath -o user=$ftpUser:$ftpPass,allow_other ;; stop) fusermount -u $mPath ;; reload|restart) $0 stop $0 start ;; *) echo "Usage: $0 start|stop|restart|reload" exit 1 esac exit 0
Make the startup script persistent across reboot.
# Start service mountftp start # Restart and reload service mountftp restart service mountftp reload # Stop service mountftp stop
Mount ftp as directory linux
Как в 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
Монтирование FTP шары в Linux c использованием ftpfs
Доступен в EPEL-репозитории. Начиная с версии CentOS 6.7 репозиторий вшит в ОС.
Шаг 2. Подключение FTP
На данном этапе создадим папку, куда будет монтироваться хранилище и подключим его.
Проверим успешное монтирование хранилища:
[root@test public_html]# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_root
8,9G 4,9G 3,6G 58% /
tmpfs 2,1G 0 2,1G 0% /dev/shm
/dev/sda1 500M 59M 415M 13% /boot
curlftpfs#ftp://testhost:[email protected]/
8,2T 0 8,2T 0% /home/ftp_share
Шаг 3. Автоматическое монтирование
Для автоматического монтирования хранилища при запуске системы, необходимо добавить строчку в /etc/fstab
curlftpfs#ftp://testhost:[email protected] /home/ftp_share fuse defaults 0 0
Шаг 4. Настройка Iptables
Если на сервере включен Firewall, необходимо прописать правила, позволяющие работать протоколу FTP как в активном, так и в пассивном режимах, для этого сначала загрузим модуль modprobe ip_conntrack_ftp , а затем добавим правила в таблицу:
iptables -A INPUT -p tcp -m tcp —dport 21 -m conntrack —ctstate ESTABLISHED -j ACCEPT -m comment —comment «Allow ftp connections on port 21»
iptables -A OUTPUT -p tcp -m tcp —dport 21 -m conntrack —ctstate NEW,ESTABLISHED -j ACCEPT -m comment —comment «Allow ftp connections on port 21»
iptables -A INPUT -p tcp -m tcp —dport 20 -m conntrack —ctstate ESTABLISHED,RELATED -j ACCEPT -m comment —comment «Allow ftp connections on port 20»
iptables -A OUTPUT -p tcp -m tcp —dport 20 -m conntrack —ctstate ESTABLISHED -j ACCEPT -m comment —comment «Allow ftp connections on port 20»
Монтируем 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 тогда и вышеуказанный метод на что-нибудь да сгодится.