probleme de transfert ftp en masse

probleme de transfert ftp en masse - Shell/Batch - Programmation

Marsh Posté le 04-04-2011 à 20:47:30    

Bonjour à tous,
 
Je vous explique mon problème, on ma demandé de faire un transfert automatique de fichiers ftp, pour cela j'ai utilisé un shell qui existe déjà au taf et j'ai juste modifié le put en mput, mais quand je l'exécute il me dit no such file directory!!!
Alors que ce script il fonctionne bien quand on veut transférer un fichier, car ce shell il fait appelle à un fichier ou les parametres sont rensignés en dur exemple :
 
traitement:ftpemi:maat:login:pwd::temp/fichier${horodatage}:/mnt/recette/socrat/recette/
 
et quand il sagit de certain fichiers j'essaye cette syntaxe : avec le meme script en changeant juste le put en mput le script ne reconnait pas le chemin d'arriver!!!
 
traitement:ftpemi:maat:login:pwd::temp/fichier*:/mnt/recette/socrat/recette/
 
Le script et le suivant si quelqu'un pourrait apporter ses lumières ? en vous remerciant.
 
#!/usr/bin/ksh
#####
# Gestion de l'execution en simulation ou reel
#
if [ "${UPR_EXECUTION}" = "R" ]
then
  REEL=OK
else
  REEL=
fi
 
LIGNE_MANIP=$1
 
if [ -z "${HORODATAGE}" ]
then
  HORODATAGE=$(date +"%Y%m%d_%H%M%S" )
fi
 
TRAITEMENT=$(echo $LIGNE_MANIP | cut -d: -f1)
TYPE_MANIP=$(echo $LIGNE_MANIP | cut -d: -f2)
SERVEUR_FTP=$(echo $LIGNE_MANIP | cut -d: -f3)
USER_FTP=$(echo $LIGNE_MANIP | cut -d: -f4)
PASS_FTP=$(echo $LIGNE_MANIP | cut -d: -f5)
MODE_FTP=$(echo $LIGNE_MANIP | cut -d: -f6)
FIC_DEPART=$(echo $LIGNE_MANIP | cut -d: -f7)
FIC_ARRIVEE=$(echo $LIGNE_MANIP | cut -d: -f8)
DROITS_FIC=$(echo $LIGNE_MANIP | cut -d: -f9)
 
echo "########################################################################"
echo "# Traitement          : $TRAITEMENT"
echo "# Manipulation        : $TYPE_MANIP"
echo "# Serveur FTP         : $SERVEUR_FTP"
echo "# User FTP            : $USER_FTP"
echo "# Pass FTP            : $PASS_FTP"
echo "# Mode FTP            : $MODE_FTP"
echo "# Fichier source      : $FIC_DEPART"
echo "# Fichier arrivée     : $FIC_ARRIVEE"
echo "# Droits pour chmod   :        $DROITS_FIC"
echo "########################################################################"
 
#####
# Déclaration des constantes
#####
NOM_SCRIPT=$(basename $0)
 
FICHIER_FTP=${TMP}/$NOM_SCRIPT.${HORODATAGE}.ftp
COMMANDE_FTP="ftp -v -i -n"
 
#####
# Liste des fichiers à transférer
#####
 
touch $FICHIER_FTP
 
echo "user $USER_FTP $PASS_FTP" > $FICHIER_FTP
 
if [ "$MODE_FTP" = "ASCII" ]
then
  echo "ascii" >> $FICHIER_FTP   # active le mode 'ascii' (CRLF <-> LF)
else
  echo "bin" >> $FICHIER_FTP   # desactive le mode 'ascii' (CRLF <-> LF)
fi
 
#echo "prompt" >> $FICHIER_FTP   # désactive le prompt pour mget et mput
 
###
# Construction du fichier contenant les commandes pour le client ftp
###
 
if [ ! -z "$FIC_DEPART" ]
then
 
  # recuperation du dernier caractere de FIC_ARRIVEE
  DERNIERE_LETTRE=$(echo ${FIC_ARRIVEE} | rev | cut -c1)
 
  # si cette derniere lettre est un "/" alors on considere
  # qu'on a afaire a un chemin
 
  if [ "$DERNIERE_LETTRE" = "/" ]
  then
          echo "cd $FIC_ARRIVEE" >> $FICHIER_FTP
          echo "mput $FIC_DEPART" >> $FICHIER_FTP
  else
          echo "mput $FIC_DEPART $FIC_ARRIVEE" >> $FICHIER_FTP
  fi
 
  if [ ! -z "$DROITS_FIC" ]
  then
          echo "chmod $DROITS_FIC $FIC_ARRIVEE" >> $FICHIER_FTP
  fi
fi
 
echo "quit" >> $FICHIER_FTP
 
#####
# Exécution des commandes de tranferts à l'aide du client samba
#####
 
if [ ! -z "$REEL" ]
then
  $COMMANDE_FTP $SERVEUR_FTP < $FICHIER_FTP
else
  cat $FICHIER_FTP
fi
 
####
# Suppression des fichiers temporaires
####
 
rm -f $FICHIER_FTP
 
 


---------------
spoutnikousse
Reply

Marsh Posté le 04-04-2011 à 20:47:30   

Reply

Marsh Posté le 04-04-2011 à 21:39:41    

Moi dit :
moi je tenterai eventuellement un truc du style à la place de  
echo "mput $FIC_DEPART" >> $FICHIER_FTP  
soit :  echo "mput $FIC_DEPART $FIC_ARRIVEE/$FIC_DEPART" >>$FICHIER_FTP  
soit :   echo "mput $FIC_DEPART ./$FIC_DEPART" >> $FICHIER_FTP  
heu j'ai oublié le " ds les deux cas

Reply

Marsh Posté le 05-04-2011 à 14:58:18    

J'ai commenté les ligne suivante:
 
#if [ "$DERNIERE_LETTRE" = "/" ]
  #then  
   echo "cd $FIC_ARRIVEE" >> $FICHIER_FTP
   echo "mput $FIC_DEPART" >> $FICHIER_FTP  
  else
   echo "mput $FIC_DEPART $FIC_ARRIVEE" >> $FICHIER_FTP
  fi
   
  if [ ! -z "$DROITS_FIC" ]
  then
   echo "chmod $DROITS_FIC $FIC_ARRIVEE" >> $FICHIER_FTP
  fi
#fi
 
Et voila le resultat :
 
Connected to maat.addim.local.
220 maat.groupe-dumas.com FTP server (Version 1.1.214.4(PHNE_34544) Fri Feb 24 15:03:24 GMT 2006) ready.
Remote system type is UNIX.
Using binary mode to transfer files.
331 Password required for ora10gas.
230 User ora10gas logged in.
200 Type set to I.
Interactive mode off.
250 CWD command successful.
local: TEMP/INT_BRED_00050910140 remote: TEMP/INT_BRED_00050910140
200 PORT command successful.
553 TEMP/INT_BRED_00050910140: No such file or directory.
local: TEMP/INT_BRED_00050913313 remote: TEMP/INT_BRED_00050913313
200 PORT command successful.
553 TEMP/INT_BRED_00050913313: No such file or directory.
local: TEMP/INT_BRED_00050913318 remote: TEMP/INT_BRED_00050913318
200 PORT command successful.
553 TEMP/INT_BRED_00050913318: No such file or directory.
local: TEMP/INT_BRED_00450910202 remote: TEMP/INT_BRED_00450910202
200 PORT command successful.
553 TEMP/INT_BRED_00450910202: No such file or directory.
local: TEMP/INT_BRED_00750910851 remote: TEMP/INT_BRED_00750910851
200 PORT command successful.
553 TEMP/INT_BRED_00750910851: No such file or directory.
local: TEMP/INT_BRED_00750912530 remote: TEMP/INT_BRED_00750912530
200 PORT command successful.
553 TEMP/INT_BRED_00750912530: No such file or directory.
local: TEMP/INT_BRED_00750912758 remote: TEMP/INT_BRED_00750912758
200 PORT command successful.
553 TEMP/INT_BRED_00750912758: No such file or directory.
local: TEMP/INT_BRED_00850911098 remote: TEMP/INT_BRED_00850911098
200 PORT command successful.
553 TEMP/INT_BRED_00850911098: No such file or directory.
local: TEMP/INT_BRED_00850913319 remote: TEMP/INT_BRED_00850913319
200 PORT command successful.
553 TEMP/INT_BRED_00850913319: No such file or directory.
local: TEMP/INT_BRED_00850913331 remote: TEMP/INT_BRED_00850913331
200 PORT command successful.
553 TEMP/INT_BRED_00850913331: No such file or directory.
221 Goodbye.

Reply

Marsh Posté le 07-04-2011 à 20:34:23    

Reply

Marsh Posté le 07-04-2011 à 21:32:14    

Reply

Marsh Posté le 07-04-2011 à 23:07:20    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed