Ací deixe un xicotet script (versió 0.1) per a les còpies de seguretat dels projectes que ja tinc funcionant a la Raspberry Pi 4 amb FreeBSD des de fa unes setmanes.
De moment l'script és un esquelet inicial i ara ja començaré a donar-li forma, fer-ho més mínimalista i afegir noves funcionalitats, però la meua urgència era obtenir les còpies de certs projectes i bases de dades per a la meua pau mental :)
BASES DE DADES
Per un costat tinc copies_bbdd.sh que em fa una còpia cada dia, a la 1h de la nit, perquè a les 24h programe sempre un reinici de la Raspberry Pi, aleshores el sistema FreeBSD 13 estarà super preparat per a començar les còpies i les deixarà al meu nuvolet domèstic que també és una Raspberry Pi amb dos discs de 4TB:
#Prepare les copies de seguretat de les webs de la Raspberry Pi 4 i les deiem al Nuvolet cd /usr/local/www/ DATA=$(date +"%Y%m%d") mkdir $DATA cd $DATA #Còpia de joancatala.net #- - - - - - - - - - - - - - - - - - - - - - - - mysqldump -h localhost -u USUARI -pCONTRASENYA joancatala_db > $DATA.joancatala_db.sql scp $DATA.joancatala_db.sql joan@192.168.1.N:/mnt/disc1/Programari/backups/2023/Rpi4/ rm $DATA.joancatala_db.sql #Còpia de undergroundrevolution.org #- - - - - - - - - - - - - - - - - - - - - - - - mysqldump -h localhost -u USUARI -pCONTRASENYA undergroundrevolution_db > $DATA.undergroundrevolution_db.sql scp $DATA.undergroundrevolution_db.sql joan@192.168.1.N:/mnt/disc1/Programari/backups/2023/Rpi4/ rm $DATA.undergroundrevolution_db.sql
PROJECTES WEB I FITXERS DEL SISTEMA
I a continuació faig copies_dades.sh però aquest script no el passe cada dia, sinó nomès una vegada a la setmana, concretament el diumenges a les 3h de la matinada, que al Crontab es faria seguint les indicacions següents:
minut 0 + hora 03 + dia (qualsevol numero) + mes (qualsevol mes) + dia (el dilluns, el 0).
Resultat: 0 0 * * 0
Aleshores, aquest script és:
#Prepare les copies de seguretat de les webs de la Raspberry Pi 4 i les deiem al Nuvolet cd /usr/local/www/ DATA=$(date +"%Y%m%d") mkdir $DATA cd $DATA #Còpia de Crontab #- - - - - - - - - - - - - - - - - - - - - - - - crontab -l > $DATA.crontab.txt scp $DATA.crontab.txt joan@192.168.1.N:/mnt/disc1/Programari/backups/2023/Rpi4/ rm $DATA.crontab.txt #Backup de rc.conf #- - - - - - - - - - - - - - - - - - - - - - - - cp /etc/rc.conf $DATA.rc.conf.txt scp $DATA.rc.conf.txt joan@192.168.1.N:/mnt/disc1/Programari/backups/2023/Rpi4/ rm $DATA.rc.conf.txt #Còpia de nginx #- - - - - - - - - - - - - - - - - - - - - - - - tar cvfz $DATA.nginx.tar.gz /usr/local/etc/nginx scp $DATA.nginx.tar.gz joan@192.168.1.N:/mnt/disc1/Programari/backups/2023/Rpi4/ rm $DATA.nginx.tar.gz #Còpia de joancatala.net #- - - - - - - - - - - - - - - - - - - - - - - - tar cvfz $DATA.joancatala.net.tar.gz /usr/local/www/joancatala.net/joancatala.net/ scp $DATA.joancatala.net.tar.gz joan@192.168.1.N:/mnt/disc1/Programari/backups/2023/Rpi4/ rm $DATA.joancatala.net.tar.gz #Còpia de opendata.joancatala.net #- - - - - - - - - - - - - - - - - - - - - - - - tar cvfz $DATA.opendata.joancatala.net.tar.gz /usr/local/www/joancatala.net/opendata.joancatala.net/ scp $DATA.opendata.joancatala.net.tar.gz joan@192.168.1.N:/mnt/disc1/Programari/backups/2023/Rpi4/ rm $DATA.opendata.joancatala.net.tar.gz #Còpia de galeriahtml.joancatala.net #- - - - - - - - - - - - - - - - - - - - - - - - tar cvfz $DATA.galeriahtml.joancatala.net.tar.gz /usr/local/www/joancatala.net/opendata.joancatala.net/ scp $DATA.galeriahtml.joancatala.net.tar.gz joan@192.168.1.N:/mnt/disc1/Programari/backups/2023/Rpi4/ rm $DATA.galeriahtml.joancatala.net.tar.gz #Còpia de hortet.joancatala.net #- - - - - - - - - - - - - - - - - - - - - - - - tar cvfz $DATA.hortet.joancatala.net.tar.gz /usr/local/www/joancatala.net/opendata.joancatala.net/ scp $DATA.hortet.joancatala.net.tar.gz joan@192.168.1.N:/mnt/disc1/Programari/backups/2023/Rpi4/ rm $DATA.hortet.joancatala.net.tar.gz
Com he comentat al principi d'aquest article, continuaré afegint cosetes i millores vàries, però hui tenia aquesta urgència per a deixar-la tancada i funcionant durant els dies de Nadal.
El crontab de copies_bbdd.sh és:
# +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ # Iniciem copies_bbdd.sh cada matinada a la 01h # +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ 00 01 * * * sh /usr/local/www/copies_bbdd.sh;
El crontab de copies_dades.sh és:
# +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ # Iniciem copies_dades.sh cada dilluns a les 03h # +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ 0 03 * * 0 sh /usr/local/www/copies_dades.sh;