Page 1 sur 1
[SHELL] transfert scp avec ecriture de logs [résolu]
Publié : jeu. 28 févr. 2008, 12:45
par ee_lars
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???
Publié : jeu. 28 févr. 2008, 13:22
par vincentxavier
as tu essayé un truc du genre
qui redirige la sortie d'erreur (2) vers la sortie standard (1)
Publié : jeu. 28 févr. 2008, 13:35
par marc[i1]
Modifie ton sujet comme ceci :
[Thème] sujet
Afin de respecter les règles du forum :
http://forums.archlinux.fr/topic68.html
merci
Publié : jeu. 28 févr. 2008, 14:23
par tuxce
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
Publié : jeu. 28 févr. 2008, 14:32
par ee_lars
vincentxavier a écrit :as tu essayé un truc du genre
qui redirige la sortie d'erreur (2) vers la sortie standard (1)
Oui j'ai essayé mais ça ne retourne rien dans le fichier indiqué en sortie
Publié : jeu. 28 févr. 2008, 15:40
par ee_lars
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
Mon but n'est pas d'interpreter le résultat.
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

Publié : jeu. 28 févr. 2008, 17:00
par tuxce
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:
Code : Tout sélectionner
screen -d -m -L scp $USER@$SERVEUR:/data/sauve/fichier.tar $CHEMIN/$SERVEUR/
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)
Publié : jeu. 28 févr. 2008, 18:30
par ee_lars
Très bonne idée, je vais tester ça

Merci
Publié : ven. 29 févr. 2008, 10:33
par ee_lars
Ca fonctionne parfaitement!!!!
Voila qui va m'être d'une grande utilité

Merci beaucoup tuxce