Sauvegardes SPIP dump sqlite en automatique (cron)

Bonjour à tous et merci de vos contributions à notre écureuil préféré,

Je souhaiterais pouvoir lancer des sauvegardes au format SPIP sqlite, à l’identique de celles du plugin Dump de la dist, mais en automatique via le cron (périodicité et notificatons paramétrables).
J’ai bien trouvé les plugins Saveauto au format script sql et Mes_archives pour archiver toutes les sauvegardes, mais rien au format SPIP sqlite.
Même si tout bon hébergeur se doit de posséder toutes les sauvegardes possibles et imaginables (ou presque), j’aurais bien aimé les avoir sous la main dans ce format pour bénéficier des fonctionnalités transactionnelles bien pratiques de SPIP.
Je me dit que quelqu’un(e) a peut-être déjà eu ce besoin et pourrait partager sa solution ? Sinon, je me lancerai dans la conception de ce plugin, Dumpauto ça sonne bien ;-), en m’inspirant certainement du plugin dump de la dist. Toutes suggestions, conseils et mises en garde sont alors les bienvenus !
Merci à tous

Genre Sauvegarde automatique - Plugins SPIP ?

Oui, genre sauvegarde automatique (saveauto) mais au format sqlite (et non SQL)

Les dumps SQL sont ce qu’il y a e plus sûr :slight_smile:

Oui, au vu des forums, les dump spip ne sont pas toujours fiables et d’ailleurs ça ne m’étonnerait pas qu’aucun dev ne s’en serve – si bien que si j’étais un bug, c’est bien là que j’irai trouver un milieu accueillant (variante de la loi de sélection logicielle selon laquelle les codes les plus adaptés à leur milieu se reproduisent mieux que les autres)

Une solution c’est de déclancher un script shell par le cron du serveur (pas de spip).

Dans le crontab il y avait ça pour lancer des sauvegardes périodiques de la BDD et garder plusieurs versions :

# minute  hour  day  month  dayofweek  command
6   2  *  *  *   /home/monjolisite/progs/savftpall.sh > /dev/null
16 22 31 12  *   /home/monjolisite/progs/savftpall.sh yearly
16  2 30 */3 *  /home/monjolisite/progs/savftpall.sh quaterly
26  2  1  *  *   /home/monjolisite/progs/savftpall.sh monthly
36  2  *  *  5   /home/monjolisite/progs/savftpall.sh weekly

Et le savftpall.sh faisait genre des

mysqldump -u monjolisite --host=mysql.monhebergeur.fr --password=pass_en_clair monjolisite  --ignore-table=monjolisite.spip_referers  --ignore-table=monjolisite.spip_referers_articles   --ignore-table=monjolisite.spip_visites  --ignore-table=monjolisite.spip_visites_articles > /home/monjolisite/oldstatic/storage/dumpall.sql
zip /home/monjolisite/oldstatic/storage/dumpall.sql.zip /home/monjolisite/oldstatic/storage/dumpall.sql

pour sauvegarder ce qu’il voulait, localement = ici un dump de tout sauf les stats spip + un dump des données spip seulement.

Puis il l’envoyait sur un hébergement ovh pas cher :

/usr/bin/ftp -n $HOST >>savftpbdd_out.log 2>>savftpbdd_err.log <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd sav
cd monjolisite
mkdir $dest
mkdir $previous
binary
delete $previous/${FILE3}.bak.bak
rename $previous/${FILE3}.bak $previous/${FILE3}.bak.bak
rename $previous/${FILE3} $previous/${FILE3}.bak
rename $dest/${FILE3} $previous/${FILE3}
put ${FILE3} $dest/${FILE3}
quit
END_SCRIPT

etc

Le script détaillé est visible là : Script sauvegarde distante BDD par cron (merci le carnet wiki).

C’était il y a très longtemps, ça tourne plus depuis longtemps aussi, c’était en ftp donc il faudrait désormais adapter en sftp ou ssh.

Merci de vos réponses intéressantes qui m’aident à revoir au final mon besoin.

@b_b Je comprends que les sauvegardes mode SQL sont plus robustes et portables (notamment j’imagine en cas de nouvelle version SPIP / DB). C’est donc vers cette piste que je dois m’orienter.

@JLuc Doit-on céder au Darwinisme ambient et accepter la fin d’une espèce de bug en lui refusant son écosystème favori ? Peut-être que oui finalement :wink:
Plus sérieusement merci pour la référence du script à lancer en shell. Mais je me dis que:

  • J’ai été content à mes début SPIP, et sans connaissance de dev, de pouvoir manipuler les sauvegardes par une interface simple et plutôt conviviale. Et SPIP a notamment cette qualité de s’adresser à tous publics
  • J’apprécie de pouvoir sélectionner les tables à la restauration de la base simplement sans forcément passer par du shell (est-ce que tous les hébergeurs l’accèptent d’ailleurs ?)

Donc la piste serait pour moi (et d’autres ?) d’enrichir le plugin « Saveauto » (Sauvegardes automatiques) d’'une fonction de restauration en tansactionnelle avec, en must, la sélection des tables.

Merci de vos éventuels avis sur ma réflexion à date. Et peut-être voir avec l’auteur du plugin (@cy_altern ) si cela fait sens ? Personellement , oui. Et intéressé si besoin pour y contribuer, à hauteur de mes capacités (peu de plugins à mon actif…), d’une manière ou d’une autre.

Ou autre piste, lancer une sauvegarde/restauration dump SQL en transactionnel: Est-ce possible ?

Encore merci pour cet échange dans ce bel espace de discussion !