Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 28/06/2008, à 01:42

n3o51

Re : Probleme Script_Auto_install

Bonsoir du nouveau
Mon log

++ date +%F
+ DATE=2008-06-28
+ confrep=/home/n3o/.rep.conf
++ cat /home/n3o/.rep.conf/repdest
cat: /home/n3o/.rep.conf/repdest: Aucun fichier ou dossier de ce type
+ DIR=
+ '[' -d /home/n3o/.rep.conf ']'
+ mkdir /home/n3o/.rep.conf
+ CREATE
hierpreinstall: line 32: CREATE : commande introuvable
+ echo ''
+ grep 'Sauvegarder sources.list et les  paquets'
+ '[' 1 = 0 ']'
+ echo ''
+ grep 'Sauvegarder votre repertoire HOME'
+ '[' 1 = 0 ']'

hierpreinstall: line 32: CREATE : commande introuvable

Et donc ma fonction CREATE

	function CREATE () {
repdest=$(zenity --file-selection --directory --title="choisissez le repertoire de destination pour vos sauvegarde.") && echo $repdest >$confrep/repdest
		if [ "${PIPESTATUS[0]}" != "0" ]; then
  zenity --error --title="Une erreur est survenue" --text="Aucun chemin spécifier"
                fi
	
}

Welcome to the real world
________________________________

Hors ligne

#27 Le 28/06/2008, à 02:02

n3o51

Re : Probleme Script_Auto_install

Aussi pourriez vous me dire si comme ca c'est pas mieux ecrit :

#!/bin/bash
##    			  Script_auto install pré-version 

####                  DEBUT DU SCRIPT                                                     ####
# Je definie les variables

DATE=`date +%F`
confrep="/home/$USER/.rep.conf"
DIR=$(cat "$confrep/repdest")
ACT=$(zenity --list --checklist --width=400 --height=350 \
        --title "Auto_install by N3o" \
        --text="Veuillez sélectionnez les informations demandés:" \
        --column="Selections" --column="" --column="Categories" --hide-column=2  \
        FALSE Save "Menu sauvegarde" \
        FALSE rest "Menu restauration" \
        FALSE Auto "Menu Auto_install" )

## Le pré_Menu
#zenity --info --title='Script Auto_install Version 0.1 Alpha' --text="Ce script se charge de sauvegarder ou restaurer votre système
#\n Ce script vous est proposé par :
#\n - N3o51"
# Je teste l'excistence du fichier contenant le chemin du Backup (
#J'appelle Backup la sauvegarde du HOME etc...
# ) 
## Le Menu 
	if [ -d "$confrep" ] ; then 
		if [ -f "$confrep/repdest" ] ; then 
# Je lance la Fonction MENU 
	            MENU 

		else
# Je lance la fonction CREATE 
	CREATE	
		 fi
		else
# Je créer le repertoire de configuration de ce script 
		mkdir "$confrep"
# Je lance la fonction CREATE 
	CREATE		
		fi

## Les Fonctions
# La fonction CREATE
 function CREATE  {
mkdir "$confrep"
cat "$confrep/repdest"
repdest=$(zenity --file-selection --directory --title="choisissez le repertoire de destination pour vos sauvegarde.") && echo $repdest >$confrep/repdest ;
		if [ "${PIPESTATUS[0]}" != "0" ] ; then
  zenity --error --title="Une erreur est survenue" --text="Aucun chemin spécifier"
                fi
	
}

# La fonction ACT 
  function ACT {
ACT=$(zenity --list --checklist --width=400 --height=350 \
        --title "Auto_install by N3o" \
        --text="Veuillez sélectionnez les informations demandés:" \
        --column="Selections" --column="" --column="Categories" --hide-column=2  \
        FALSE Save "Menu sauvegarde" \
        FALSE rest "Menu restauration" \
        FALSE Auto "Menu Auto_install" );
}
# La fonction SAV 
 function SAV {
SAV=$(zenity --list --checklist --width=400 --height=350 \
        --title "=== Menu Sauvegarde ===" \
        --text="Veuillez sélectionnez les informations demandés:" \
        --column="Selection" --column="Categories" \
        TRUE    "Creer votre dossier de sauvegarde" \
        FALSE   "Compression de votre backup & graver votre backup" \
        FALSE   "Sauvegarder sources.list et les  paquets " \
        FALSE   "Sauvegarder tous votre systeme" \
        FALSE   "Sauvegarder votre repertoire HOME" \
        FALSE   "Sauvegarder votre repertoire OPT" );                  
} 
# La fonction RES 
 function RES {
RES=$(zenity --list --checklist --width=400 --height=350 \
        --title "==== Menu restauration ====" \
        --text="Veuillez sélectionnez les informations demandés:" \
        --column="Selection" --column="Categories" \
        TRUE    "Restaurer vos paquets installés  et votre sources list " \
        FALSE   "Restaurer votre repertoire Home" \
        FALSE   "Restaurer votre repertoire OPT" );  
}   
# La fonction AUT 
 function AUT {
AUT=$(zenity --list --checklist --width=400 --height=350 \
        --title "==== Menu Auto_install ====" \
        --text="Veuillez sélectionnez les informations demandés:" \
        --column="Selection" --column="Categories" \
        FALSE installA  "Installation Automatique (utilisation de votre listes des paquets)" \
        FALSE installM  "Installation manuelle (utilisation de votre listes des paquets" );
}
# La fonction MENU 
function MENU {
while true ; do
    ACT 
       if [ $? != 0 ] ; then
		exit 0
	fi

case $ACT in
  
 Save)
# Menu sauvegarde
     SAV 
        if [ "${PIPESTATUS[0]}" != "0" ]; then
                    zenity --error --title="Une erreur est survenue" --text="Une erreur est survenue lors de la recherche des informations systeme"
        fi
            
 ;;
  
 rest)
 # Menu Restauration 
     RES
        if [ "${PIPESTATUS[0]}" != "0" ]; then
                    zenity --error --title="Une erreur est survenue" --text="Une erreur est survenue lors de la recherche des informations systeme"
        fi
            
 ;;

 auto)
# Menu Auto_install
     AUT 
        if [ "${PIPESTATUS[0]}" != "0" ]; then
                    zenity --error --title="Une erreur est survenue" --text="Une erreur est survenue lors de la recherche des informations systeme"
        fi
;;

	esac
done

}
##2.		Sauvegarder sources.list  liste des paquets


echo "$SAV" | grep "Sauvegarder sources.list et les  paquets" >/dev/null
            if [ "$?" = 0 ] ; then

cd $DIR;
	mkdir -p $DATE;


cp "/etc/apt/sources.list" "$repdest/$DATE/sources.$DATE.list" && dpkg --get-selections > ./$DATE/paquets.$DATE.list;


 if [ "${PIPESTATUS[0]}" != "0" ]; then
                    zenity --error --title="Une erreur est survenue" --text="Votre dossier de sauvegarde n'as pas ete créer"
                    fi
            fi

##3.		Sauvegarde du repertoires HOME
echo "$SAV" | grep "Sauvegarder votre repertoire HOME" >/dev/null
   if [ "$?" = 0 ] ; then
mkdir -p $DIR/$USER;
cp -r /home/$USER/ $DIR/$USER | zenity --progress --title="$0" --text="Veuillez patienter pendant la sauvegarde de votre home" --auto-close
   
   fi



## Le Menu 
	if [ -d "$confrep" ] ; then 
		if [ -f "$confrep/repdest" ] ; then 
# Je lance la Fonction MENU 
	 MENU 

		else
# Je lance la fonction CREATE 
	CREATE	
		 fi
		else
# Je créer le repertoire de configuration de ce script 
		mkdir "$confrep"
# Je lance la fonction CREATE 
	CREATE		
		fi





                                 








###############Menu Sauvegarde

Y ce lance pas comme je voudrai

Dernière modification par n3o51 (Le 28/06/2008, à 02:18)


Welcome to the real world
________________________________

Hors ligne

#28 Le 28/06/2008, à 03:30

redisded

Re : Probleme Script_Auto_install

Bonsoir,
désolé j'avais du monde ce soir, je regarde le script avec toi demain si tu veu.
pour la fonction CREATE, tu dois la déclarer avant : la tu appel la fonction mais le script ne la connais pas encore.
Le mieux est de définir toutes les fonctions au début du script et de ne commencer les actions qu'apres comme ca tu sera sur d'éviter ce genre de pb wink

EDIT : J'ai eu ton mail, je t'ai ajouté à mes contacts.

Dernière modification par redisded (Le 28/06/2008, à 03:30)

Hors ligne

#29 Le 28/06/2008, à 08:55

n3o51

Re : Probleme Script_Auto_install

Merci pas de soucis


Welcome to the real world
________________________________

Hors ligne

#30 Le 28/06/2008, à 11:36

redisded

Re : Probleme Script_Auto_install

Bon alors je viens de jeter un oeil à ce que tu as fais et voici quelques remarques :

Tout d'abord, je me suis permet de réorganiser un peu le script : definition des varibles et des fonctions au début du script, puis lancement des actions.
J'ai également corrigé les indentations pour une meilleure lisibilité :

#!/bin/bash
##                  Script_auto install pré-version 

####                  DEBUT DU SCRIPT                                                     ####
# Je definie les variables

DATE=`date +%F`
confrep="/home/$USER/.rep.conf"
DIR=$(cat "$confrep/repdest")
#ACT=$(zenity --list --checklist --width=400 --height=350 --title "Auto_install by N3o" --text="Veuillez sélectionnez les informations demandés:" \
#--column="Selections" --column="" --column="Categories" --hide-column=2  \
#FALSE Save "Menu sauvegarde" \
#FALSE rest "Menu restauration" \
#FALSE Auto "Menu Auto_install" )

## Les Fonctions
# La fonction CREATE
function CREATE  {
mkdir "$confrep"
#cat "$confrep/repdest" --->pkoi?
repdest=$(zenity --file-selection --directory --title="choisissez le repertoire de destination pour vos sauvegarde.") && echo "$repdest" >$confrep/repdest
if [ "${PIPESTATUS[0]}" != "0" ] ; then
	zenity --error --title="Une erreur est survenue" --text="Aucun chemin spécifier"
fi
}

# La fonction ACT 
function ACT {
ACT=$(zenity --list --checklist --width=400 --height=350 --title "Auto_install by N3o" --text="Veuillez sélectionnez les informations demandés:" \
--column="Selections" --column="" --column="Categories" --hide-column=2  \
FALSE Save "Menu sauvegarde" \
FALSE rest "Menu restauration" \
FALSE Auto "Menu Auto_install" )
}
# La fonction SAV 
function SAV {
SAV=$(zenity --list --checklist --width=400 --height=350 --title "=== Menu Sauvegarde ===" --text="Veuillez sélectionnez les informations demandés:" \
--column="Selection" --column="Categories" \
TRUE "Creer votre dossier de sauvegarde" \
FALSE "Compression de votre backup & graver votre backup" \
FALSE "Sauvegarder sources.list et les  paquets " \
FALSE "Sauvegarder tous votre systeme" \
FALSE "Sauvegarder votre repertoire HOME" \
FALSE "Sauvegarder votre repertoire OPT" )                  
} 
# La fonction RES 
function RES {
RES=$(zenity --list --checklist --width=400 --height=350 --title "==== Menu restauration ====" --text="Veuillez sélectionnez les informations demandés:" \
--column="Selection" --column="Categories" \
TRUE    "Restaurer vos paquets installés  et votre sources list " \
FALSE   "Restaurer votre repertoire Home" \
FALSE   "Restaurer votre repertoire OPT" )  
}   
# La fonction AUT 
function AUT {
AUT=$(zenity --list --checklist --width=400 --height=350 --title "==== Menu Auto_install ====" --text="Veuillez sélectionnez les informations demandés:" \
--column="Selection" --column="Categories" \
FALSE installA  "Installation Automatique (utilisation de votre listes des paquets)" \
FALSE installM  "Installation manuelle (utilisation de votre listes des paquets" );
}
# La fonction MENU 
function MENU {
while true ; do
	ACT 
	if [ $? != 0 ] ; then
		exit 0
	fi

	case $ACT in
  
		Save)
		# Menu sauvegarde
			SAV 
			if [ "${PIPESTATUS[0]}" != "0" ]; then
				zenity --error --title="Une erreur est survenue" \
				--text="Une erreur est survenue lors de la recherche des informations systeme"
			fi
			;;
		rest)
		# Menu Restauration 
			RES
			if [ "${PIPESTATUS[0]}" != "0" ]; then
				zenity --error --title="Une erreur est survenue" \
				--text="Une erreur est survenue lors de la recherche des informations systeme"
			fi
			;;
		auto)
		# Menu Auto_install
			AUT 
			if [ "${PIPESTATUS[0]}" != "0" ]; then
				zenity --error --title="Une erreur est survenue" \
				--text="Une erreur est survenue lors de la recherche des informations systeme"
			fi
			;;

	esac
done
}

## Le pré_Menu
#zenity --info --title='Script Auto_install Version 0.1 Alpha' --text="Ce script se charge de sauvegarder ou restaurer votre système
#\n Ce script vous est proposé par :
#\n - N3o51"
# Je teste l'excistence du fichier contenant le chemin du Backup (
#J'appelle Backup la sauvegarde du HOME etc...
# ) 
## Le Menu 
if [ -d "$confrep" ] ; then 
	if [ -f "$confrep/repdest" ] ; then 
		# Je lance la Fonction MENU 
		MENU 
	else
		# Je lance la fonction CREATE 
		CREATE    
	fi
else
# Je créer le repertoire de configuration de ce script 
	mkdir "$confrep"
# Je lance la fonction CREATE 
	CREATE        
fi


##2.        Sauvegarder sources.list  liste des paquets


echo "$SAV" | grep "Sauvegarder sources.list et les  paquets" >/dev/null
if [ "$?" = 0 ] ; then
	cd $DIR ; mkdir -p $DATE
	cp "/etc/apt/sources.list" "$repdest/$DATE/sources.$DATE.list" && dpkg --get-selections > ./$DATE/paquets.$DATE.list;
	if [ "${PIPESTATUS[0]}" != "0" ]; then
		zenity --error --title="Une erreur est survenue" --text="Votre dossier de sauvegarde n'as pas ete créer"
	fi
fi

##3.        Sauvegarde du repertoires HOME
echo "$SAV" | grep "Sauvegarder votre repertoire HOME" >/dev/null
if [ "$?" = 0 ] ; then
	mkdir -p $DIR/$USER;
	cp -r /home/$USER/ $DIR/$USER | zenity --progress --title="$0" --text="Veuillez patienter pendant la sauvegarde de votre home" --auto-close
fi

## Le Menu 
# if [ -d "$confrep" ] ; then 
#	if [ -f "$confrep/repdest" ] ; then 
	# Je lance la Fonction MENU 
#		MENU 
#	else
	# Je lance la fonction CREATE 
#		CREATE    
#	fi
#else
# Je créer le repertoire de configuration de ce script 
#	mkdir "$confrep"
	# Je lance la fonction CREATE 
#	CREATE        
#fi

ensuite :

- La variable ACT est déclaré 2 fois : une fois au tout début du script, une autre fois dans la fonction ACT (il vaut mieux la laisser dans la fonction, car déclaré en variable comme tu l'a fait des le début, le script va te demander l'action immédiatement; si tu le laisse dans la fonction, ce menu ne sera proposé que lorsque tu apellera ta fonction).

- Au début du script, DIR=$(cat "$confrep/repdest"), mais repdest n'existe pas. Tu souhaite en faite faire référence a la variable repdest definit par l'user, mais tu dois pour cela appeler  "$repdest", sinon, le script cherche un dossier qui s'appel repdest. De plus, cette commande est lancée avant que tu demande à l'user son rep de destination, la variable n'est donc pas encore créée lorsque tu invoque cette commande.

- Le menu est présent deux fois.

Un petit conseil maintenant (bon je suis pas un pro non plus mais je pense que cela sera plus simple comme ca) :

Tu as pour l'instant principalement créé les menus et sous-menus, mais au fur et à mesure que tu va écrire ton script, il se peut que tu change plusieurs fois d'avis sur la maniere d'organiser les fonctions et donc d'avoir à modifier tes menus plusieures fois.
Je te conseillerais plutot de d'abord écrire toutes les fonctions "par actions" (ex : une fonction sauvegarde qui demande le rep a sauvegarder, le rep de dest, puis qui effectue la copie. une autre de restauration qui contient toute les actions a faire en cas de restaurations etc...). En bref créer d'abord une fonction pour chaque action que le script proposera d'effectuer, bien tester ces fonctions, et ensuite agencer ton menu avec les fonctions que tu as créée. Je pense vraiment que ce sera plus simple de procéder de cette maniere.

Si tu as d'autres questions, n'hésite pas, ici ou sur mon msn.

Dernière modification par redisded (Le 28/06/2008, à 11:39)

Hors ligne

#31 Le 29/06/2008, à 14:10

n3o51

Re : Probleme Script_Auto_install

Bonjour et bien j'avance doucement ....

#!/bin/bash
##                  Script_auto install pré-version 

####                  DEBUT DU SCRIPT                                                     ####
# Je definie les variables

DATE=`date +%F`
confrep="/home/$USER/.rep.conf"
DIR=$(cat "$confrep/repdest")

## Les Fonctions

# La fonction CREATE
function CREATE () {
mkdir "$confrep"
zenity --info --title='Creation du dossier de sauvegarde' --text="Merci de selectionner votre dossier de sauvegarde dans la fenetre suivante"
repdest=$(zenity --file-selection --directory --title="choisissez le repertoire de destination pour vos sauvegarde.") && echo "$repdest" >$confrep/repdest
if [ "${PIPESTATUS[0]}" != "0" ] ; then
    zenity --error --title="Une erreur est survenue" --text="Aucun chemin spécifier"
fi
}

# La fonction ACT 
function ACT () {
ACT=$(zenity --list --checklist --width=400 --height=350 --title "Auto_install by N3o" --text="Veuillez sélectionnez les informations demandés:" \
--column="Selection" --column="" --column="Categories" --hide-column=2  \
FALSE Save "Menu sauvegarde" \
FALSE Rest "Menu restauration" \
FALSE Auto "Menu Auto_install" )
}
# La fonction SAV 
function SAV ()  {
SAV=$(zenity --list --checklist --width=510 --height=350 --title "=== Menu Sauvegarde ===" --text="Veuillez sélectionnez les informations demandés:" \
--column="Selection" --column="Categories" \
FALSE "Compression de votre backup & graver votre backup" \
FALSE "Sauvegarder sources.list et les  paquets " \
FALSE "Sauvegarder tous votre systeme" \
FALSE "Sauvegarder votre repertoire HOME" \
FALSE "Sauvegarder votre repertoire OPT" )                  
} 
# La fonction RES 
function RES () {
RES=$(zenity --list --checklist --width=400 --height=350 --title "==== Menu restauration ====" --text="Veuillez sélectionnez les informations demandés:" \
--column="Selection" --column="Categories" \
TRUE    "Restaurer votre sources list" \
FALSE   "Creer votre mini-deb de paquets installés" \
FALSE   "Restaurer votre repertoire Home" \
FALSE   "Restaurer votre repertoire OPT" )  
}   
# La fonction AUT 
function AUT () {
AUT=$(zenity --list --checklist --width=400 --height=350 --title "==== Menu Auto_install ====" --text="Veuillez sélectionnez les informations demandés:" \
--column="Selection" --column="" --column="Categories" --hide-column=2  \
FALSE installA  "Installation Automatique (utilisation de votre listes des paquets)" \
FALSE installM  "Installation manuelle (utilisation de votre listes des paquets" )
}
# La fonction SAVE 
function SAVE () {
zenity --info --title='Selection de votre dossier' --text="Merci de selectionner votre dossier contenant les sauvegardes dans la fenetre suivante"
dest=$(zenity --file-selection --directory --title="choisissez le repertoire de destination pour vos sauvegarde.") && echo "$dest" >$confrep/dest
if [ "${PIPESTATUS[0]}" != "0" ] ; then
    zenity --error --title="Une erreur est survenue" --text="Aucun chemin spécifier"
fi
}
# La fonction MENU 
function MENU () {
while true ; do
    ACT 
    if [ $? != 0 ] ; then
        exit 0
    fi

    case $ACT in
  
        Save)
        # Menu sauvegarde
            SAV 
            if [ "${PIPESTATUS[0]}" != "0" ]; then
                zenity --error --title="Warning" \
                --text="Rien de selectionner retour au menu"
            fi
            ;;
        Rest)
        # Menu Restauration 
           if [ -d "$confrep" ] ; then 
    if [ -f "$confrep/dest" ] ; then 
            RES
else 
 SAVE
fi 
fi 
            if [ "${PIPESTATUS[0]}" != "0" ]; then
                zenity --error --title="Warning" \
                --text="Rien de selectionner retour au menu"
            fi
            ;;
        Auto)
        # Menu Auto_install
            AUT 
            if [ "${PIPESTATUS[0]}" != "0" ]; then
                zenity --error --title="Warning" \
                --text="Rien de selectionner retour au menu"
            fi
            ;;

    esac
done
}

## Le pré_Menu
#zenity --info --title='Script Auto_install Version 0.1 Alpha' --text="Ce script se charge de sauvegarder ou restaurer votre système
#\n Ce script vous est proposé par :
#\n - N3o51"
# Je teste l'excistence du fichier contenant le chemin du Backup (
#J'appelle Backup la sauvegarde du HOME etc...
# ) 
## Le Menu 
if [ -d "$confrep" ] ; then 
    if [ -f "$confrep/repdest" ] ; then 
        # Je lance la Fonction MENU 
        MENU 
    else
        # Je lance la fonction CREATE 
        CREATE    
    fi
else
# Je créer le repertoire de configuration de ce script 
    mkdir "$confrep"
# Je lance la fonction CREATE 
    CREATE        
fi

### Fin du script 



### Debut des Actions Sauvegarde

##2.	Sauvegarder sources.list  liste des paquets

echo "$SAV" | grep "Sauvegarder sources.list et les  paquets" >/dev/null
if [ "$?" = 0 ] ; then
    cd $DIR ; mkdir -p $DATE
    cp "/etc/apt/sources.list" "$repdest/$DATE/sources.$DATE.list" && dpkg --get-selections > ./$DATE/paquets.$DATE.list;
    if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --title="Une erreur est survenue" --text="Votre dossier de sauvegarde n'as pas ete créer"
    fi
fi

##3.	Sauvegarde du repertoires HOME

echo "$SAV" | grep "Sauvegarder votre repertoire HOME" >/dev/null
if [ "$?" = 0 ] ; then
    mkdir -p $DIR/$USER;
    cp -r /home/$USER/ $DIR/$USER | zenity --progress --title="$0" --text="Veuillez patienter pendant la sauvegarde de votre home" --auto-close
fi

##4.	Sauvegarde du repertoires opt

echo "$SAV" | grep "Sauvegarder votre repertoire OPT" >/dev/null
if [ "$?" = 0 ] ; then
    mkdir -p $DIR/opt;
    cp -r /opt $DIR/opt | zenity --progress --title="$0" --text="Veuillez patienter pendant la sauvegarde de OPT" --auto-close
fi


### Debut des Actions Restauration

##1.	Restauration de votre sources list
echo "$RES" | grep "Restaurer votre sources list" >/dev/null
##2.	Creation du mini-deb
echo "$RES" | grep "Creer votre mini-deb de paquets installés" >/dev/null
##3.	Restauration de votre Home 
echo "$RES" | grep "Restaurer votre repertoire Home" >/dev/null
##4.	Restauration de OPT
echo "$RES" | grep "Restaurer votre repertoire OPT" >/dev/null
### Debut des Actions Installation 

##1.	Installation Automatique

##2.	Installation Manuel

Welcome to the real world
________________________________

Hors ligne