Top.Mail.Ru

Как организовать бэкап ваших данных на FTP хранилище

Организация резервного копирования недорого и надёжно

Сценарии резервного копирования могут быть самыми разными. Вы можете резервировать только важные для вас данные (например, каталоги с сайтами) или все каталоги и файлы вашего сервера и так часто как вам необходимо. Следует только учитывать,что копирование файлов которые открыты и используются системой может быть неполным. Особенно это касается файлов баз данных и временных файлов. 

Мы расскажем о довольно простой, но эффективной реализации резервного копирования на примере сервера с установленной операционной системой Ubuntu 20. Статья не претендует на охват всех возможных вариантов настройки, но даёт понимание того, в каком направлении вам следует работать. 

Прежде всего, нам нужно будет подключить FTP хранилище как удалённый диск, чтобы мы могли работать с ним, как с локальным диском: читать, записывать и удалять с него каталоги и файлы. Для этого нам нужно будет установить пакет curlftpfs. Также нам понадобится пакет rsync для копирования вашх данных. Установить оба пакета можно следующей командой:

apt-get install curlftpfs rsync

Создайте точку монтирования для удалённого диска:

mkdir /mnt/ftpbackup

После установки пакетов, необходимо настроить соединение с удалённым диском. Curlftpfs имеет множество опций, но мы используем только те, которые нам необходимы в данном примере. Опции можно задавать как с командной строки (настройки сохранятся до первой перезагрузки вашего сервера):

curlftpfs -v userXXXX:PASSWORD@FTPSERVERADDRESS  /mnt/ftpbackup -o fsname=fuse -o disable_epsv -o allow_other -o umask=027 -o uid=500 -o gid=500 

так и указать их в файле /etc/fstab (в этом случае настройки сохранятся и после перезагрузки вашего сервера):

curlftpfs#FTPSERVERADDRESS  /mnt/ftpbackup  fuse  user=userXXXX:PASSWORD,allow_other,default_permissions,umask=022,_netdev   0 0

где: 

  • FTPSERVERADDRESS - адрес вашего FTP хранилища;
  • userXXXX - имя пользователя FTP хранилища;
  • PASSWORD - пароль пользователя FTP хранилища;
  • /mnt/ftpbackup - точка монтирования куда будет подключен удалённый диск;
  • umask=022 - маска устанавливающая права на каталоги 755. 

После настройки, в выоде команды mount вы увидите что-то наподобии  следующей строки:

curlftpfs#ftp://FTPSERVERADDRESS/ on /mnt/ftpbackup type fuse (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other)

Вы можете проверить работу удалённого диска создав, модифицировав или удалив каталог или папку в каталоге /mnt/ftpbackup.

Если всё команды прошли успешно, можно приступать к настройке собственно резервного копирования. Например, она может быть такой:

 rsync -avz --recursive /SOURCEDATA /mnt/ftpbackup

где SOURCEDATA - это путь к каталогу, который вы хотите архивировать. Будут скопированы сам каталог и рекурсивно все каталоги и файлы находящиеся в нём. Обратите внимание на то, что если вы указали корневой каталог, то вам понадобится удалённый диск размером как минимум в два раза большим, чем занимают ваши данные. Проверить сколько места занимают ваши данные можно командой:

du --si --max=1  /SOURCEDATA 

Для экономии места или для большего удобства, вы можете использовать несколько команд, указав другие каталоги в качестве  /SOURCEDATA. Например, если вы хотите резервировать только данные ваших сайтов и они размещены в папке /var/www можно использовать команду:

 rsync -avz --recursive /var/www /mnt/ftpbackup

Указанные выше команды можно выполнить с командной строки и проверить результаты их выполнения.

Чтобы резервное копирование осуществлялось без вашего участия, необходимо создать задание cron. Для этого необходимо перейти в cron командой crontab -e м добавить строку с заданием, например, таким:

0   7   *   *   * rsync -T=/tmp -avz /SOURCEDATA /mnt/ftpbackup

После сохранения задания каждый день в 7 часов утра каталог /SOURCEDATA будет копироваться на удалённый диск. 

В дальнейшем, мы добавим в статью несколько слов о том, как ротировать резервные копии.

Дата публикации: 3-02-2022, 12:02