bonjour,
je n'arrive pas à comprendre où est l'erreur:
./sauve-6.0: line 75: syntax error near unexpected token `;;'
./sauve-6.0: line 75: ` ;;'
#!/bin/sh
# sauve, a backup script
# Copyright (C) 2007 2009 2009 Mathieu SERPA
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# matser1973@free.fr
trap 'if [ "$(echo $(mt -f /dev/st0 status) | grep -i online )" != "" ] ;then mt -f /dev/st0 eject ; fi' EXIT
list(){
case "$1" in
t)
find "/home/*/[^.]*";;
i)
moment=$2
find "/home/*/[^.]*" -daystart -mtime "$moment";;
esac
}
sauve_incr1(){
etendue=$(($1*7))
shift
(
while [ $etendue -ge 0 ];do
list i $etendue
etendue=$(($etendue-1))
done
)|cpio -ovBH crc>/dev/st0
}
sauve_incr2(){
etendue=$1
shift
(
while [ $etendue -ge 0 ];do
list i $etendue
etendue=$(($etendue-1))
done
)|cpio -ovBH crc>/dev/st0
}
sauve(){
case "$1" in
"t")
list t | cpio -ovBH crc>/dev/st0;;
"s")
sauve_incr1 "$2" ;;
"j")
sauve_incr2 "$2" ;;
esac
}
choix_menu(){
dialog --msgbox "$(date)" 0 0
choix=$(dialog --stdout --menu "Que voulez-vous faire?" 0 45 8 1 "sauvegarde totale" 2 "sauvegarde hebdomadaire" 3 "sauvegarde journalière" 4 "Quitter"
if [ $? = 1 ];then
exit 1
fi
case "$choix" in
"1") sauve t;; #l'erreur est ici, pourquoi?
"2")
etendue=$(dialog --stdout --radiolist "sauvegarder ce qui a changé depuis" 0 40 5 1 "une semaine" on 2 "deux semaines" off 3 "trois semaines" off 4 "quatre semaines" off)
if [ $? = 0 ]; then
sauve s $etendue
else
return
fi;;
"3")
etendue=$(dialog --stdout --radiolist "sauvegarder ce qui a changé depuis" 0 35 7 1 "un jour" on 2 "deux jours" off 3 "trois jours" off 4 "quatre jours" off 5 "cinq jours" off 6 "six jours" off)
if [ $? = 0 ]; then
sauve j $etendue
else
return
fi;;
"4")
exit 0;;
esac
}
mt -f /dev/st0 retension
sauve -j 3
if [ "$(whoami)" = "root" ]; then
while true;do
choix_menu
done
else
echo vous devez être root pour éxécuter ce script
fi
quelqu'un a une idée?
Partager