> ## Documentation Index
> Fetch the complete documentation index at: https://wiki.lumiweb.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Бэкапы

> Резервные копии своими силами

<Warning>
  Lumi не делает автоматических бэкапов. Переустановка ОС стирает диск полностью. Резервные копии — твоя зона ответственности: делай их сам и заранее, а не когда данные уже пропали.
</Warning>

Идея простая: копию важных данных нужно регулярно забирать **с сервера к себе** (или на другой сервер). Ниже — рабочие способы от ручного до автоматического. Во всех командах `IP` и вход под `root` бери из карточки сервера в боте.

<AccordionGroup>
  <Accordion title="1. Скачать файлы к себе" icon="download">
    Разовая копия каталога на свой компьютер. `scp` копирует «как есть»:

    ```bash theme={"system"}
    scp -r root@IP:/var/www ./backup
    ```

    `rsync` удобнее для повторных копий — переносит только изменившееся и работает быстрее:

    ```bash theme={"system"}
    rsync -avz root@IP:/var/www ./backup
    ```

    `-a` сохраняет права и структуру, `-v` показывает ход, `-z` сжимает при передаче.
  </Accordion>

  <Accordion title="2. Дамп базы данных" icon="database">
    Файлы базы напрямую копировать ненадёжно — нужен дамп. Команды выполняй **на сервере**, потом забери получившийся файл способом из пункта 1.

    <Tabs>
      <Tab title="MySQL / MariaDB">
        ```bash theme={"system"}
        mysqldump -u root -p ИМЯ_БАЗЫ > db.sql
        ```

        Все базы сразу:

        ```bash theme={"system"}
        mysqldump -u root -p --all-databases > all.sql
        ```
      </Tab>

      <Tab title="PostgreSQL">
        ```bash theme={"system"}
        sudo -u postgres pg_dump ИМЯ_БАЗЫ > db.sql
        ```

        Все базы сразу:

        ```bash theme={"system"}
        sudo -u postgres pg_dumpall > all.sql
        ```
      </Tab>
    </Tabs>
  </Accordion>

  <Accordion title="3. Архив каталога" icon="file-zipper">
    Удобно упаковать папку в один сжатый файл, а потом скачать его:

    ```bash theme={"system"}
    tar -czf backup.tar.gz /var/www
    ```

    `-c` создать, `-z` сжать gzip, `-f` имя файла. Распаковать обратно: `tar -xzf backup.tar.gz`.
  </Accordion>

  <Accordion title="4. Автоматизация по cron" icon="clock">
    Чтобы копии снимались сами по расписанию. На сервере открой редактор задач:

    ```bash theme={"system"}
    crontab -e
    ```

    Добавь строку — каждый день в 03:00 заливать каталог на другой сервер:

    ```bash theme={"system"}
    0 3 * * * rsync -az /var/www root@BACKUP_IP:/backups/$(date +\%F)
    ```

    Знак `%` в crontab экранируется как `\%`. Чтобы вход шёл без пароля, заранее настрой [SSH-ключ](/vps/ssh-keys) на сервер-приёмник. Базу бэкапь так же: сначала `mysqldump`/`pg_dump` в файл, затем `rsync` этого файла.
  </Accordion>

  <Accordion title="5. Скопировать сервер целиком" icon="hard-drive">
    Снять полный образ диска через панель нельзя. Но для переезда или полной копии достаточно забрать важные каталоги.

    Заархивируй ключевые директории (сайты, конфиги, дампы баз):

    ```bash theme={"system"}
    tar -czf full.tar.gz /etc /var/www /home /root
    ```

    Для миграции на другой сервер удобнее `rsync` — он перенесёт каталоги напрямую, минуя промежуточный архив:

    ```bash theme={"system"}
    rsync -avz /var/www root@NEW_IP:/var/www
    ```

    <Warning>
      `dd` для копирования всего диска на VPS обычно недоступен и небезопасен на работающей системе. Бэкапь конкретные каталоги и дампы баз, а не «весь диск».
    </Warning>
  </Accordion>
</AccordionGroup>

<Tip>
  Храни копии **не на самом сервере**: если он откажет или его переустановят, бэкап рядом с данными пропадёт вместе с ними. Делай копии по расписанию и хотя бы раз проверь восстановление — разверни дамп и архив на тестовом сервере и убедись, что данные читаются. Непроверенный бэкап — ещё не бэкап.
</Tip>

## Куда дальше

<CardGroup cols={2}>
  <Card title="Файрвол" icon="shield-halved" href="/vps/firewall">
    Закрой лишние порты — один из шагов защиты сервера.
  </Card>

  <Card title="Защита сервера" icon="lock" href="/vps/hardening">
    Полный чек-лист безопасности.
  </Card>
</CardGroup>
