On envoi le fichier via ftp mais avant on vérifie que le fichier existe bien et on test si le ftp à bien fonctionné
#!/bin/sh
HOST='NomDuSiteFtp'
LOGIN='Utilisateur'
PASSWORD='MotDePasseUtilisateur'
FICHIER=$1
# Vérification de l'existence du fichier
if [ -f "$FICHIER" ]; then
echo ""
else
echo "----------------------------------"
echo "[ERREUR] Le fichier $FICHIER n'existe pas. Veuillez vérifier son emplacement."
echo "[ERREUR] Sortie avec code de retour 15"
echo "----------------------------------"
exit 15
fi
# Transfert FTP
echo "----------------------------------"
echo "[INFO] Envoi du fichier $FICHIER vers $HOST"
echo "----------------------------------"
ftp -i -n $HOST <<END_SCRIPT
quote USER $LOGIN
quote PASS $PASSWORD
cd incoming
put $FICHIER
get $FICHIER $FICHIER.ftp.tmp
quit
END_SCRIPT
# Vérification du transfert
if [ -f "$FICHIER.ftp.tmp" ]; then
echo "----------------------------------"
echo "[INFO] Envoi réussi du fichier $FICHIER vers $HOST"
echo "----------------------------------"
rm -f $FICHIER.ftp.tmp >/dev/null 2>&1
exit 0
else
echo "----------------------------------"
echo "[ERREUR] Problème lors de l'envoi du fichier $FICHIER vers $HOST"
echo "[ERREUR] Sortie avec code de retour 16"
echo "----------------------------------"
rm -f $FICHIER.ftp.tmp >/dev/null 2>&1
exit 16
fi
Je mets mes commandes dans le script ftpPutFile.ksh et je créé un fichier test
je lance mon script avec en paramétre mon fichier
je test avec un fichier qui n’existe pas (fichier toto)