[SHELL] transfert scp avec ecriture de logs [résolu]
[SHELL] transfert scp avec ecriture de logs [résolu]
Bonjour,
J'ai écrit un script shell qui fait des copies de fichiers de plusieurs serveurs vers une machine grâce à la commande scp (dans le but de centraliser des sauvegardes).
J'ai donc plusieurs lignes de ce type :
scp $USER@$SERVEUR:/data/sauve/fichier.tar $CHEMIN/$SERVEUR/
l'execution de cette commande dans un shell affiche ce genre d'informations :
fichier.tar 100% 228MB 11.4MB/s 00:20
Mon script est lançé via la crontab:
00 02 * * * /chemin/mon_script.sh >/chemin/copie.log
j'ai besoin d'afficher ces informations dans mon fichier de log mais elles n'apparaissent pas...
Connaissez vous un moyen de le faire svp???
J'ai écrit un script shell qui fait des copies de fichiers de plusieurs serveurs vers une machine grâce à la commande scp (dans le but de centraliser des sauvegardes).
J'ai donc plusieurs lignes de ce type :
scp $USER@$SERVEUR:/data/sauve/fichier.tar $CHEMIN/$SERVEUR/
l'execution de cette commande dans un shell affiche ce genre d'informations :
fichier.tar 100% 228MB 11.4MB/s 00:20
Mon script est lançé via la crontab:
00 02 * * * /chemin/mon_script.sh >/chemin/copie.log
j'ai besoin d'afficher ces informations dans mon fichier de log mais elles n'apparaissent pas...
Connaissez vous un moyen de le faire svp???
Dernière modification par ee_lars le ven. 29 févr. 2008, 10:34, modifié 6 fois.
- vincentxavier
- Elfe
- Messages : 778
- Inscription : ven. 11 août 2006, 18:17
- Localisation : Epinay sur Seine (93)
as tu essayé un truc du genre
qui redirige la sortie d'erreur (2) vers la sortie standard (1)
Code : Tout sélectionner
/chemin/mon_script.sh 2>&1 >/chemin/copie.log
Warranty
THIS ADVICE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
En clair, je ne pourrais être tenu responsable des dégats causés par l'utilisation de mes conseils
THIS ADVICE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
En clair, je ne pourrais être tenu responsable des dégats causés par l'utilisation de mes conseils
- marc[i1]
- Maître du Kyudo
- Messages : 1753
- Inscription : ven. 27 oct. 2006, 10:48
- Localisation : Nantes (44)
Modifie ton sujet comme ceci :
[Thème] sujet
Afin de respecter les règles du forum :
http://forums.archlinux.fr/topic68.html
merci
[Thème] sujet
Afin de respecter les règles du forum :
http://forums.archlinux.fr/topic68.html
merci
Ne vous emmerdez plus, emmerdez les autres.
salut, scp n'écrit rien sur stdxxx s'il y a redirection, il te faut tester manuellement, genre:
Code : Tout sélectionner
file=$SERVEUR:/data/sauve/fichier.tar
scp -q $file $CHEMIN/$SERVEUR/ && echo -n "Succès: " || echo -n "Echec: "
echo $file
vincentxavier a écrit :as tu essayé un truc du genrequi redirige la sortie d'erreur (2) vers la sortie standard (1)Code : Tout sélectionner
/chemin/mon_script.sh 2>&1 >/chemin/copie.log
Oui j'ai essayé mais ça ne retourne rien dans le fichier indiqué en sortie
Mon but n'est pas d'interpreter le résultat.tuxce a écrit :salut, scp n'écrit rien sur stdxxx s'il y a redirection, il te faut tester manuellement, genre:Code : Tout sélectionner
file=$SERVEUR:/data/sauve/fichier.tar scp -q $file $CHEMIN/$SERVEUR/ && echo -n "Succès: " || echo -n "Echec: " echo $file
Je veux juste avoir le nom des fichiers qui sont copiés, avec leur taille et la durée de la copie (toutes ces infos sont données par la commande scp quand on l'execute dans un shell) si cela est possible bien sur
en redirection, c'est pas possible, scp désactive la sortie si stdout ne lui appartient pas.
par contre, tu peux contourner en utilisant par exemple screen:
ca permet de créer un screen sans pour autant s'y connecter (-d -m)
et en même temps, logguer le contenu (-L)
le nom fichier par défaut est $(pwd)/screenlog.X (X étant le numéro de l'écran virtuel)
par contre, tu peux contourner en utilisant par exemple screen:
Code : Tout sélectionner
screen -d -m -L scp $USER@$SERVEUR:/data/sauve/fichier.tar $CHEMIN/$SERVEUR/
et en même temps, logguer le contenu (-L)
le nom fichier par défaut est $(pwd)/screenlog.X (X étant le numéro de l'écran virtuel)