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