Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2459 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  probleme de transfert ftp en masse

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme de transfert ftp en masse

n°2067955
spoutikous​se
Posté le 04-04-2011 à 20:47:30  profilanswer
 

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
mood
Publicité
Posté le 04-04-2011 à 20:47:30  profilanswer
 

n°2067963
spoutikous​se
Posté le 04-04-2011 à 21:39:41  profilanswer
 

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

n°2068179
spoutikous​se
Posté le 05-04-2011 à 14:58:18  profilanswer
 

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.

n°2068753
spoutikous​se
Posté le 07-04-2011 à 20:34:23  profilanswer
 
n°2068762
spoutikous​se
Posté le 07-04-2011 à 21:32:14  profilanswer
 
n°2068767
spoutikous​se
Posté le 07-04-2011 à 23:07:20  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  probleme de transfert ftp en masse

 

Sujets relatifs
Probleme StringTokenizer et tableauProbleme liste deroulante en PHP
[VBA AutoCAD] Problème inter-applicationprobleme rendu IE/FF
problème script export csv phpprobleme parser et regroupe des elements
Problème de centrage total du site.[PHP] Problème système parrainage
Renomage de masse en FTP[Résolu] Problème sur un formulaire de contact
Plus de sujets relatifs à : probleme de transfert ftp en masse


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR