Перейти к основному контенту

Автоматическое монтирование FTP каталога

Использую proxmox в качестве гипервизора для размещения виртуальных машин. Провайдер у которого я арендую выделенные серверы даёт возможность использовать ftp сервер для резервного копирования. Гипервизор встроенных возможностей записи резервных копий на ftp не имеет. Так как proxmox основан на Debian, то можно использовать curlftpfs для монтирования ftp в локальный каталог и выполнять туда резервное копирование, но в процессе эксплуатации выяснилось, что при длительном простое соединение периодически отваливается. Поэтому оптимальным вариантом оказалось автоматическое монтирование ftp каталога средствами systemd при обращении к точке монтирования. Автоматическое размонтирование происходит через 30 секунд простоя.

curlftpfs

Устанавливаем curlftpfs

apt-get install curlftpfs

Создаем файл паролей

cat<<EOF>>/root/.netrc
machine ftp-server.com
login ftp-user
password ftp-password
EOF

Тестируем монтирование файловой системы

mkdir /mnt/backup
curlftpfs ftp-server.com /mnt/backup -o rw,allow_root
ls /mnt/backup
fusermount -u /mnt/backup

Настраиваем автомонтирование

Создаем файл с точкой монтирования для systemd:

cat<<EOF>>/etc/systemd/system/mnt-backup.mount
[Unit]
Description=ftp share
[Mount]
What=curlftpfs#ftp-server.com
Where=/mnt/backup
Options=rw,allow_root,direct_io,hard_remove,big_writes
Type=fuse
[Install]
WantedBy=multi-user.target
EOF

Создаем сервис для автомонтирования:

 cat<<EOF>>/etc/systemd/system/mnt-backup.automount
[Unit]
Description=ftp share
Requires=network-online.target
After=network-online.service
[Automount]
Where=/mnt/backup
TimeoutIdleSec=30
[Install]
WantedBy=multi-user.target
EOF

Включаем и проверяем автомонтирование

systemctl daemon-reload
systemctl enable mnt-backup.mount
systemctl enable mnt-backup.automount --now
ls /mnt/backup
mount | grep /mnt/backup