Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/06/2007, 17h04   #1
Nouveau Membre du Club
 
Avatar de vovor
 
Inscription : avril 2005
Messages : 113
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 113
Points : 27
Points : 27
Envoyer un message via MSN à vovor
Par défaut Mon script de sauvegarde

le petit script que j'ai trifouillé me rend "cannot execute binary file"

je seche un peu maintenant

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
# Script de sauvegarde des données du serveur sur bande
#
# Date du jour
DATE=`date +"%Y-%m-%d"`
#
echo "Lancement de la sauvegarde du $DATE" >> /var/log/sauvegarde_du_$DATE.log
#
# Rembobinage  de la bande si necessaire
mt -f /dev/st0 rewind
RETVAL=$?
 
case $RETVAL in
0)
       echo "Bande presente, lancement de la sauvegarde sur bande" >> /var/log/sauvegarde_du_$DATE.log
       tar cvf /dev/st0  /home /etc /var /opt /usr /sbin >> /var/log/sauvegarde_du_$DATE.log
       sleep 10
       # Ejection de la bande
       #mt -f /dev/st0 offline
       ;;
1)
       echo "Pas de bande presente, echec de la sauvegarde" >> /var/log/sauvegarde_du_$DATE.log
       ;;
esac
vovor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2007, 22h05   #2
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
Envoyé par vovor
le petit script que j'ai trifouillé me rend "cannot execute binary file"

Lance le en mode trace pour voir ce que ça donne :

sh -x {nom_du_script}
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 00h01   #3
Nouveau Membre du Club
 
Avatar de vovor
 
Inscription : avril 2005
Messages : 113
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 113
Points : 27
Points : 27
Envoyer un message via MSN à vovor
voila ce que ça me rend
Code :
/usr/local/bin/sauve_dat.bash: /usr/local/bin/sauve_dat.bash: cannot execute binary file
queud...


et pourtant les droits sont corrects.
vovor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 06h12   #4
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
faits plustot

Code :
1
2
3
4
5
 
#!/bin/sh
set -x
.........................
set +x
pour voir quelle commande reelement pose probleme

il se peut aussi que ce soit des caracteres phantom si tu a utiliser un editeur de texte autre que vi. ou pire encore charge ton script via ftp ou autre d'un autre OS.

le cas typique est l'utilisateur debutant qui ecris ses premiers script sous windows et les depose en ftp sur sa station unix-like et execute le ftp en mode binaire pour un fichier ascii ducoup on peut avoir ce genre de fichier mal identifie.

permet de savoir si c'est le fichier qui globablement est mal identifie notament.

si le fichier est reconnu binaire c'est peut etre un ^M qui s'y cache.
dans ce cas :
Code :
vi -c "s/^M//|:wq" fichier

c'est a dire dans l'ordre des touches a frapper au clavier :
v,i,espace,-,c,espace,",s,s/,CTRL+V,ENTER,/,/etc.....
et surtout pas ecrire le ^M avec les caracteres ^ et M !!!
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 13h09   #5
Nouveau Membre du Club
 
Avatar de vovor
 
Inscription : avril 2005
Messages : 113
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 113
Points : 27
Points : 27
Envoyer un message via MSN à vovor
t'inquiete pas je fais plus l'erreur depuis longtemps...
meme apres etre passés par Winvi, je les retraite directement en mode console

bon bin ça marche quand je vire le RETVAL

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Script de sauvegarde des données du serveur sur bande
#
# Date
DATE=`date +"%Y-%m-%d"`
#
echo "Lancement de la sauvegarde du $DATE" >> /var/log/sauvegarde_du_$DATE.log
#
# Rembobinage  de la bande si necessaire
mt -f /dev/st0 rewind
       echo "Bande presente, lancement de la sauvegarde sur bande" >> /var/log/sauvegarde_du_$DATE.log
       tar cvf /dev/st0  /home /etc /var /opt /usr /sbin >> /var/log/sauvegarde_du_$DATE.log
       sleep 10
       # Ejection de la bande
       mt -f /dev/st0 offline
par contre quand j'ai pas de bande, j'ai ça :

++ date +%Y-%m-%d
+ DATE=2007-06-20
+ echo 'Lancement de la sauvegarde du 2007-06-20'
+ mt -f /dev/st0 rewind
mt: /dev/st0: Aucun medium trouvé
+ echo 'Bande presente, lancement de la sauvegarde sur bande'
+ tar cvf /dev/st0 /home /etc /var /opt /usr /sbin
tar: /dev/st0: ne peut open: Erreur d'entrée/sortie
tar: Erreur non récupérable: fin de l'exécution immédiate
+ sleep 10
+ mt -f /dev/st0 offline
mt: /dev/st0: Aucun medium trouvé


il lit mal le RETVAL on dirait....
vovor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 13h31   #6
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 246
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 246
Points : 1 903
Points : 1 903
as tu essayé comme ça ?
Citation:
case "$x" in
go)
echo "demarrage"
;;
stop)
echo "arret"
;;
*)
echo "valeur invalide de x ($x)''
esac
En mettant des guillemets autour de la variable.
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 15h39   #7
Nouveau Membre du Club
 
Avatar de vovor
 
Inscription : avril 2005
Messages : 113
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 113
Points : 27
Points : 27
Envoyer un message via MSN à vovor
ça a l'air d'être ça.
Celui ci fonctionne :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
# Script de sauvegarde des données du serveur sur bande
#
# Date
DATE=`date +"%Y-%m-%d"`
#
echo "Lancement de la sauvegarde du $DATE" >> /var/log/sauvegarde_du_$DATE.log
#
# Rembobinage  de la bande si necessaire
mt -f /dev/st0 rewind
RETVAL=$?
#
case "$RETVAL" in
0)
       echo "Bande presente, lancement de la sauvegarde sur bande" >> /var/log/sauvegarde_du_$DATE.log
       tar cvf --exclude var/log /dev/st0  /home /etc /var /opt /usr /sbin >> /var/log/sauvegarde_du_$DATE.log
       sleep 10
       # Ejection de la bande
       mt -f /dev/st0 offline
       ;;
*)
       echo Pas de bande presente, echec de la sauvegarde >> /var/log/sauvegarde_du_$DATE.log
       ;;
esac
exit 0


et rend ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
++ date +%Y-%m-%d
+ DATE=2007-06-20
+ echo 'Lancement de la sauvegarde du 2007-06-20'
+ mt -f /dev/st0 rewind
+ RETVAL=0
+ case "$RETVAL" in
+ echo 'Bande presente, lancement de la sauvegarde sur bande'
+ tar cvf /dev/st0 /home /etc /var /opt /usr /sbin
tar: Retrait de « / » de tete des noms des membres
tar: Retrait « / »   la tête des noms des liens absolus
+ sleep 10
+ mt -f /dev/st0 offline
+ exit 0
par contre j'ai vu que le RETVAL en cas d'absence n'est pas 1) mais 2) bon j'ai remplacé par *) pour faire large.
Et j'ai exclu /var/log pour ne pas sauvegarder son propre rapport

merci
vovor est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h20.


 
 
 
 
Partenaires

Hébergement Web