Sauvegarde Automatique

Salut,

On Thu, 7 Nov 2002, ONFRAY Matthieu wrote:

pourquoi utiliser 2 fois wget ?
d'abord il faut écrire le fichier sur le serveur.
donc fo appeler le script, ca doit être faisable avec cron (ne pas
oublier $ecrire=true)

OK.

maintenant que c sur le serveur (moi je m'arrête là, webcron.org se
contente de lancer la nuit le script), il faut récupérer, donc tu
utilises wget dessus (lancé par cron la nuit par exemple).
cron à 3h00 : lance serveur.com/export_base.php?ecrire=true
cron à 3h05 : wget sur serveur.com/bases/

si tu récupères par wget , t'as intérêt à pouvoir péciser un login/pass.
car moi je laisserais pas mes archives dans un rep non protégé...

Voilà.

Le problème est que si tu n'effectues pas la seconde opération la
"sauvegarde" ne sauve pas grand chose: imaginons un incendi qui bousille
la salle machine de ton hébergeur, vu que ta base et t 'sauvegarde' sont
dans la meme piece (voir sur le meme machine)... Ca aura servit à rien
(d'ou l'étape de "rapatriement").

D'un autre coté j'ai du mal à voir comment ta page de 'sauveragde' est
elles meme protyégée: n'importe qui eput l'activer et faire les
auvegardes? (meme s'il ne peut aller lire le fichier?). Si je comprends
bien...

Si je pose toutes ces questions, c'est que j'ai pour ma part fait un
script de sauvegarde bancal dont je ne suis pas super satisftait, mais il
n'est pas coté serveur (y'a rien en PHP). Et j'aimerais le remplacer.
Je l'avais posté y'a qq temps sur la liste, si ca t'interesse.
Il fait:
- login sur la page SPIP de sauvegarde (avec le login/pass admin de spip)
- Déclenchement de la sauvegarde
- Login sur le FTP du site SPIP (avec login et pass du compte)
- Telechargement du fichier de dump cree

Toutes les infos de login sont stockees en local (600 de préférence :wink:
dans un fichier dédié avec une ligne par site:
Ainsi en une commande mon script récupere les infos dans le fichier de
conf pour cahque site, fait la sauvegardre de chacun et quite.
Facile à mettre en cron.

Pour le moment ca semble mieux convernir à mon usage, mais je me renseigne;)

  Yannick

--
_/ Yannick Patois _________________ Address (home) __________________
| irc(undernet): Garp on #france25+ | 17, rue du Tonkin |
| email : patois@calvix.org | Apt. 9G, 3iem |
| http://garp.feelingsurfer.net/ | 69100 Villeurbanne |
| Tel-home: +33 (0)4 78 89 76 47 | FRANCE |
| Un Petit Agenda Militant Lyonnais - http://expace.lautre.net/ |

Le problème est que si tu n'effectues pas la seconde opération la
"sauvegarde" ne sauve pas grand chose: imaginons un incendi qui bousille
la salle machine de ton hébergeur, vu que ta base et t 'sauvegarde' sont
dans la meme piece (voir sur le meme machine)... Ca aura servit à rien
(d'ou l'étape de "rapatriement").

c vrai. mais les cas de force majeurs de ce genre sont heureuement plutôt rares (ce genre d'événement apocalyptique se passe en moyenne tous les 2000 ans ;). vu que c un site amateur que je gère, la sauvegarde quotidienne en local me suffit. je rapatrie à la main de temps en temps.

pour un site pro, ca serait différent...mais mon site amateur, ca ne serait pas la fin du monde si je ne pouvais restaurer qu'une base de la semaine dernière :slight_smile:

D'un autre coté j'ai du mal à voir comment ta page de 'sauveragde' est
elles meme protyégée: n'importe qui eput l'activer et faire les
auvegardes? (meme s'il ne peut aller lire le fichier?). Si je comprends
bien...

tu comprends bien mais...non :slight_smile:

car j'utilise un contrôle de login/password. dans le script que j'ai envoyé sur la liste, la ligne de code est commentée.

teste là
http://www.japanim.net/export_base.php?ecrire=true
ou même
http://www.japanim.net/export_base.php
tu te fais jeter :smiley:

à chacun de rajouter la vérification comme il l'entend.
je fournis le script tel quel, chacun adapte...

Pour le moment ca semble mieux convernir à mon usage, mais je me renseigne;)

c pas mal mais moi je rcupère toute la base. j'ai qu'une base, donc j'ai des tables non SPIP et je veux tout. mon script pompe tout : mes tables spip_, mais aussi annu_ (annuaire de liens), banners_ (gestion de bannières), etc...

envoie moi en privé ton script, je materai.
--
Matthieu ONFRAY
Webmaster de Japanim.net
Toute l'actualité de la japanimation
http://www.japanim.net

cron à 3h00 : lance serveur.com/export_base.php?ecrire=true
cron à 3h05 : wget sur serveur.com/bases/

- Savez-vous si les pass déclarés à webcron sont cryptés ?

On peut pas aller stocker la sauvegarde sur un autre serveur ? Ca limiterait
déjà les risques vu que que l'ubiquïté n'est pas encore le lot des incendies je
crois :o)

- N'y a t'il pas possibilité d'envoyer par mail la sauvegarde vers le webmaster
?
- Pourrait-on installer une alerte automatique qui déclenche le téléchargement
vers l'ordi au moment de se logguer en site interne ?

Cette fonction de sauvegarde automatique est vraiment intéressante à mettre en
oeuvre dans une prochaine version à mon sens. Pour nous faciliter la vie, et
aussi pour lutter contre la précarité dans laquelle nous plongent les hébergeurs
souvent...

Walk

- Savez-vous si les pass déclarés à webcron sont cryptés ?

aucune idée, je touche pas à cron

On peut pas aller stocker la sauvegarde sur un autre serveur ?

techniquement non. php travaille que sur le système de fichiers local. question de sécurité. mais rien n'empêche ensuite un transfert ftp (avec cron) pour balancer le fichier sur un autre espace.

- N'y a t'il pas possibilité d'envoyer par mail la sauvegarde vers le webmaster ?

j'y ai pensé hier ou avant hier. l'idée c de faire un attachement et envoi. après , pour faire propre, tu mets en place un filtre dans ton lecteur de courrier qui mets les mails avec sauvegardes dans un rep spécifique. j'ai trouvé l'idée excellente. je vais regarder la doc php...

- Pourrait-on installer une alerte automatique qui déclenche le téléchargement
vers l'ordi au moment de se logguer en site interne ?

aucun souci. c po mal aussi. mais faudrait :
1-appeler le script lors de la connexion, donc savoir quel mécanismes se déclenchent ?
2-modifier le script pour faire qu'une sauvegarde par jour. si tu te connectes +eurs par jours, ca sert à rien de refaire la sauvegarde à chaque fois.

une idée intéressante. à développer !

on pourrait propser une fréquence : un petit menu demande -> sauver la base tous les jours/toutes mes semaines/tous les mois ?

Cette fonction de sauvegarde automatique est vraiment intéressante à mettre en
oeuvre dans une prochaine version à mon sens. Pour nous faciliter la vie, et
aussi pour lutter contre la précarité dans laquelle nous plongent les hébergeurs
souvent...

je suis d'accord

--
Matthieu ONFRAY
Webmaster de Japanim.net
Toute l'actualité de la japanimation
http://www.japanim.net

- Pourrait-on installer une alerte automatique qui déclenche le téléchargement
vers l'ordi au moment de se logguer en site interne ?

ah je poste trop vite, j'oublie tjs des idées : le script pourrait pour se lancer et utiliser les accès admin de SPIP.quand t'es connecté il est appelé. si te pas connecté en admin, il le voit et refuse de se lancer...

--
Matthieu ONFRAY
Webmaster de Japanim.net
Toute l'actualité de la japanimation
http://www.japanim.net

pour le mail, j'oublie.
c très réalisable. suffit de mixer mon script avec formmail+ http://www.webfr.org/indexgal.php?url=webmaster/formail.html

un pti mélange et ca marche impec'. je ne le fais pas car l'envoi d'attache est impossible chez online. je ne pourrais pas tester ma réalisation donc pas glop :frowning:

je vais donc me pencher sur l'insertion dans spip : formulaire pour régler les options (actuellement à modifier dans l'entête du fichier), automatisation du processus avec réglage de la fréquence.

quand j'aurais fini ca, je regouperais mes réalisations pour SPIP (corbeille, filtre txt2smil, sauvegarde). ca sera sur http://spip.japanim.net (inexistant à l'heure actuelle)

a+

--
Matthieu ONFRAY
Webmaster de Japanim.net
Toute l'actualité de la japanimation
http://www.japanim.net

At 14:09 07/11/02, ONFRAY Matthieu wrote:

car j'utilise un contrôle de login/password. dans le script que j'ai envoyé sur la liste, la ligne de code est commentée.

teste là
http://www.japanim.net/export_base.php?ecrire=true
ou même
http://www.japanim.net/export_base.php
tu te fais jeter :smiley:

à chacun de rajouter la vérification comme il l'entend.
je fournis le script tel quel, chacun adapte...

Désolé, mais plutot PERListe que PHPiste je ne comprends pas la ligne :
if (($motdepasseADMIN != $pass_admin) || ($id_ADMIN != $login_admin)) die("login ou mot de passe incorrect ! un problème de cookie ? supprimer les cookies du système");

d'où proviennent les vars $motdepasseADMIN, $pass_admin, $id_ADMIN, $login_admin.

Et quelle est la fonction de :
$lesDonnees = str_replace(" ", "'", addslashes($lesDonnees));

Merci d'avance

--
Bernard FRIT <bernard@frit.net>

Consultant Linux & Réseaux www.ldap-linux.com

Désolé, mais plutot PERListe que PHPiste je ne comprends pas la ligne :
if (($motdepasseADMIN != $pass_admin) || ($id_ADMIN != $login_admin)) die("login ou mot de passe incorrect ! un problème de cookie ? supprimer les cookies du système");

$motdepasseADMIN et $id_ADMIN sont renseignés dans mon script
$pass_admin et $login_admin sont passés dans l'url ou via formulaire

Et quelle est la fonction de :
$lesDonnees = str_replace(" ", "'", addslashes($lesDonnees));

euh là joker ! je ne sais plus l'utilité de çà. j'ai fait le script y a des mois et avec un coup d'oeil rapide, je ne vois pas.

--
Matthieu ONFRAY
Webmaster de Japanim.net
Toute l'actualité de la japanimation
http://www.japanim.net

At 16:17 07/11/02, Nicolas Hoizey wrote:

>> On peut pas aller stocker la sauvegarde sur un autre serveur ?
>
> techniquement non. php travaille que sur le système de fichiers
> local. question de sécurité. mais rien n'empêche ensuite un
> transfert ftp (avec cron) pour balancer le fichier sur un autre
> espace.

Si j'ai bien suivi vos échanges à batons rompus, il suffirait de faire
un unique wget sur le premier script qui renverrait les données plutôt
que les enregistrer dans un fichier, non ???

Ben oui !!! C'est ce que fait la commande :

wget -O <nom_du_fichier_en_local> <mon_url>/export_base.php

je ne comprends pas non plus pourquoi on parle de 2 wget successifs.

J'ai testé, ça marche et j'ai mis ça en cron pour un site. Pour
l'instant je n'ai pas sécurisé...

--
Bernard FRIT <bernard@frit.net>

Consultant Linux & Réseaux www.ldap-linux.com

- N'y a t'il pas possibilité d'envoyer par mail la sauvegarde vers le
webmaster

Les mails sont limités à 1Mo en général... pas top ; en revanche tu peux
créer un fichier dans ecrire/data/, et envoyer le lien par mail au
webmaster, qui se chargera ensuite de cliquer dessus pour faire sa
sauvegarde en local ?

Cette fonction de sauvegarde automatique est vraiment intéressante à
mettre en oeuvre dans une prochaine version à mon sens. Pour nous
faciliter la vie, et aussi pour lutter contre la précarité dans laquelle
nous plongent les hébergeurs souvent...

Si on le programme dans un "cron" depuis le site public, ça peut faire ramer
le site en question pour le visiteur qui se trouve à déclencher le cron...
il faut donc éviter de faire ça dans inc-public.php3

Par contre, on pourrait imaginer un truc (tordu) : une image créée en php,
et appelée depuis une page quelconque du site, derrière laquelle se cache le
script suivant :

<?php
    @header('Content-Type: image/png');
    readfile('vide.png'); // (contenu quelconque)

    // regarder si on a déclecnhé le script la dernière fois il y a plus de 24h
    if (! file_exists('ecrire/data/spip.cron')
    OR (date() - filemtime('ecrire/data/spip.cron') > 24*3600)) {
        ... ecrire un fichier ecrire/data/spip.cron
        .. executer le script de sauvegarde et autres croneries
    }
?>

Comme ça s'il y a un timeout le client ne s'en rend pas vraiment compte.

-- Fil

salut,

j'ai fini mon système de sauvegarde. après pas mal de bugs corrigés :slight_smile:

ça résiste à pas mal de problèmes (base illisible, table corrompue, demande de compression alors que c pas supporté sur le serveur, répertoire de sauvegarde introuvable, etc). quand je dis résiste, si la base est inacessible, éviemment la sauvegarde est impossible. mais pour tout problème rencontré, un avertissement spécifique apparaît et décrit le problème. s'il y a moyen de continuer, le script continue le processus. si l'erreur est trop grave, l'arrêt est provoqué.

l'export de toute ma base (du spip + autres trucs) par le script puis l'import ne soulève plus aucun souci. le fichier écrit est "assez" compact (un insert par ligne), compatible 100% phpMyAdmin, écrit proprement (insert into table (champs) values (valeurs)). il peut être compressé en GZ. le fichchier a pour nom : le nom de la base et la date du jour, plus facile pour jongler entre les sauvegardes qu'avec XYZ comme nom :wink: et le fichier contient en commentaire des informations détaillées (date, heure, base dumpée, marqueur de début et fin de fichier)

par défaut (tout se règle dans la conf), le script ne récupère pas les données (juste la structure) des tables avec _index _temp _cache dans le nom car ce sont des données inutiles de SPIP. on peut retirer/ajouter d'autres noms à la liste. la fréquence de sauvegarde est modifiable, elle se règle en jour.

le système vérifie s'il faut sauver lorsqu'on admin se connecte à l'espace privé. pour ne pas scanner le rep des sauvegardes à chaque fois que l'admin est sur la page d'index (c là que se fait l'appel), le scan n'est fait qu'une fois par session -> un cookie est posé. le système peut afficher une petite fenêtre javascript pour confirmer que la base a bien été sauvée.

une page sert de panneau de contrôle et permet de voir ses options et la liste des sauvegardes sur le serveur.

voilà le tour du système.je le laisse tourner sur mon site Japanim.net ce week end en test. je vais rédiger la doc qui sera dispo sur SpipOJapanim bientôt. et après il sera offert à tous.

ce sera simple à installer, en geos ce qu'il faudra faire :
- poster 2 fichiers php sur le serveur
- poster un fichier de configuration. l'éditer. pour les fainéants, une valeur à changer seulement ! sinon toutes les options (une dizaine) sont commentées et modifiables à souhait.
- kk lignes de codes à copier-coller dans index.php3

SpipOJapanim : http://spip.japanim.net/
Japanim : http://www.japanim.net/

a+
--
Matthieu ONFRAY
Webmaster de Japanim.net
Toute l'actualité de la japanimation
http://www.japanim.net

N'ayant pu trouver ce qui suit je l'ai fais moi-même...:wink:

Ce filtre permet d'afficher des étoiles selon la pertinence des
résultats de recherche.

A copier dans mes_fonctions.php3.

Bien entendu "/pict/nav/star.gif" doit exister et être une image
d'étoile sur fond transparent...

Les valeurs 2, 5 et 9 sont le résulats de longs tatonnements..:wink:

// Affiche des étoiles selon pertinence du résultat de recherche
//
// Bernard FRIT <bernard@frit.net>
//
// usage:
// [(#POINTS|star)]&nbsp;<A HREF="#URL_ARTICLE">Lire la suite...</A>

function star($texte) {
    $point= $texte;
    $texte= "";
    $star="<img src='/pict/nav/star.gif'>";
    if ($point > 2) {
       $texte= $star;
    }
    if ($point > 5) {
       $texte= $star."&nbsp;".$star ;
    }
    if ($point > 9) {
       $texte= $star."&nbsp;".$star."&nbsp;".$star ;
    }
    return $texte;
}
--
Bernard FRIT <bernard@frit.net>

Consultant Linux & Réseaux www.ldap-linux.com

Ce filtre permet d'afficher des étoiles selon la pertinence des
résultats de recherche.

A copier dans mes_fonctions.php3.

Bien entendu "/pict/nav/star.gif" doit exister et être une image
d'étoile sur fond transparent...

ca c du boulot salopé, tu fournis même pas l'image !
non je plaisante, ca m'intéresse, je vais sûrement intégrer à mon site.
merci :slight_smile:

--
Matthieu ONFRAY
Webmaster de Japanim.net
Toute l'actualité de la japanimation
http://www.japanim.net

j'ai copié cette idée poour la popularité des articles (dans le resume.php3). Place des étoiles (des ronds chez moi !) en fonctions des % de popularité relative (par paquet de 0 à 10 %, de 10 % à 20 %, de 20 % à 50 % etc.)

si cela vous intéresse... (mais c'est la même fonction remaniée.)

Lorent.

ONFRAY Matthieu a écrit:

Ce filtre permet d'afficher des étoiles selon la pertinence des
résultats de recherche.

A copier dans mes_fonctions.php3.

Bien entendu "/pict/nav/star.gif" doit exister et être une image
d'étoile sur fond transparent...

ca c du boulot salopé, tu fournis même pas l'image !
non je plaisante, ca m'intéresse, je vais sûrement intégrer à mon site.
merci :slight_smile: