Voici le dirty hack, sans m'être plongé dans le code de SPIP pour savoir si on peut faire mieux et, comme de bien entendu, vous l'utilisez à vos risques et périls.
#! /bin/bash #set -x login=votre_login_free user=votre_user_spip password=votre_mdp sauvegarde=$(tempfile) count=5 while [ $count -gt 0 ] do echo "Attempt at saving a dump for http://$login.free.fr/spip/" curl -s -S -L -c cookies.txt -D curl.headers -d "session_login_hidden=$user&session_login=$user&session_password=$password&session_remember=oui&essai_login=oui&url=ecrire/?exec=export_all&reinstall=non" "http://$login.free.fr/spip/spip.php?action=cookie" >$sauvegarde if [ $? -ne 0 ] ; then echo "problème : vérifier dans $sauvegarde" exit 1 fi grep -q 'Sauvegarde réussie.' $sauvegarde if [ $? -eq 0 ]; then break else let count-- fi grep -q "NAME\='fichier'" $sauvegarde if [ $? -eq 0 ]; then filename=$(grep "NAME\='fichier'" $sauvegarde | sed 's/.*VALUE="//' | sed 's/".*//') if [ "x$filename" != "x" ]; then echo "ftp://ftpperso.free.fr/spip/ecrire/data/$filename/ must be created" echo "hello" | curl -s -S -T - -u $login:$password --ftp-create-dirs ftp://ftpperso.free.fr/spip/ecrire/data/$filename/hello.txt rm $sauvegarde sleep 10 fi else sleep 5 echo " Sauvegarde pas reussie et pas de fichier a crer demande, on boucle..." fi done if [ $count -gt 0 ]; then grep -q "La base a été sauvegardée dans <b>ecrire/data/dump.xml</b>" $sauvegarde if [ $? -eq 0 ]; then dumpfile=$(grep "La base a été sauvegardée dans <b>ecrire/data/dump.xml</b>" $sauvegarde | sed "s/.* sauvegardée dans <b>//" | sed "s/<\/b>.*//") if [ "x$dumpfile" != "x" ]; then echo "OK, dump has been saved by SPIP in ftp://ftpperso.free.fr/spip/$dumpfile" echo "Waiting 30 seconds" sleep 30 curl -s -S -O -u $login:$password ftp://ftpperso.free.fr/spip/$dumpfile date=$(date +%Y-%m-%d-%H-%M-%S) file=$(basename $dumpfile) mv $file $date"_$file" file=$date"_$file" grep -q '<SPIP version="1.9.1" version_base="1.917" version_archive="1.3">' $file if [ $? -ne 0 ]; then echo "problem in $file : wrong xml header" exit 1 fi grep -q '</SPIP>' $file if [ $? -ne 0 ]; then echo "problem in $file : wrong xml footer" exit 1 fi echo "OK, dump downloaded to $file." ls -l $file else echo "problem" exit 1 fi else echo "problem" exit 1 fi fi echo "Purging old dumps if necessary" ls -1 *_dump.xml | sort -u | head -n-10 | xargs -r rm -v