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 12/04/2007, 13h52   #1
Membre chevronné
 
Inscription : mai 2004
Messages : 818
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 818
Points : 706
Points : 706
Par défaut Erreurs dans un script de sauvegarde

bonjour

Voici un petit script de backup qui prend 2 arguments
1. le nom d'un fichier à sauvegarder
2. le nombre de jours de dernière modification des fichiers

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
 
while read line
do
echo –e "line\n"
done < $1 | find $1 -mtime -$2 | tar -c-T-f /home/backup.tar
# find pour rechercher dans le fichier passé en 1er argument
# -mtime -$2 pour spécifier les fichiers modifiés depuis le nombre 
# de jour passés en 2ème argument
# on passe à pipe
# tar -c-T-f pour créer l’archive
# -c pour la céer
# l’option -T pour obtenir le nom des fichiers à archiver
# l’option -f pour le fichier backup.tar
j'ai une erreur au lancement :

Citation:
./sauve.sh signature.txt 2
tar: -f: ne peut stat: Aucun fichier ou répertoire de ce type
tar: Erreur non récupérable: fin de l'exécution immédiate
merci


.
deny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 21h12   #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 deny
bonjour

while read line
do
echo –e "line\n"
done < $1 | find $1 -mtime -$2 | tar -c-T-f /home/backup.tar


Avec ceci, ça devrait aller mieux :

find . -name $1 -mtime -$2
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 08h38   #3
Membre chevronné
 
Inscription : mai 2004
Messages : 818
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 818
Points : 706
Points : 706
Par défaut script de sauvegarde

Merci pour ta reponse
Hélas ,cela ne fonctionne pas encore .........


./sauve.sh signature.txt 2
./sauve.sh: line 6: find.: command not found
tar: -f: ne peut stat: Aucun fichier ou répertoire de ce type
tar: Erreur non récupérable: fin de l'exécution immédiate

(avec ou sans le point après find)


a+
deny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 23h00   #4
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 deny
bonjour

.../...
# find pour rechercher dans le fichier passé en 1er argument
# -mtime -$2 pour spécifier les fichiers modifiés depuis le nombre
# de jour passés en 2ème argument
.../...

Doit-on comprendre que le fichier passé en 1er argument contient une liste de fichiers à rechercher et, éventuellement, sauvegarder ?
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2007, 06h08   #5
Membre chevronné
 
Inscription : mai 2004
Messages : 818
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 818
Points : 706
Points : 706
Par défaut script de sauve

Non ,il s'agit juste d'un fichier

avec comme premier arg nom_du_fichier et deuxième arg nombre_jours

et d'ailleurs dans l'exemple ,je fais un essai sur un seul fichier :
/sauve.sh signature.txt 2

merci
deny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2007, 11h26   #6
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 deny
Non ,il s'agit juste d'un fichier

avec comme premier arg nom_du_fichier et deuxième arg nombre_jours

et d'ailleurs dans l'exemple ,je fais un essai sur un seul fichier :
/sauve.sh signature.txt 2

merci
Dans ce cas, je ne vois pas l'interêt du :

Code :
1
2
3
4
while read line
do
.../...
done < $1

Le shell, ci-dessus, signifie : parcourir le contenu du fichier "$1"
Quel en est l'usage
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2007, 18h27   #7
Membre chevronné
 
Inscription : mai 2004
Messages : 818
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 818
Points : 706
Points : 706
bien vu
prenons donc plutot l'exemple d'un repertoire a sauvegarder

./sauve.sh azureus 2
./sauve.sh: line 3: read: read error: 0: est un répertoire
./sauve.sh: line 6: find.: command not found
tar: -f: ne peut stat: Aucun fichier ou répertoire de ce type
tar: Erreur non récupérable: fin de l'exécution immédiate


le probleme reste entier
a+
deny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2007, 22h48   #8
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 deny
bien vu
prenons donc plutot l'exemple d'un repertoire a sauvegarder

./sauve.sh azureus 2
./sauve.sh: line 3: read: read error: 0: est un répertoire
./sauve.sh: line 6: find.: command not found
tar: -f: ne peut stat: Aucun fichier ou répertoire de ce type
tar: Erreur non récupérable: fin de l'exécution immédiate


le probleme reste entier
a+

But : sauvegarder les fichiers, du répertoire "azureus", qui ont fait l'objet de modifications depuis - de 2 jours.

Obs : l'option -T est sans objet

http://pwet.fr/man/linux/commandes/tar
.../...
-T, --files-from F
obtient la liste des fichiers à extraire ou à archiver depuis le fichier F.
.../...


./sauve.sh azureus 2


Script sauve.sh :

find $1 -mtime -$2 | xargs tar -cvf /home/backup.tar
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2007, 07h32   #9
Membre chevronné
 
Inscription : mai 2004
Messages : 818
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 818
Points : 706
Points : 706
#!/bin/bash

while read line
do
echo –e "line\n"
done < $1 | find $1 -mtime -$2 | xargs tar -cvf /home/backup.tar


./sauve2.sh azureus 2
tar: Refus catégorique de créer un fichier d'archive vide.
Pour en savoir davantage, faites: « tar --help » ou « tar --usage ».


merci
deny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2007, 12h01   #10
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 deny
#!/bin/bash

while read line
do
echo –e "line\n"
done < $1 |
find $1 -mtime -$2 | xargs tar -cvf /home/backup.tar

./sauve2.sh azureus 2
tar: Refus catégorique de créer un fichier d'archive vide.
Pour en savoir davantage, faites: « tar --help » ou « tar --usage ».


merci
Sauf erreur de ma part, seules les instructions en VERT sont nécessaires.
Il est à noter qui si aucun fichier n'est sélectionné, le message d'anomalie suivant apparaîtra :

tar: Cowardly refusing to create an empty archive
Try `tar --help' or `tar --usage' for more information.


Gestion de ce cas :

Code :
1
2
3
4
find $1 -mtime -$2 | xargs tar -cvf /home/backup.tar 2>/dev/null
if [ $? -eq 123 ]] ; then
    echo "** aucune sélection effectuée "
fi
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2007, 19h27   #11
Membre chevronné
 
Inscription : mai 2004
Messages : 818
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 818
Points : 706
Points : 706
.Cela fonctionne parfaitement et je te remercie

a+
deny est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h23.


 
 
 
 
Partenaires

Hébergement Web