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.

#1 Le 08/11/2011, à 12:07

Shawa

[Résolu] exécuter un script marchant auparavant sur Xubuntu et Ubuntu

Bonjour,

Je me suis fait un script de sauvegarde de données basé sur rsync qui marchait très bien sous Ubuntu et Xubuntu. Je n'arrive cependant pas à l'exécuter sous Lubuntu.

Merci de m'aiguiller.


#!/bin/bash
# Par MulX (Aymeric) et Talagath 15/01/08
# Sujet original : http://gw.lenezir.fr/viewtopic.php?f=9&t=164
# v1.0
# Faire les sauvegardes de mes données sur un disque dur externe avec dar et autorun.inf

# pour donner un nom "raccourci" (incluant le chemin) au fichier backuperror.log :
backup=/media/Hangar/Script_sauvegarde/backuperror.log
# à noter l'usage des ">" : un seul ">" renvoie le contenu du terminal dans le fichier indiqué en écrasant tout ce que contient déjà ce fichier.
# ">>" renvoie le contenu du terminal sans écraser ce que contient déjà le fichier.
# Le chiffre "2" suivi d'un seul ">" renvoie seulement les messages d'erreurs générés par le processus dans le fichier indiqué
# en écrasant le contenu de ce fichier. "2>>" renvoie les erreurs sans écraser le contenu du fichier.

# Pour afficher les notifications d'avancement du script
exec 3> >(zenity --notification ---window-icon="/media/Hangar/Script_sauvegarde/dialog-apply.svg" --listen)
echo "Sauvegarde en cours" >&3

reponseZenity=$(zenity --list --checklist --width=500 --height=250 \
    --title "Sélectionner les opérations à effectuer" \
    --text="Veuillez sélectionnez les opérations à effectuer :" \
    --column="À faire ?" --column="Description" --column="ID" \
    --print-column=3 --hide-column=3 \
    FALSE "Faire la sauvegarde de home sur le PC Shawa" "1"\
    FALSE "Faire la sauvegarde de Partage sur le PC Shawa" "2" \
    FALSE "Faire la sauvegarde de home sur le Portable Solenn" "3"\
    FALSE "Faire la sauvegarde de Partage sur le Portable Solenn" "4" \
    FALSE "Éteindre l'ordinateur après les sauvegardes" "5")


# On transforme la réponse de zenity avec ' ' plutôt que des '|'
reponseIFS=$(echo "$reponseZenity" | sed "s/|/ /g" )

# Fonction pour faire appel à dar plus simplement
function call_rsync
    {
    # $1 == nom de backup
    # $2 == Dossier a sauvegarder
    # option sup.
    REPERTOIRE_DESTINATION=$1
    REPERTOIRE_SOURCE=$2
    shift 2
        echo -n calling rsync with :
    echo -e " rsync -r -t -p -o -g -v --delete -l $REPERTOIRE_SOURCE "/media/Hangar"$REPERTOIRE_DESTINATION""$@"
#echo -e " dar -v -w -y -s4000M -c "/media/disk/Sauvegardes/Sauvegarde"$nomDeBackup"" -R "$dossierBackup" $@"
rsync -r -t -p -o -g -v --delete -l --filter "- .thumbnails/" --filter "- .Trash/" --filter "- *.tmp" --filter "- *.iso" --filter "- lost+found/" --filter "- .cache/" --filter "- .beagle/" $REPERTOIRE_SOURCE "/media/Hangar/"$REPERTOIRE_DESTINATION"" 2> $backup
    }

# Traite la réponse (ID) de zenity
function toBackup
{
    while [ x$1 != "x" ]
    do
    case $1 in
        ("1")
        echo "Message : Sauvegarde de 'home' sur le PC Antoine" >&3
        call_rsync 'Sauvegarde_home_pcAntoine' '/home/'
        echo "Message : Sauvegarde de '/home/' effectuée" >&3
        sleep 2
        ;;
        ("2")
        echo "Message : Sauvegarde de 'partage' sur le PC Antoine" >&3
        call_rsync 'Sauvegarde_partage_pcAntoine' '/media/partage/'
        echo "Message : Sauvegarde de '/media/partage/' effectuée" >&3
        sleep 2
        ;;
        ("3")
        echo "Message : Sauvegarde de 'home' sur le portable Solenn" >&3
        call_rsync 'Sauvegarde_home_pcSolenn' '/home/'
        echo "Message : Sauvegarde de '/home/' effectuée" >&3
        sleep 2
        ;;
        ("4")
        echo "Message : Sauvegarde de 'partage' sur le portable Solenn" >&3
        call_rsync 'Sauvegarde_partage_pcSolenn' '/media/partage'
        echo "Message : Sauvegarde de '/media/partage/' effectuée" >&3
        sleep 2
        ;;
        ("5")
        echo "Aucune idée comment éteindre, sans les droits root, en tant normal c'est shutdown "   
        echo "Message : Normalement l'ordinateur doit s'éteindre tout seul ^_^" >&3
        sleep 2
        echo call : /usr/lib/indicator-session/gtk-logout-helper --shutdown
        /usr/lib/indicator-session/gtk-logout-helper --shutdown
        ;;
    esac
    shift
done
}

# Insertion de la date à la fin de la liste d'erreur si le fichier backuperror n'est pas vide (c'est à dire s'il y a des erreurs),
# ce que vérifie l'option "-s" :
if [ -s $backup ]; then
{
  date >> $backup
}
fi

# On demande à traiter la réponse de zenity
# les fonctions doivent être écrites avant leur appel
toBackup $reponseIFS

echo "Message : Fin du script de sauvegarde. Bye" >&3
exec 3>&-

exit 0;

Dernière modification par Shawa (Le 09/11/2011, à 21:02)

Hors ligne

#2 Le 08/11/2011, à 12:13

didli

Re : [Résolu] exécuter un script marchant auparavant sur Xubuntu et Ubuntu

Salut !
Mais ... tu as un message d'erreur au moins non ?


Plan B : réessayer le Plan A jusqu'à ce qu'il fonctionne.
http://www.mediaklan.com/

Hors ligne

#3 Le 08/11/2011, à 14:07

Shawa

Re : [Résolu] exécuter un script marchant auparavant sur Xubuntu et Ubuntu

Non, rien ne se passe
Par contre, je viens d'essayer

sudo bash /media/Hangar/Sauvegarde_Hangar.sh

dans la console et ça me retourne

/media/Hangar/Sauvegarde_Hangar.sh: ligne 27: zenity : commande introuvable
/media/Hangar/Sauvegarde_Hangar.sh: ligne 15: zenity : commande introuvable

Il semble que le paquet de notification utilisé sous Ubuntu (Zenity) ne soit pas celui utilisé sous Lubuntu. Mais quel est-il? et comment modifié ce "ù?$*"# de script pour que ça marche?

Hors ligne

#4 Le 08/11/2011, à 16:20

didli

Re : [Résolu] exécuter un script marchant auparavant sur Xubuntu et Ubuntu

hmm ... et l'installation de zenity ne serait-elle pas plus simple en l'occurence ? As-tu rendu ce script executable ? (je sais c'est une question con, mais je me dois de la poser !).
Et aussi normalement un simple :

sudo ./nom_de_ton_script

devrait être suffisant à son execution.


Plan B : réessayer le Plan A jusqu'à ce qu'il fonctionne.
http://www.mediaklan.com/

Hors ligne

#5 Le 08/11/2011, à 16:28

Aube DuKaos

Re : [Résolu] exécuter un script marchant auparavant sur Xubuntu et Ubuntu

Autre question con: Tu as bien toute les dépendances?
roll


"Les contes de fées ne révèlent pas aux enfants que les dragons existent, les enfants le savent déjà. Les contes de fées révèlent aux enfants qu'on peut tuer ces dragons."
G.K. Chesterton

Hors ligne

#6 Le 09/11/2011, à 21:01

Shawa

Re : [Résolu] exécuter un script marchant auparavant sur Xubuntu et Ubuntu

Ok super, effectivement, installer Zenity tombait sous le sens.
Merci

Hors ligne