Меню

Сетевые папки

Если вам нужно подключить папку с VPS сервера к своему компьютеру и редактировать файлы так, как будто они находятся прямо на вашем компьютере, то можно поступить следующим образом - создать в домашней папке папку net, внутри нее подпапки для разных VPS-серверов и положить в них скриптики с названием mount. Запускать их и тем самым подключать удаленные папки в то место где располагается сам скрипт. При этом он как бы исчезнет, а внутри папки окажется удаленная подключенная папка.

#!/bin/sh
sshfs -o idmap=user,reconnect,ServerAliveInterval=15,ServerAliveCountMax=480,direct_io root@my-vps.net:/home/share /home/user/net/share

Чтобы появилась команда sshfs необходимо установить пакет:

pkg install fusefs-sshfs

Теперь в файл /boot/loader.conf нужно дописать нижеприведенную строчку чтобы модуль ядра грузился при старте. А сейчас можно загрузить его вручную kldload fusefs.

fusefs_load="YES"

Опции вышеприведенного скрипта вымучены практикой и означают следующее: подключать папку так, чтобы владельцем файлов был текущий пользователь, чтобы не приходилось бороться с правами на файлы. Каждые 15 секунд посылать пинги чтобы соединение не отваливалось по таймауту, и слать их 480 раз, т.е. в течении двух часов пытаться восстановить соединение. Опция direct_io отключает кеширование удаленной файловой системы и это очень полезно. Во-первых исправятся глюки текстового редактора lite-xl, он начнет видеть изменения файлов кем-то другим на удаленной файловой системе. И исчезнет нижеприведенное сообщение:

WARNING: FUSE protocol violation for server mounted at /home/user/net/share: cache incoherent!  To prevent data corruption, disable the data cache by mounting with -o direct_io, or as directed otherwise by your FUSE server's documentation.  This warning will not be repeated.

Такое сообщение вы можете найти во входящей почте в файле /var/mail/root. Но нужно научиться читать его правильно. Этому нужно посвятить отдельную статью, там ежедневно приходит много полезной информации. Я поступил абсолютно вандальски, сменил владельца этого файла на user и с помощью программы claws-mail считал из него письма.

Тем кто разрабатывает из под Windows приходится труднее - нужно искать редакторы умеющие править файлы через sftp, а с этим беда. Такие редакторы имеются, но у каждого своя философия. Например редакторы от JetBrains выкачивают все файлы к себе и закидывают их обратно при сохранении - понятное дело что о совместной правке в таком случае трудно говорить. Редактор VSCode пытается на сервер загрузить часть себя и там ее запускать и не каждый хостер это позволит - придется долбить поддержку чтобы они там запустили какой-то docker и что-то через него пробрасывать чтобы серверная часть VSCode запускалась.

Но в конце виндовского тунеля появился свет. Можно установить в Windows три программы и подключать удаленные папки как диски компьютера. Я просто оставлю ссылки, разбирайтесь сами. Установить нужно все три.

  1. https://github.com/winfsp/winfsp/releases/latest
  2. https://github.com/winfsp/sshfs-win/releases/latest
  3. https://github.com/evsar3/sshfs-win-manager/releases/latest
Комментировать