Категории

Как сделать бэкап Zigbee2MQTT, Mosquitto, MySQL и веб-файлов на Linux

11.09.2025 17:58 | коды из категории: Linux

про Как сделать бэкап Zigbee2MQTT, Mosquitto, MySQL и веб-файлов на Linux

Если вы, как и я, используете Linux-сервер (например, Raspberry Pi) для умного дома — с Zigbee2MQTT, MQTT-брокером Mosquitto, базой MySQL и веб-интерфейсами в /var/www — рано или поздно вам понадобится надёжный бэкап. Ниже — простой и проверенный способ сохранить всё необходимое одной командой, плюс автоматизация через cron.

Что бэкапим?

Готовый скрипт для бэкапа

Создайте файл, например, ~/backup_smart_home.sh:

#!/bin/bash

# Папка для бэкапа
DATE=$(date +%Y%m%d)
BACKUP_DIR="/tmp/backup_$DATE"
FINAL_BACKUP="$HOME/backup_smart_home_$DATE.tar.gz"

mkdir -p "$BACKUP_DIR"
cd "$BACKUP_DIR"

# 1. Дамп MySQL (введите пароль вручную или настройте .my.cnf для автоматизации)
mysqldump -u root -p --all-databases > mysql_backup.sql

# 2. Zigbee2MQTT (замените 'pi' на ваше имя пользователя, если нужно)
cp -r /home/pi/zigbee2mqtt ./zigbee2mqtt

# 3. Mosquitto
mkdir -p ./mosquitto
cp /etc/mosquitto/mosquitto.conf ./mosquitto/
cp /etc/mosquitto/passwd ./mosquitto/ 2>/dev/null || true
cp /etc/mosquitto/acl ./mosquitto/ 2>/dev/null || true

# 4. Веб-файлы
cp -r /var/www ./www

# 5. Системные конфиги
mkdir -p ./etc_configs
cp /etc/hostname ./etc_configs/
cp /etc/hosts ./etc_configs/
cp -r /etc/nginx ./etc_configs/ 2>/dev/null || true
cp -r /etc/apache2 ./etc_configs/ 2>/dev/null || true
cp -r /etc/systemd/system ./etc_configs/ 2>/dev/null || true
cp -r /etc/netplan ./etc_configs/ 2>/dev/null || true
cp /etc/network/interfaces ./etc_configs/ 2>/dev/null || true

# Архивируем
cd /tmp
tar -czf "$FINAL_BACKUP" "backup_$DATE"

# Удаляем временные файлы
rm -rf "$BACKUP_DIR"

echo "✅ Бэкап сохранён: $FINAL_BACKUP"

Сделайте скрипт исполняемым:

chmod +x ~/backup_smart_home.sh

Запустите вручную для проверки:

~/backup_smart_home.sh
⚠️ Важно: При запуске скрипта вас попросят ввести пароль от MySQL. Чтобы избежать этого — настройте файл ~/.my.cnf:
[client]
user=root
password=ваш_пароль
И сделайте его защищённым: chmod 600 ~/.my.cnf

Автоматизация через Cron (раз в неделю)

Откройте редактор cron:

crontab -e

Добавьте строку для запуска каждое воскресенье в 3 ночи:

0 3 * * 0 /home/pi/backup_smart_home.sh >> /home/pi/backup.log 2>&1

Теперь бэкап будет делаться автоматически!

Дополнительно: очистка старых бэкапов

Чтобы не засорять диск, добавьте в конец скрипта удаление архивов старше 30 дней:

# Добавьте в конец скрипта, перед "echo":
find "$HOME" -name "backup_smart_home_*.tar.gz" -mtime +30 -delete

Как скачать бэкап на компьютер?

scp pi@ваш_сервер:~/backup_smart_home_*.tar.gz ./

Заключение

Теперь вы защищены от потери данных: сгорел SD-карта, слетела система — не страшно. Распакуйте архив, восстановите конфиги и базы — и ваш умный дом снова работает.

Сохраните этот скрипт. Поделитесь с коллегами. И спите спокойно 😉

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку

Важно: Блог-эксперимент

Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.

Посетителей сегодня: 0


кто я | книга | контакты без контактов

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA