Interface web pour la gestion des sauvegardes d'un serveur web

Bonjour a tous je suis étudiant et j’aimerai bénéficier de toute aide :smiley:
L’objectif est de déléguer la tache de récupération des données aux personne qui ne maîtrisent pas forcément l’administration en ligne de commandes.
La plupart des solutions efficaces de gestion de sauvegarde Open Source n’offrent pas un moyen graphique d’administration.
jusqu’à maintenant j’ai réussi a mettre en place un serveur web opérationnel avec une interface web pour se connecter (authentification par session)
Ma question maintenant est comment inclure mes script (script.sh) dans un bouton d’exécution qui run mon script sur l’interface web ???

La plupart des solutions efficaces de gestion de sauvegarde Open Source n’offrent pas un moyen graphique d’administration.

j’utilise rsync et son interface graphique grsync facilement :slight_smile:
http://www.opbyte.it/grsync/

merci je sais lol :stuck_out_tongue: je reformule je voudrais que sa soit sur l’interface web avec un button backup par exemple qui quand on cliquerai dessus le script rsync.sh s’execute automatiquement :smiley: grand merci a toi en tout cas :blush:

voir ce qui peut etre pompé dans webmin :grinning:
http://www.webmin.com/index.html

Filesystem Backup fsdump.wbm.gz Backup and restore filesystems using the dump and restore family of commands.
http://www.webmin.com/standard.html

ho ho ho merci encore :slight_smile: je suis passé par tout sa en ce moment j’utilise debian sans interface graphique je veux tout faire en ligne de commande :stuck_out_tongue: et sans utiliser une db
je te remercie pour ton aide precieuse

Si tu veux faire simple, un script PHP bien protégé avec un shell_exec.

voila

j’aimerai qu’un “boutton qui execute mon script” soi mis dans la page que j’ai nommé “home.php”

Si tu veux un bouton, il faut utiliser un code du type :

<form action="save.php" method="post">
 <button name="submit" value="submit" type="submit">boutton qui execute mon script</button>
</form>

merci @Almtesh j’ai reussi a le faire maintenant mon gros souci est que mon script.sh ne s’execute pas :frowning: j’ai envie de pleurer serieux lol
pourtant je lui ai donné les droits j’ai cherché dans php.ini pour permettre a la fonction exec de marcher mais toujours rien

voila mon script.php

<?php
             session_start();
if(!isset ($_SESSION '[simple_login'])) {
        header ("Location:script.php");
       exit();
} 
if (isset ($_POST['action']))
  {
      exec ('/bin/sh  /var/www/script.sh');
  }
echo '<form method="post" action="script.php" ?action=yes">
 <input name="exec" type="submit" value="Executer" />
</form>';

?>

des suggestions svp ???

Il y a peut-être trois choses qui peuvent bloquer l’exécution de ton script : soit ton fichier n’est pas exécutable, soit il y a un erreur qui fait qu’il ne fonctionne pas (ou qu’il ne foctionne pas seulement dans l’environnement du script php), soit son exéctution prend plus de temps que la limite de temps d’exécution de php.
Dans le premier cas, vérifie son exécutabilité par php avec un petit ls -l /var/www/script.sh. Il doit être accessible en lecture et exécution au moins à l’utilisateur www-data ou au groupe www-data ou à tous les autres (pas conseillé).
Pour le second cas, essaie de le lancer hors php en tant que l’utilisateur www-data et regarde si ça fonctionne.
Pour le troisième cas, tu peux essayer de lancer le script en tâche de fond à l’aide d’une petit esperluette (&) ou d’une autre façon.

Dans tous les cas, si tu n’as pas trop bidouillé ta configuration apache, tu devrais avoir des logs quelque part (genre /var/log/apache).

le fichier est executable en lui donnant les droits d’execution avec chmod a+x script.sh et lui attribuer les droits 755
je l’ai meme esseyer manuellement et il marche tres bien et il prend 5 sec pour que la tache soi faite
ls -l donne ce resultat pr script.sh:

-rw-r----- 1 root www-data 248 déc 19 23:17  script.sh

et pour le cas de la config d’apache j’ai fais tres attention j’ai verifier dans les log
et apres plusieurs test de differente maniere toujours rien :confused:

Au fait, j’espère que ton script ne s’appelle pas vraiment script.sh, ce nom n’est pas conseillé car il ne permet pas de déterminer rapidement la fonction de ce script.

Le script n’est exécutable pour personne, il faut lui ajouter les droits d’exécution pour l’exécuter avec un petit chmod g+x /var/www/script.sh.

Ah ? Et que contient ce sript au juste ?

MDRR non il s’appel pas script.sh et il execute la cmd rsync qui me fais des copie de 3 petit fichier d’une autre machine via ssh
quand je lance le script ./rsynus.sh sa marche tres bien
et a partir de l’interface web nada

Petite question con, tu lances rsync ou /usr/bin/rsync dans ton script. Si tu lances rsync, essaie /usr/bin/rsync à la place, juste pour voir…

voila mon script

#!/bin/sh

rsync -ar  -t  -e  ssh machine2@xxx.xxx.xxx.xxx :/home/dossier/mesfichiers   /dossier/de/reception

#tout droit reservé :p :p

et je met dans le script /usr/bin/rsync a la place de rsync ???

Oui, c’est ça.

c toujours le meme prob( sa marche manuellement tres bien et ne s’execute pas a partir du bouton dans l’interface web) et je crois que sa a un rapport avec le safe_mode d’où des fonction tel que exec ou system sont des fonction sensible qui marche que si on desactive safe_mode enfin je crois

Attend une minute, ta copie rsync, tu la fais via SSH. Comment se passe l’authentification SSH ? Une clef privée ? Un mot de passe ? Un ticket Kerberos ?

avec un passphrase accessible directement "vide"
j’ai pas de probleme a ce niveau chose dont je suis sur…

un moyen de perfectionner script.php sinon ???

Pour l’authentification, tu as aussi le nom de l’utilisateur. Je te suggère un truc du genre rsync -ar -t -e "ssh -l root" machine2@xxx.xxx.xxx.xxx :/home/dossier/mesfichiers /dossier/de/reception. Ça peut être root ou un autre utilisateur de ton choix, tant que cette utilisateur existe sur la machine distante, a un interpréteur qui lui permet d’exécuter rsync (comme /bin/bash, /bin/sh), a un accès en lecture au dossier /home/dossier/mesfichiers et ses sous-dossiers et que le binaire rsync se trouve dans le PATH distant.