Монтировать удалённые каталоги можно используя протоколы Раздел FTP: Протокол FTP, серверы, клиенты FTP для Linux и Windows (требует curlftpfs), WebDav (fusedav), GMail (gmailfs), Flickr(flickrfs), SSH File Transfer Protocol (SFTP) настройка под хостинг Apache(sshfs).
Для монтирования FTP требуется пакет curlftpfs.
Debian, Ubuntu apt install curlftpfs CentOS 7 yum install curlftpfs CentOS, Fedora, AlmaLinux, and Red Hat: dnf install curlftpfs
Как использовать:
curlftpfs ftp://[пользователь]:[пароль]@имя_сервера /media/ftp [опции] Пример: curlftpfs ftp://backup:123task@159.xxx.xxx.xxx /home/darkfire/ftp_share
или
curlftpfs имя_сервера /media/ftp -o user=пользователь:пароль [другие_опции]
Отмонтируем
fusermount -u /media/ftp
Рассмотрим вариант монтирование удаленной директории с использованием протокола SSH File Transfer Protocol (SFTP) настройка под хостинг Apache.
В ОС должна быть установлена поддержка FUSE: пакет sshfs - содержащий клиента файловой системы, основанный на протоколе передачи файлов SSH.
Установим
CentOS yum install fuse-sshfs Debian, Ubuntu apt install sshfs
adduser yourusername fuse $ mkdir ~/sftpshare
Синтаксис подключения:
$ sshfs hostuser@remote.host.or.ip:/path/to/directory ~/sftpshare
Отмонтируется удаленный ресурс командой fusermount:
$ fusermount -u ~/sftpshare
Автоподключение и перемонтирование удаленных папок. Для этого есть несколько вариантов:
sshfs -o reconnect hostuser@remote.host.or.ip:/path/to/directory ~/sftpshare
Ключ -C (equivalent to '-o compression=yes')включает сжатие (немного экономит трафик и ускоряет соединение)
sshfs -C -o reconnect hostuser@remote.host.or.ip:/path/to/directory ~/sftpshare
Если по каким-то причинам вы не можете использовать SSH ключ для подключения, не забывайте про утилиту sshpass, которая поможет автоматизировать ввод пароля.
# apt search autofs autofs - Переходный пакет от autofs к autofs5 autofs5 - Встроенный в ядро автоматический монтировщик для Linux, версия 5.
# apt install afuse $ mkdir ~/sshfs/
Запустим демон afuse, кторый будет отслеживать все обращения к директории ~/sshfs/:
afuse -o mount_template="sshfs %r:/ %m" -o unmount_template="fusermount -u -z %m" ~/sshfs/
После чего все обращения к файлам и папкам в папке ~/sshfs/ будут вызывать монтирование соответствующей папки в ~/sshfs/. После чего обращение пойдет дальше на удаленный хост. Самое главное для нас — все происходит абсолютно прозрачно при первом обращении к нужной папке из любой программы.
Например: ls ~/sshfs/tmpvar@foobarhost.com вначале малость потормозит, потом покажет содержимое корневой папки / сервера foobarhost.com. Конечно, не всегда удобно писать полный адрес и параметры доступа к серверу tmpvar@foobarhost.com:22, поэтому мы их перенесем в настройки доступа ssh.
cat ~/.ssh/config Host file-storage Hostname filestorage.server.com Port 2222 # на сервере может быть использован нестандартный порт HostKeyAlias fs User admin
Теперь мы можем обращаться к нашему серверу по короткому имени fs как в ssh, так и в sshfs:
ssh fs # заходим на сервер — никаких лишних настроек не надо
ls ~/sshfs/fs # смотрим корневую папку сервера.
Если вы монтите папку первый раз, то у вас появится окошко ввода пароля для доступа к указанному серверу. После того как соединение установлено, окно больше не будет вас докучать. Как вы уже поняли — можно легко сказать окну не вылезать — сделав авторизацию на сервер по ключу.