Если вы, как и я, используете Linux-сервер (например, Raspberry Pi) для умного дома — с Zigbee2MQTT, MQTT-брокером Mosquitto, базой MySQL и веб-интерфейсами в /var/www — рано или поздно вам понадобится надёжный бэкап. Ниже — простой и проверенный способ сохранить всё необходимое одной командой, плюс автоматизация через cron.
~/zigbee2mqtt)Создайте файл, например, ~/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:
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-карта, слетела система — не страшно. Распакуйте архив, восстановите конфиги и базы — и ваш умный дом снова работает.
Сохраните этот скрипт. Поделитесь с коллегами. И спите спокойно 😉
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!