|
|
|
|
Bonjour,
Je souhaiterais utiliser des données d'un serveur de TEST sur un autre serveur (les deux Unix).
Comment faire pour transférer les données du serveur de TEST vers le serveur de traitement?
J'ai déjà un FTP sur le serveur de TEST, mais c'est lourd de faire des copier-coller du contenu des fichiers à traiter.
Comment faire pour que ces fichiers arrivent directment sur le serveur de Traitement?
Sur le serveur de TEST, il y a déjà un CRON qui tourne et qui classe les fichiers dans les bons répertoires.
Dans le serveur de Traitement, je voudrais garder la même configuration.
Merci
Salut Sandrill0n,
|
Salut,
DDirectory="/le/rep/distant/" LDirectory="/le/rep/local/" Username="toto" Password="totopasswd" Server="ftp.monserveur.net" ftp -i -n $Server <<End-Of-Session user $Username $Password binary bell lcd $LDirectory cd $DDirectory get lefichierarecuperer bye End-Of-Session Avec wget, tu fais celà : cd /le/rep/local/ wget ftp://toto:totopasswd@ftp.monserveur.net/le/rep/distant/lefichierarecuperer 3. Si en fait tu veux récupérer un grand nombre de fichiers tous situés dans un répertoire avec d'éventuels sous-répertoires et tu ne veux pas tous les taper, tu devras utiliser un autre outil qui ait des fonctions de récursivité, sauf à ce que le client ftp de Solaris ait déjà ces fonctionnalités (ce dont je doute, mais tu peux consulter man ftp pour voir). Ce n'est pas le cas du client ftp de Linux et de FreeBSD en tout cas. Si tu veux télécharger un répertoire entier et son contenu récursivement, en utilisant wget, tu fais wget ftp://toto:totopasswd@ftp.monserveur.net/le/rep/distant/ Avec les options : --no-host-directories --cut-dirs=number --recursive --level=depth Tu peux contrôler la façon dont l'arborescence est reconstruite localement et le niveau de récursion. 4. Je voudrais que cet envoi soit automatisé dans un CROn (comme la génération du fichier que je souhaite récupérer). Sauf erreur, ce que tu veux faire, ce n'est pas un "envoi", c'est un "téléchargement". Quant à la façon dont le fichier que tu récupères est généré, sauf erreur également, celà n'a pas de rapport avec ta question. En tout état de cause, je suppose que tu sais faire une entrée crontab. 5. Un programme shell existe avec cette commande (parmis tout le traitement des fichiers qui ne m'interresse pas) Je suppose que tu veux dire que tu as trouvé un script sur ta machine qui a été fait par quelqu'un d'autre et qui, entre autres choses, scripte la commande ftp comme tu l'indiques. Mais c'est un peu elliptique. 6. Teste le script que tu réaliseras en le lançant manuellement avant de le tester dans un crontab. Dans ton script shell mets les chemins absolus de toutes les commandes utilisées. Si le script fonctionne mais pas le CRON, regarde les messages d'erreur dans les logs de CRON. Dal |
Alors, chose promise, chose due....
#!/usr/bin/csh DDirectory="/home/synergy/sandra/ROYAT/" LDirectory="/export/home/kthmgr/crondir/" Username="sandra" Password="azerty" Server="httpsyn" ftp -i -n $Server <<End-Of-Session user $Username $Password ascii bell lcd $LDirectory cd $DDirectory get pareto.log bye End-Of-Session Résultat du lancement manuel : DDirectory=/home/synergy/sandra/ROYAT/: Command not found LDirectory=/export/home/kthmgr/crondir/: Command not found Username=sandra: Command not found Password=azerty: Command not found Server=httpsyn: Command not found Server: Undefined variable Apparement, ça a pas l'air de marcher... |
1) Solution par ssh
|
Hello :)
set DDirectory="/home/synergy/sandra/ROYAT/" set LDirectory="/export/home/kthmgr/crondir/" set Username="sandra" set Password="azerty" set Server="httpsyn" Celà devrait passer sans erreurs de syntaxe désormais. mamiemando : wget est un client ftp aussi et qui gère non seulement la récursion comme je l'indiquais, mais aussi la continuation d'un transfert interrompu (option -c). Je parle de ma version qui est GNU Wget 1.8.2, mais ces fonctionnalités figurent depuis longtemps dans wget. Dal |
Re tout le monde !!!
#!/bin/ksh
##################################
#Envoi de pareto.log vers Volnay #
##################################
#On se met dans l'inbox (directory d'envoi dans synergy)
cd ${KI_DIR_CRONDIR} #var d'env pour : /export/home/kthmgr/crondir/
#y a t-il des fichiers a envoyer?
rep=$(/usr/bin/ls)
if [ "$rep" != "" ]
then
#On fait un ftp sur volnay uniquement si elle repond au ping
PING=`/usr/sbin/ping httpsyn | grep -i alive | wc -l`
if [ $PING = 1 ]
then
ftp -v -i -n httpsyn <<-%
user sandra Azerty
ascii
put sm3_0.log
put sm2_5.log
put sm3_5.log
put sm5ap.log
put sm5lp.log
put sm5cb.log
put hdtmos.log
close
bye
%
fi
fi
Donc, il marche très bien quand je le lance dans le shell. Par contre quand je l'insère dans le CRON, plus rien... Je ne reçoit pas les fichiers sur mon autre serveur... J'ai fais les fichiers de sortie et d'erreur et voici le résultat : fichier de sortie : Connected to httpsyn.ea.freescale.net. 220 volnayc2 FTP server (Version 1.1.214.8 Fri Apr 20 07:27:42 GMT 2001) ready. 331 Password required for sisa01c. 230 User sandra logged in. ?Invalid command 200 Type set to A. 200 PORT command successful. 553 Could not determine cwdir: No such file or directory. ?Invalid command ?Invalid command 221 Goodbye. Fichier d'erreur : /export/home/kthmgr/crondir/sm3_0.log: No such file or directory /export/home/kthmgr/crondir/sm2_5.log: No such file or directory /export/home/kthmgr/crondir/sm3_5.log: No such file or directory /export/home/kthmgr/crondir/sm5ap.log: No such file or directory /export/home/kthmgr/crondir/sm5lp.log: No such file or directory /export/home/kthmgr/crondir/hdtmos.log: No such file or directory Comment puis-je faire pour pouvoir lancer ce script dans le CRON ? Faut-il faire une autre manip à la place du script ? |
Re !
#On se met dans l'inbox (directory d'envoi dans synergy) cd /var/opt/applications/mo/ pwd #y a t-il des fichiers a envoyer? rep=$(/usr/bin/ls) if [ "$rep" != "" ] then #On fait un ftp sur volnay uniquement si elle repond au ping PING=`/usr/sbin/ping httpsyn | grep -i alive | wc -l` if [ $PING = 1 ] then ftp -v -i -n httpsyn <<-% user sandra Azerty #ascii cd /home/synergy/sandra/WAFER/ pwd put Report -r close bye % fi fi Le répertoire Report est celuique je veux copier Quand je lance le programme j'ai ce message d'erreur : "Report: not a plain file" |
Je comprends que "Report" est un répertoire local et que tu veux en uploader le contenu sur ton serveur ftp.
|