Открытая платформа для создания заботливой квартиры
Для постоянного хранения в микрокомпьютерах используются SD-карты, ресурс которых ограничен. Некоторые карты могут проработать несколько лет, а некоторые - пару месяцев. Чтобы не настраивать "умный дом" каждый раз, когда появились ошибки в работе карты, организуйте периодическое резервное копирование.
Резервное копирование
Для создания и хранения резеврных копий удобно использовать внешний HDD, подключаемый по USB. Подключите диск к микрокомпьютеру и установите необходимые пакеты:
sudo -s
apt-get -y update && apt-get -y install ntfs-3g
Выясните название устройства для вашего HDD:
lsblk
Примонтируйте внешний диск к каталогу /backup:
mkdir /backup
mount -t ntfs-3g /dev/sda1 /backup -o rw,umask=0000
Загрузите и запустите скрипт, который выполнит резервное копирование SD-карты, на которой установлена операционная система и все файлы вашего "умного дома":
wget https://raw.githubusercontent.com/cutecare/rpi-home-assistant/master/backup.sh
chmod 775 backup.sh
nohup ./backup.sh /backup &
В результате работы скрипта получится образ, по размеру чуть больше, чем емкость SD-карты, с которой он был сделан. При восстановлении из резервной копии используйте большую по объему SD-карту, либо воспользуйтесь следующими инструкциями для уменьшения размера образа (процедура занимает продолжительное время):
wget https://raw.githubusercontent.com/cutecare/rpi-home-assistant/master/resize.sh
chmod 775 resize.sh
nohup ./resize.sh /backup/raspberrypi_backups/xxx.img &
Если хотите запускать резервное копирование по расписанию, то настройте cron:
echo "0 0 * * * root (umount /backup || true) && mount -t ntfs-3g /dev/sda1 /backup -o rw,umask=0000 && /home/pi/backup.sh /backup " >> /etc/crontab
echo "" >> /etc/crontab
service cron restart
Восстановление из резервной копии
При необходимости восстановить резервную копию на новую SD-карту используйте Linux виртуалку или приложение Etcher для Windows. На Linux выполните следующие команды:
umount /dev/mmcblk0
dd if=/media/backup/raspberrypi_backups/backup_20190104_152136.img of=/dev/mmcblk0