#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
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