Skip to content

Резервное копирование и восстановление

Резервное копирование и восстановление

rsync - инструмент с открытым исходным кодом, который позволяет быстро и безопасно создавать резервные копии файлов и папок в удалённом расположении или локально. Для передачи больших объёмов данных по сети rsync является лучшим вариантом

deja dup и duplicity - графические инструменты резервного копирования, которые обеспечивают резервное копирование данных и предоставляют возможность шифрования данных. В качестве серверной части они используют rsync

sudo apt install rsync - команда установки rsync

rsync -av /path/to/mydirectory user@backup_server:/path/to/backup/directory - такая команда скопирует каталог по пути /path/to/mydirectory на удалённый хост backup_server в каталог /path/to/backup/directory. Флаг -a используется для сохранения исходных атрибутов файлов (разрешения, временные метки и т.д.), а флаг -v обеспечит подробный вывод хода rsync операции

  • Более сложный пример:

    rsync -avz --backup --backup-dir=/path/to/backup/folder --delete /path/to/mydirectory user@backup_server:/path/to/backup/directory
    

    Здесь добавляется флаг -z для сжатия данных, --backup создаёт инкрементные резервные копии в каталоге /path/to/backup/folder, а --delete удаляет файлы с удалённого хоста, которых больше нет в исходном каталоге

  • Для восстановления каталога с сервера резервного копирования:

    rsync -av user@remote_host:/path/to/backup/directory /path/to/mydirectory

  • Для безопасной передачи резервной копии:

    rsync -avz -e ssh /path/to/mydirectory user@backup_server:/path/to/backup/directory

  • Для комбинированного использования rsync и cron:

    1. Создание скрипта RSYNC_Backup.sh:

      #!/bin/bash
      
      rsync -avz -e ssh /path/to/mydirectory user@backup_server:/path/to/backup/directory
      
    2. Предоставляем необходимые разрешения скрипту (важно убедиться, что скрипт принадлежит нужному пользователю): chmod +x RSYNC_Backup.sh

    3. Теперь создаём crontab, который будет запускать скрипт каждый час на 0 минуте:

      0 * * * * /path/to/RSYNC_Backup.sh