Ktoś kiedy powiedział, że “ludzie dzielą się na tych co robią backup i na tych co dopiero będą go robić” .
Cel
Wykonanie kopi dla:
- baza SQLITE DOMOTICZ
- katalog skryptów DOMOTICZ
- katalog www DOMOTICZ (nie wiem po co , ale widziałem, że inni to robią)
- inne katalogi które mogą okazać się przydatne
Kopia taka powinna zostać skompresowana i przesłana za pomocą ftp na wskazany adres. U mnie to będzie dysk SYNOLOGY który właśnie pełni rolę rodzinnego serwera backupowego.
Po kilku próbach skomponowałem skrypt poniższy skrypt:
#!/bin/bash # parametry ftpHost="192.168.1.100" ftpUser="nazwauzytkownika" ftpPass="haslouzytownika" ftpDestDirectory="backup/" domoticzHost="192.168.1.101" domoticzPort="8080" domoticzDirectory="/home/pi/domoticz" domoticzDirectoryWww="$domoticzDirectory/www" domoticzDirectoryScripts="$domoticzDirectory/scripts" scriptDirectory="/home/pi/@scripts" now=$(date '+%Y%m%d%H%M%S') backupDirectory="/tmp/backup_$now" backupFile="/tmp/backup_raspberry_$now.tar" echo "zakładam katalog dla kopii $backupDirectory" mkdir $backupDirectory echo "backup - domoticz db ..." curl -s http://$domoticzHost:$domoticzPort/backupdatabase.php > $backupDirectory/domoticz.db echo "backup - domoticz pliki (www) ... " cp -r $domoticzDirectoryWww $backupDirectory echo "backup - domoticz pliki (skrypty) ... " cp -r $domoticzDirectoryScripts $backupDirectory echo "backup - skrypty ..." cp -r $scriptDirectory $backupDirectory echo "pakowanie ..." tar -zcvf $backupFile $backupDirectory echo "ftp transfer ..." curl -s --disable-epsv -v -T"$backupFile" -u"$ftpUser:$ftpPass" "ftp://$ftpHost/$ftpDestDirectory" echo "usuwam tmp pliki ..." rm -r $backupDirectory rm $backupFile curl --silent -u """pushbulletapikey"":" -d type="note" -d body="backup został wykonany. (f:$now)" -d title="raspinfo" 'https://api.pushbullet.com/v2/pushes'
W ostatniej linii skryptu wysyłam wiadomość o wykonaniu backupu za pomocą wcześniej skonfigurowanego pushbulleta.
Jak go skonfigurować pisałem TU.
Aby uruchomić skrypt musimy mu jeszcze nadać uprawnienia poprzez wydanie komendy:
chmod +x backup.sh
(mój plik nazywa się backup.sh)
Na koniec aby to wszystko miało sens musimy włączyć harmonogram odpalania skryptu.
Realizujemy to poprzez wrzucenie odpowiedniego wpisu do crontaba. Tak więc:
1. Uruchamiamy crontaba:
crontab -e
2. Dodajemy nowy wpis:
0 3 * * 1 /home/pi/@scripts/backup.sh
Czyli będziemy odpalać skrypt w poniedziałki o 3:00.
Więcej o harmonogramie w crontabie możecie znaleźć TU
Dodaj komentarz