Automount afuse

Automount afuse +22

  • 11.02.17 3:09 •
  • Hubbitus •
  • # 321 636 •
  • Хабрахабр •
  • 28 •
  • 6000

- такий же як Forbes, тільки краще.

Я хотів розповісти про своє відкриття afuse - автомонтірованіе файлових систем на вимогу, автоматично. Хіба не чудово просто зробити:


І відразу побачити файли web-сервера, що не встановлюючи з ним з'єднання спеціально? Я цим користуюся вже давно, а головне:

  • Це працює з будь-якого джерела: Не важливо, робите ви зазначений висновок в консолі, зберегли посилання в MC або переходите з favorites вашого улюбленого менеджера такого як nautilus або dolphin
  • Ви можете переходити на будь-який хост, куди у вас є доступ по ключам (налаштувати запит пароля теж можна, але це не цікаво)
  • Ви можете запросто вказати під яким користувачем входити на сервер, використовуючи @:

Що це і навіщо


Використовуватися це може з різними системам, але зручніше за все звичайно з sshfs. Думаю з нею багато хто мав справу, це дійсно зручно, але якщо потрібно походити по віддаленій файлової системи, кожен раз доводиться її монтувати:


Це стає вкрай утомливо коли ви працюєте з сотнею віддалених серверів, особливо коли вам це потрібно наприклад, щоб швиденько перекинути маленький конфиг-файл з одного віддаленого сервера на інший (а качати великі файли по sshfs і не дуже ефективно, краще використовувати rsync або bbcp) .

Afuse проект з відкритим вихідним кодом і сам є fuse файлової системою. Він доступний для більшості сучасних дистрибутивів.

Ми ж, щоб не повторюватися, підемо трохи далі.

Єдине хотілося зауважити що для дистрибутивів, що базуються на RPM (Fedora, CentOS, RHEL, Scientific Linux ...) вам буде потрібно використовувати yum / dnf:


Використовуйте yum замість dnf на старіших системах, таких як CentOS.

Налаштування же ключів, хостів і опцій монтування навряд чи буде сильно відрізнятися, для тонкощів завжди можна звернутися до манула.

Afuse automount


Вважаю що ви вже погралися і вам сподобалося монтування sshfs нальоту. Ось тільки у вищезгаданій статті вказано ну дуже кривою спосіб монтування самого afuse. Вважаю що у вас теж залишився осад: «Як же так, файлову систему, монтуються інші файлові системи, потрібно кожен раз монтувати вручну !?»

Саме так як це зробити я і хотів поділитися.

Насправді, всі механізми вже є в системі. Так, раз afuse сама є файлової системою, то чому б не монтувати її стандартним чином з / etc / fstab !?

В принципі це дуже навіть можливо, однак немає прямого способу передати стільки бажаних аргументів.

Тому передбачається створити скрипт-обгортку /usr/sbin/mount.afuse (виклав також як gist кому так зручніше, там же є більш докладний опис його) приблизно такого змісту:


Не забуваємо зробити його виконуваним:

Тепер ми готові додати нову системну точку монтування в / etc / fstab:

Все, з цього моменту, навіть після перезавантаження системи afuse примонтировать, а всі з'єднання з віддаленими хостами будуть відновлені автоматично, якщо якісь програми працювали з віддаленими файлами за такими шляхами. Чи не буде помилок що щось поза зоною досяжності.

Зрозуміло точку монтування ви можете змінити за своїм бажанням, може щось типу / remote. Не забудьте тільки створити директорію.

Поясніть, які проблеми можуть виникнути, якщо, наприклад, буде втрачено зв'язок з віддаленим хостом, e; примонтировать, і як розвиток ситуації, на якому є відкриті файли і йде читання / запис. І якщо причиною буде не мережа а проблеми з віддаленим сервером (перезапуск)?
Чи коректно буде відновлена ​​зв'язок або точка монтування зависне?

Я пам'ятаю в мене зі звичайним nfs проблеми були, навіть -o soft не допомагало. (Точніше допомагало, але як то дивно і вимагало закриття всіх додатків, що використовують точку монтрованія і перемонтрованія)

Але якщо повернутися до питання як воно буде себе вести, то при переході в цю директорію команда просто підвисне. У моєму прикладі використовується опція "-o reconnect", відповідно sshfs буде постійно намагатися переконнектіться, і зробить це як тільки хост стане доступний, тобто ви побачите просто затримку. Якщо ж хост став повністю недоступний, ви можете просто вбити відповідний sshs процес за допомогою kill. Ну і отмонтировать конкретну директорію: fusermount -u somehost

До речі, замість використання sshfs ви цілком можете використовувати автомаонтірованіе nfs за допомогою afuse! Будуть потрібні незначні модифікації скрипта-хелпери. Однак nfs вимагає експорту файлових систем, вся принадність sshfs в тому що ви можете так монтувати будь-хост, на який у вас є ssh доступ, без якихось додаткових підготовок на ньому.

Схожі статті