Серверна - робота з ftp як з локальної папкою

Це можливо як в Linux, так і в Windows.
Як це зробити в винда - розповім трохи пізніше. а в Linux нам допоможе невелика програма CurlFtpFS.

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

Як встановити

У приклад буду приводити набирає обертів Ubuntu, як систему для простих користувачів.
Набираємо в консолі від імені суперкористувача:

apt-get install curlftpfs

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

Щоб не робити всі операції від суперкористувача, додамо поточного користувача в групу 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-сервер. Його підтримують чудові адміністратори, він до цих пір не розуміє маленьку букву «я» в назвах файлів. Але справа навіть не в цьому.

Щоб забути про адміністраторів нетрадиційної сексуальної орієнтації, можна використовувати опцію -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

Від імені поточного користувача. Або, якщо хочеться поізвращаться, то від імені суперкористувача:

Після монтування виконайте команду df, о жах - за замовчуванням в таблиці монтування
ім'я файлової системи присвоюється такого вигляду:

Опція fsname = допоможе приховати ці дані.

Логін і пароль засвічуються тільки в тому випадку, якщо писати їх в URI для підключення.
Якщо передати їх опціями (-o user = login: password), то все буде добре.

Автоматизувати введення пароля можна через стандартний

/.netrc файл (man netrc):

machine ftp.test.ru
login логін
password пароль

Автомонтірованіе через fstab:

curlftpfs # ftp.host.com / mnt / host fuse rw, uid = 500, user, noauto 0 0

Порада: Перед зміною / etc / fstab - проведіть монтування вручну, після чого виконайте команду mount (або cat / etc / mtab).
Джерело та призначення монтування треба буде внести в fstab відповідно до цього висновку, з точністю до символу.

Корисні опції:
noauto - НЕ монтувати при завантаженні;
uid = # - ідентифікатор власника (кому потрібно заходити на подмонтіровать ресурс);
_netdev - вказівка, що ресурс мережевий.

дайте ваш рада з реалізації синхронізації двох папок в Убунту, з автозапуском цієї самої синхронізації при зміні (або при якомусь іншому умови) будь-якого вмісту в цих папках, причому в двосторонньому напрямку.
Шукав програму яка могла б це робити але так і не знайшов нічого підходящого для себе (з огляду на те що на лінукс пересів тиждень тому, консольні програми для мене ще поки як тропічні ліси амазонки, хоча за інструкцією іноді виходить).
Здійсненне це завдання?

Завдання здійсненне. У Линух як у ОС нездійсненних завдань взагалі, по-моєму, немає. Більш того, одну і ту ж задачу можна вирішити величезною кількістю способів. Іноді це вганяє в ступор, не знаєш що вибрати.

Консоль - одна з переваг системи. Всі операції бажано робити в ній, навіть якщо спочатку важко, складно і незрозуміло. З досвідом все швидко прийде.
До кожної консольної утиліти є інструкція, з якою потрібно детально ознайомитися. Викликається за допомогою [man команда]. Найчастіше на пташиному англійською мовою, але багато і на російській, тобто, питань з розумінням виникнути не повинно.

У неї є графічна морда: grsync.
Морда, він же фронтенд, це графічна оболонка для консольної утиліти. Дозволяє визначити установки з графіки, висновок інформації робить в графіку, але по суті являє собою всього лише надбудову над основною (консольної) програмою.
apt-get install grsync досить, він поставить разом з собою і сам rsync.

Якщо потрібно засунути завдання в планувальник, можна поступити наступним чином: зробити настройки в графіку, підглянути сформований рядок запуску rsync і кинути її в crontab.

Ну, це якщо так, коротко і відразу.

а що робити якщо disk на ftp сервері fat32?

Не зрозумів. А яка різниця, яка ФС на серверному диску? Хочеться пригод - нехай буде FAT32.

При запиті файлу по FTP команда надходить FTP-сервера, який являє собою демон. Демон запросить файл у операційної системи, на якій він обертається. І тільки ОС звернеться до файлу безпосередньо, через драйвер відповідної ФС.

Таким чином, FTP-сервера глибоко насрати на те, в яку файлову систему відформатований диск. Він тупо не працює з файлами на цьому рівні.

Вітаю, зауважив, що не відразу з'являються файли після скидання їх в папку з боку ФТП, тобто в примонтировать папці їх не видно деякий час, я так зрозумів, що від розміру залежить. отмонтірованіе і прімонтірованіе нічёго не дають, є якийсь ключ робить оновлення файлів в папці?

Вітаю, зауважив, що не відразу з'являються файли після скидання їх в папку з боку ФТП, тобто в примонтировать папці їх не видно деякий час, я так зрозумів, що від розміру залежить. отмонтірованіе і прімонтірованіе нічёго не дають, є якийсь ключ робить оновлення файлів в папці?

Схожі статті