В документации к Domoticz описаны несколько вариантов копирования, но почему-то нет самого очевидного варианта с SMB. Набросал простой скрипт для резервного копирования базы domoticz.db на общий сетевой диск. В моём случае это общая папка на роутере keenetic. Внимательно читаем официальную инструкцию как расшарить диск и правильно назначить права на шару. Скрипт размещу на самом сервере Domoticz.
Ставим необходимые пакеты
sudo apt-get install cifs-utils
На сервере domoticz внесем изменения в fstab чтобы монтировать общий диск backup. Добавим строчку
sudo nano /etc/fstab
//10.0.0.1/Backup /media/backup cifs username=name,password=pwd,uid=1000,gid=1000,nofail 0 0
//10.0.0.1/Backup - путь до сетевой папки
/media/backup - точка монтирования на сервере
cifs - тип файловой системы
username=name,password=pdw,uid=1000,gid=1000,nofail - параметры монтирования сетевой диска
!РЕКОМЕНДУЮ обязательно добавлять nofail для продолжения загрузки сервера в случае ошибок при монтировании (недоступность сетевой папки)
Перезагружаемся и проверяем содержимое
ls /media/backup
Создаем новый скрипт в папке domoticz (актуальная версия)
cd domoticz\sctipts&&nano domoticz-backup.sh
#!/bin/bash
# Задаем переменные с настройками доступа к серверу Domoticz и пути к файлам
D_IP="localhost"
D_PORT="505"
D_DEST="/media/backup/Domoticz"
D_SRC="/home/pi/domoticz/"
FIND="/usr/bin/find"
# Задаем формат именования файлов для копирования
D_DATABASE="$(date '+%Y%m%d')_database.db"
D_SCRIPTS="$(date '+%Y%m%d')_scripts.tar.gz"
D_PLUGINS="$(date '+%Y%m%d')_plugins.tar.gz"
# Создаем файл и перемещаем его на примонтированный сетевой диск
/usr/bin/curl -s http://$D_IP:$D_PORT/backupdatabase.php > $D_DEST/$D_DATABASE
# Архивируем данные
gzip -9 $D_DEST/$D_DATABASE --force
tar -zcvf $D_DEST/$D_SCRIPTS $D_SRC/scripts/ --ignore-failed-read
tar -zcvf $D_DEST/$D_PLUGINS $D_SRC/plugins/ --ignore-failed-read
# Удаляем файлы бэкапов старше 14 дней
$FIND $D_DEST -name '*.gz' -mtime +14 -delete
Делаем файл исполняемым
chmod +x domoticz_backup.sh
Добавляем в cron выполняться раз в день
crontab -e
0 1 * * * /home/pi/domoticz/scripts/domoticz-backup.sh >/dev/null 2>&1
Комментариев нет :
Отправить комментарий