Aller au contenu

Scripts maison — /home/jonathan/scripts/

Scripts d'administration, organisés en backup/, systeme/, photos/.

backup/

backup.sh — sauvegarde Docker + bases

  • Dumps SQL en ligne (non bloquants) :
    • PostgreSQL/TimescaleDB (pg_dumpall) et MariaDB (mariadb-dump --all-databases --single-transaction), détectés automatiquement via l'image des conteneurs.
    • Compressés en <DEST>/db_dumps/<conteneur>.sql.gz.
  • rsync de /srv/docker vers <DEST>/srv_docker/ (avec --delete, nice/ionice), en excluant les répertoires de données des bases (déjà couverts par les dumps) : …/postgresql/data, …/pgdata/data, …/mysql.
  • Destinations : primaire /mnt/hdd/backups/<DATE>/, secondaire /mnt/sdcard/backups/<DATE>/.
  • Rotation : KEEP=4 (4 horodatages conservés).
  • Cron : /etc/cron.d/docker-backupdimanche 03:00, log /var/log/docker-backup.log.
  • Détails couvert/pas-couvert + restauration : Sauvegardes.

systeme/

Script Rôle
smart.sh self-test SMART long sur disques (root) → logs volumes/logs/smart/
firewall-v4.sh / firewall-v6.sh règles iptables IPv4/IPv6 (via firewall.service) — voir Pare-feu
update.sh docker compose pull + up (recrée ce qui a changé) + prune ; log volumes/logs/updates/
update-homeassistant.sh MAJ HA avec backup config + healthcheck + rollback auto ; cron 30 4 * * * — voir Mises à jour
wiki-autodoc.sh (nouveau) régénère les pages État live du wiki + commit/push git

photos/

Outils de maintenance de la librairie photo (migration vers Immich) :

Script Rôle
crc-audit.sh audite les logs d'extraction 7z, repère les fichiers corrompus (CRC)
inventory.sh inventaire rapide (tailles, comptes, extensions, photos vs vidéos)
list-no-exif.sh liste les médias sans date EXIF ; sépare récupérables (JSON sidecar) vs sans date
README.md doc des utilitaires photos