Backup Custom,SME7, Disque USB

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

Backup Custom,SME7, Disque USB

Messagepar Stirner » 21 Oct 2006 20:25

Salut,

Sur SME7 j'ai installer un disque USB que j'ais monté dans /home/e-smith/files/ibays/save/html/ aprés avoir instalé BC.
J'accéde parfaitement au disque via Winscp je peux ecrire et suprimer sans problème. Cependant quand je lance une sauvegarde via l'interface de BC j'ai un message d'erreur qui me dit :

Code: Tout sélectionner
Rapport de l'opération
Erreur lors de la sauvegarde !
Type: Problème d'espace disque
Espace disque libre (Mo): 0


Pourtant le disque (40Go) est vide. J'ai penser dans un premier temps à un problème de droits mais même avec 777 ça bloque.

Une idée ?

Merci.
Sur la boîte était indiqué : compatible windows 98, Win 2000, Win XP ou mieux... j'ai installé Linux
Avatar de l’utilisateur
Stirner
Vice-Amiral
Vice-Amiral
 
Messages: 777
Inscrit le: 06 Jan 2006 07:45
Localisation: Calva...Dos...

Messagepar Gaston » 21 Oct 2006 21:44

Salut,
si je ne me trompe tu es tombé sur le mêm bug que moi.
Le problème vient du code utilisé : le résultat de la commande "df" n'est pas utilisable telle que. En effet, avec des points de montage un peu long on obtient un affichage sur 2 lignes, et à partir de là on part en vrille.
La solution pour la version en ligne de commande (et cron) : utiliser "df -P" (Posix compliant), par exemple :
Code: Tout sélectionner
# df
Sys. de fich.        1K-blocs       Occupé Disponible Capacité Monté sur
/dev/mapper/main-root
                       8160184   3155772   4589900  41% /
/dev/md1                101018     19281     76521  21% /boot
/dev/sda1             35349740  25067272  10282468  71% /home
none                    387852         0    387852   0% /dev/shm
# df -P
Sys. de fich.      1024-blocs    Occupé Disponible Capacité Monté sur
/dev/mapper/main-root   8160184   3155772   4589900      41% /
/dev/md1                101018     19281     76521      21% /boot
/dev/sda1             35349740  25067272  10282468      71% /home
none                    387852         0    387852       0% /dev/shm

J'ai donc modifié dans bc-fonction
Code: Tout sélectionner
<         #détermination de la version de SME
<         var=`/sbin/e-smith/db configuration getprop sysconfig ReleaseVersion`
<         if [ "$var" == "6.0.1-01" -o "$var" == "6.0" ]
<         then
<         DISK_FREE_PHY=`df -P -t ext3 -m | awk ' /^\/dev/{sum+=$4} END {printf "%s", sum } '`
<         else
<         DISK_FREE_PHY=`df $CHEMIN | sed -e '1,2d' | awk ' {sum+=$3} END {printf "%s", sum } '`
<         fi
---
># $CHEMIN=       path vers le repertoire de base des sauvegardes
>CHEMIN=`/sbin/e-smith/db confBackupCustom getprop backupcustom chemin`
> DISK_FREE_PHY=`df -P $CHEMIN | sed -e '1,1d' | awk '{print $4}'`

Non seulement cela permet de résoudre le pb des points de montage, mais aussi de généraliser le code pour la V6 et la V7

Pour les backup via l'interface, il faut changer le code dans le cgi, j'avais des idées que je n'ai pas eu le temps de croncrétiser :oops:

G.
Edit correction du lien s'scuse schwing ;)
Dernière édition par Gaston le 21 Oct 2006 21:56, édité 3 fois au total.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar shwing » 21 Oct 2006 21:44

question bête, tu as bien formaté les partochs ?
Avatar de l’utilisateur
shwing
Amiral
Amiral
 
Messages: 1246
Inscrit le: 14 Mars 2004 01:00
Localisation: GE/CH

Messagepar Gaston » 21 Oct 2006 22:22

@Stirner,
peux tu tester les modifs suivantes ?
Code: Tout sélectionner
[root@srv34 functions]# pwd
/etc/e-smith/web/functions
[root@srv34 functions]# diff backupcustom.ori backupcustom -Nur
--- backupcustom.ori    2005-10-02 20:40:34.000000000 +0200
+++ backupcustom        2006-10-21 22:22:43.000000000 +0200
@@ -314,8 +314,8 @@

my $bc_email = db_get_prop(\%conf, "backupcustom","email") || "admin";
my $bc_aemail = db_get_prop(\%conf, "backupcustom","aemail") || "$tr_active";
-my $bc_chemin = "/home/e-smith/files/ibays/save/html";
-#my $bc_chemin = db_get_prop(\%conf, "backupcustom","chemin") || "/home/e-smith/files/ibays/save/html";
+#my $bc_chemin = "/home/e-smith/files/ibays/save/html";
+my $bc_chemin = db_get_prop(\%conf, "confBackupCustom","chemin") || "/home/e-smith/files/ibays/save/html";
my $bc_dirsuser = db_get_prop(\%conf, "backupcustom","dirsuser") || "";


@@ -1898,42 +1898,19 @@
        }

sub diskfree () {
-my $libre;
-
-
-
-               #vérification espace disque
-                  open(DF, "-|")
-                       or exec '/bin/df', $bc_chemin;
-
-#détermination de la version de SME
-
-if ( $bc_versme eq "6.0" || $bc_versme eq "6.0.1-01" ) {
-                   while (<DF>)
-                   {
-                       next unless (/^\//);
-                       (undef, undef, undef, my $f) = split(/\s+/, $_);
-                       $libre += $f;
-                  }
-}
-else
-{
-                   while (<DF>)
-                   {
-                       next unless (/^\ /);
-                       (undef, undef, my $f, undef) = split(/\s+/, $_);
-                       $libre += $f;
-                  }
-
-}
-                       $libre *= 0.9; # pour avoir une marge
-                       $libre /= 1024; # pour l'avoir en Mo
-                       $libre = int($libre);
-                  close DF;
-
-
-return($libre);
-       }
+        my $libre="error";
+        #my $bc_chemin = "/fs1";
+        #vefication espace disque
+        #Filesystem         1024-blocks      Used Available Capacity Mounted on
+        #/dev/vx/dsk/gan_dg01/gan_lvol1     49574       810     46204       2% /fs1
+
+        if(open(DF, "/bin/df -P $bc_chemin|/usr/bin/tail -1 |")) {
+                while (<DF>) {
+                        (undef, undef, undef, $libre) = split(/\s+/, $_);
+                }
+        return ($libre);
+        }
+}


sub version () {
[root@srv34 functions]#

et dire ce que ça donnes (j'ai pas accès à la console graphique ces jours-ci) ? si c'est OK Unilennium pourrait inclure ce correctif dans la contrib.
G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar Stirner » 22 Oct 2006 09:58

Salut,

@Gaston
Merci pour cette grande première (ben oui c'est la premère foi que je touche à du code)

J'ais bien relu je ne pense pas avoir fait d'erreur.

Si via l'interface web je lance un backup manuel j'obtient ces messages d'erreur:

Code: Tout sélectionner
Software error:

syntax error at /etc/e-smith/web/panels/manager/cgi-bin/backupcustom line 1902, near "#my $bc_chemin "
Global symbol "$libre" requires explicit package name at /etc/e-smith/web/panels/manager/cgi-bin/backupcustom line 1909.
Global symbol "$libre" requires explicit package name at /etc/e-smith/web/panels/manager/cgi-bin/backupcustom line 1911.
Execution of /etc/e-smith/web/panels/manager/cgi-bin/backupcustom aborted due to compilation errors.



De même aprés un reboot du serveur si je tente d'accéder à BC j'obtient un message identique.
Sur la boîte était indiqué : compatible windows 98, Win 2000, Win XP ou mieux... j'ai installé Linux
Avatar de l’utilisateur
Stirner
Vice-Amiral
Vice-Amiral
 
Messages: 777
Inscrit le: 06 Jan 2006 07:45
Localisation: Calva...Dos...

Messagepar Stirner » 22 Oct 2006 10:03

Re:

@Swing

Oui la partition est formaté je peux écrire et suprimer via Wincsp j'ai également vérifier l'accés aux fichiers depuis une Ubuntu et une FC5 (en usb).
Sur la boîte était indiqué : compatible windows 98, Win 2000, Win XP ou mieux... j'ai installé Linux
Avatar de l’utilisateur
Stirner
Vice-Amiral
Vice-Amiral
 
Messages: 777
Inscrit le: 06 Jan 2006 07:45
Localisation: Calva...Dos...

Messagepar Stirner » 22 Oct 2006 11:47

Re:


Partant du principe que je suis un grand newbee j'ai tou repries (réédition du fichier backupcustom). lancement de la sauvegarde SQL pas de message d'erreur sur l'interface web. Cependant dans les logs l'erreur est identique :


Code: Tout sélectionner
Début de la sauvegarde : 2006-10-22 11:44
2006-10-22 11:44 -> Espace disque insuffisant pour réaliser la sauvegarde
2006-10-22 11:44 -> Vérifiez les paramètres de configuration des sauvegardes ou nettoyez votre disque dur
2006-10-22 11:44 -> Espace disponible  0 ko
2006-10-22 11:44 -> Envoi du rapport par Email



Mais vous êtes sur la bonne voie en effet jusque la les répertoires daily full log... étaient inexistants et maintenant je les retrouve bien sur mon disque usb.
Sur la boîte était indiqué : compatible windows 98, Win 2000, Win XP ou mieux... j'ai installé Linux
Avatar de l’utilisateur
Stirner
Vice-Amiral
Vice-Amiral
 
Messages: 777
Inscrit le: 06 Jan 2006 07:45
Localisation: Calva...Dos...

Messagepar Gaston » 22 Oct 2006 18:09

bonjour,
no comprendo ...
as tu compris que le code que je donnais était un diff entre les 2 fichiers ?
je n'avait pas testé hier soir, là je viens de le faire :)
je remets les choses de façon plus claire
Code: Tout sélectionner
###  /etc/e-smith/web/functions/backupcustom
#### remplacer la fonction diskfree() par

sub diskfree () {
#vefication espace disque
# bc_chemin=`/sbin/e-smith/db confBackupCustom getprop backupcustom chemin`
# df -P $bc_chemin
#Sys. de fich.      1024-blocs    Occupé Disponible Capacité Monté sur
#/dev/mapper/datavg-datavol01    198337      5664    182433       4% /home/e-smith/files/ibays/save/files

        my $libre="error";
        if(open(DF, "/bin/df -P $bc_chemin|/usr/bin/tail -1 |")) {
                while (<DF>) {
                        (undef, undef, undef, $libre) = split(/\s+/, $_);
                }
        return ($libre);
        }
}
####

### changer les lignes
317 #my $bc_chemin = "/home/e-smith/files/ibays/save/html";
318 my $bc_chemin = db_get_prop(\%conf, "confBackupCustom","chemin") || "/home/e-smith/files/ibays/save/html";


Ca a l'air de marcher de mon côté :-k
peux-tu vérifier ?
G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar Stirner » 22 Oct 2006 19:21

Salut,

@gaston
Pas le temps ce soir, en plus mon raid m'a laché GRRR reconstitution en cour. Je regarde ca demain matin.

@+
Sur la boîte était indiqué : compatible windows 98, Win 2000, Win XP ou mieux... j'ai installé Linux
Avatar de l’utilisateur
Stirner
Vice-Amiral
Vice-Amiral
 
Messages: 777
Inscrit le: 06 Jan 2006 07:45
Localisation: Calva...Dos...

Messagepar Stirner » 23 Oct 2006 17:53

Salut,

Toujours le même message d"erreur :

Code: Tout sélectionner
2006-10-23 17:34 -> Espace disque insuffisant pour réaliser la sauvegarde
2006-10-23 17:34 -> Vérifiez les paramètres de configuration des sauvegardes ou nettoyez votre disque dur
2006-10-23 17:34 -> Espace disponible  0 ko
2006-10-23 17:34 -> Envoi du rapport par Email


Nouveau problème :

J'ai effectué une sauvegarde sql et tenté de faire une restauration et j'obtient ce message :

Code: Tout sélectionner
Software error:

Can't call method "disconnect" without a package or object reference at /etc/e-smith/web/panels/manager/cgi-bin/restocustom line 412.


merci de votre aide.
Sur la boîte était indiqué : compatible windows 98, Win 2000, Win XP ou mieux... j'ai installé Linux
Avatar de l’utilisateur
Stirner
Vice-Amiral
Vice-Amiral
 
Messages: 777
Inscrit le: 06 Jan 2006 07:45
Localisation: Calva...Dos...

Messagepar Stirner » 04 Nov 2006 14:58

Salut,

Désolé de ne pas avoir répondu plus tôt, pas mal de taf.

Résumé des épisodes précédent :

Config :
SME 7
BC 3.2-0.0
Disque USB 40 GO formaté en ext3 monter sur ../save/html/

première erreur rencontré lors du lancement de la sauvegarde

Code: Tout sélectionner
Rapport de l'opération
Erreur lors de la sauvegarde !
Type: Problème d'espace disque
Espace disque libre (Mo): 0

Pas de sauvegarde et les repertoires daily, full, log... ne sont pas créés.

Voici les modifications proposé par Gaston sur différents fichiers:

Code: Tout sélectionner
=== /root/bc-fonction ====
remplacer (attention aux majuscules):

#CHEMIN=`/sbin/e-smith/db configuration getprop backupcustom chemin`
CHEMIN=/home/e-smith/files/ibays/save/html

par

# Destination de la sauvegarde sans le '/' a la fin
CHEMIN=`/sbin/e-smith/db confBackupCustom getprop backupcustom chemin`

et

#détermination de la version de SME
var=`/sbin/e-smith/db configuration getprop sysconfig ReleaseVersion`
if [ "$var" == "6.0.1-01" -o "$var" == "6.0" ]
then
DISK_FREE_PHY=`df -P -t ext3 -m | awk ' /^\/dev/{sum+=$4} END {printf "%s", sum } '`
else
DISK_FREE_PHY=`df $CHEMIN | sed -e '1,2d' | awk ' {sum+=$3} END {printf "%s", sum } '`
fi

par :

DISK_FREE_PHY=`df -P $CHEMIN | sed -e '1,1d' | awk '{print $4}'`


Code: Tout sélectionner
===/etc/e-smith/web/functions/backupcustom ===
remplacer :

my $bc_chemin = db_get_prop(\%conf, "confbackupcustom","chemin") || "/home/e-smith/files/ibays/save/html";

par

my $bc_chemin = db_get_prop(\%conf, "confBackupCustom","chemin") || "/home/e-smith/files/ibays/save/html";

===


Code: Tout sélectionner
save.sh :
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/root:/root/save.sh:/usr/local/bin
par
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/root:/usr/local/bin


pareil pour resto.sh


Suite à ces modifications la sauvegarde fonctionne en revanche on rencontre toujours des problèmes avec la restauration des fichiers :
Code: Tout sélectionner
Can't call method "disconnect" without a package or object reference at /etc/e-smith/web/panels/manager/cgi-bin/restocustom line 412.



@+
Avatar de l’utilisateur
Stirner
Vice-Amiral
Vice-Amiral
 
Messages: 777
Inscrit le: 06 Jan 2006 07:45
Localisation: Calva...Dos...

Messagepar Gaston » 05 Nov 2006 23:41

Salut,
merci pour le résumé :)
néanmoins tu as oublié un fix (ou alors c'est moi qui te l'ai pas envoyé :-k
Stirner a écrit:Suite à ces modifications la sauvegarde fonctionne en revanche on rencontre toujours des problèmes avec la restauration des fichiers :
Code: Tout sélectionner
Can't call method "disconnect" without a package or object reference at /etc/e-smith/web/panels/manager/cgi-bin/restocustom line 412.


remplacer dans /etc/e-smith/web/functions/restocustom les appels
Code: Tout sélectionner
close_dbi ($dbh);

par
Code: Tout sélectionner
$dbh->disconnect or err_trap("Cannot disconnect from the database");


mais c'est un fix q&r. Si quelqu'un sait comment écrire proprement un appel de fonction avec un handler de BDD en paramètre ...

G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar droide » 11 Nov 2006 13:07

Bonjour,
je n'est pas tout compris de ce que vous faites mais j'en profite de ce post car ma question s'y attache.

Je voudrais pouvoir faire mes backup en branchant un disque dur externe sur le serveur directement (en USB ou Sata) et lancer la sauvegarde dessus.

Je précise que le disque ne sera brancher que pour les backup et me sert a autre chose a coté.

est-ce possible simplement ?

merci.
Avatar de l’utilisateur
droide
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 139
Inscrit le: 04 Avr 2006 16:13
Localisation: Chateau-Thierry


Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron