Ссылки
Май 2012
Пн Вт Ср Чт Пт Сб Вс
« Окт    
 123456
78910111213
14151617181920
21222324252627
28293031  
Счётчик

PostHeaderIcon Монтирование ftp-серверов

Это возможно как в Linux, так и в Windows.
Как это сделать в виндах – расскажу чуть попозже, а в Linux нам поможет небольшая программа CurlFtpFS.

CurlFtpFS – утилита для монтирования удалённых FTP-хранилищ в локальную файловую систему. После монтирования мы можем оперировать с данными на сервере как с локальными, а все рутиные операции обмена файлами по протоколу FTP за нас будет делать утилита. Звучит неплохо, да?

Как установить

В пример буду приводить набирающую обороты Ubuntu, как систему для простых пользователей.
Набираем в консоли от имени суперпользователя:
apt-get install curlftpfs

Теперь нужно создать папку, куда будем монтировать FTP-хранилища. Предлагаю использовать /media, в этом случае они будут сразу отображаться в наутилусе:
mkdir /media/ftp

Чтобы не делать все операции от суперпользователя, добавим текущего юзера в группу fuse и установим нужные права на целевой каталог:
adduser имя_пользователя fuse
chgrp fuse /media/ftp
chmod g+w /media/ftp

Как использовать

curlftpfs ftp://[пользователь]:[пароль]@имя_сервера /media/ftp [опции]
или
curlftpfs имя_сервера /media/ftp -o user=пользователь:пароль [другие_опции]

мне второй вариант нравится больше.

Настраиваем кодировки

Не забываем, что многие сервера создаются для виндуз-пользователей. Встроенный в винду FTP-клиент знает только одну кодировку: windows-1251, и именно в этой кодировке подобный FTP-сервер будет передавать имена файлов.
Соответственно, так как у нас utf8, вместо русских имён мы увидим абракадабру. И наоборот: при создании файла с русским именем, абракадабру увидят виндуз-пользователи.

Чтобы этого избежать, дописываем в опции соединения: codepage=windows-1251 (указываем какая кодировка используется на сервере) и iocharset=utf8 (указываем какая кодировка у нас, можно не писать).
curlftpfs имя_сервера /media/ftp -o user=пользователь:пароль,codepage=windows-1251[,iocharset=utf8]

Или делаем то же, но используя модуль iconv, что правильнее:
curlftpfs имя_сервера /media/ftp -o user=пользователь:пароль,modules=iconv,from_code=CP1251,to_code=UTF8

Другие настройки

Лирическое отступление.

Мой местный интернет-провайдер держит анонимный FTP-сервер. Его поддерживают замечательные администраторы, он до сих пор не понимает маленькую букву «я» в названиях файлов. Но дело даже не в этом.

Скорость заливки/скачивания на этом сервере не ограничена. Но! При попытке открыть несколько FTP-сессий, скорость на несколько минут падает до нескольких килобайт в секунду. С учётом, что на дворе 21 век, 2010 год, параллельные вычисления и нанотехнологии, считаю такой подход замечательным.

Чтобы забыть про администраторов нетрадиционной сексуальной ориентации, можно использовать опцию -s при подключении curlftpfs. Она отключит многопоточные операции.
curlftpfs имя_сервера /media/ftp -o modules=iconv,from_code=CP1251,to_code=UTF8 -s

Автомонтирование при запуске

Для автомонтирования ресурса при каждом запуске, добавим следующую строчку в файл /etc/rc.local:
sudo -u пользователь curlftpfs [параметры_подключения]

где пользователь – имя локального пользователя, от которого запустится curlftpfs.
Отмонтируем
fusermount -u /media/ftp

От имени текущего пользователя. Или, если хочется поизвращаться, то от имени суперпользователя:
umount /media/ftp

Комментарии (2) на “Монтирование ftp-серверов”

  • virens пишет:

    Приветствую товарища-двойника :-)

    Статья интересная, но:
    1. в убунте рекомендуют (после дебиана, как обычно) aptitude;
    2. странно, вроде дебианщик, а про убунту…
    3. монтируют не сервера, а ftp-ресурсы, но это мелочи.

    Ну и традиционно зазываю в гости (в комментарии)

    С уважением,
    virens,
    Записки дебианщика

  • Wen пишет:

    Спасибо за статью очень помогла, но есть одно но, после
    “adduser имя_пользователя fuse
    chgrp fuse /media/ftp
    chmod g+w /media/ftp”
    надо перелогинится

Оставить комментарий