function upload-ftp() { # stockage des archives sur ftp distant [ "$ftpdest" = "" ] && ftpdest="/" # recup list de fichier à supprimer (la commande mdelete ne marche pas sur tous les serveurs) ftp -u $ftphost > /tmp/list << EOF user $ftpuser $ftppass cd $ftpdest nlist bye EOF list2del=`cat /tmp/list | grep ${nom}${i} | tr '\n' ' '` # liste delete=`cat /tmp/list | grep ${nom}${i} | awk '{print "delete ", $1}'` # commande if [ "$list2del" = "" ]; then # upload sans suppression echo "Upload en cours sur ${ftpuser}@${ftphost}/${ftpdest}..." | tee -a $logfile ftp -i -u -n $ftphost 2>&1 > $logtemp << EOF user $ftpuser $ftppass cd $ftpdest binary mput ${nom}${i}* bye EOF cat $logtemp | tee -a $logfile else # upload avec suppression echo "Suppression des fichiers $list2del sur ${ftpuser}@${ftphost}/${ftpdest}." | tee -a $logfile echo "Upload en cours sur ${ftpuser}@${ftphost}/${ftpdest}..." | tee -a $logfile ftp -i -u -n $ftphost 2>&1 > $logtemp << EOF user $ftpuser $ftppass cd $ftpdest binary $delete mput ${nom}${i}* bye EOF cat $logtemp | tee -a $logfile fi # contrôle de l'upload ftp -u $ftphost > /tmp/list << EOF user $ftpuser $ftppass cd $ftpdest ls bye EOF cat /tmp/list | grep ${nom}${i} | awk '{print $5}' > /tmp/tailledistante \ls -l ${nom}${i}* | awk '{print $5}' > /tmp/taillelocale uploadOK=`diff /tmp/taillelocale /tmp/tailledistante` if [ "$uploadOK" = "" ]; then echo "L'upload s'est bien passé, les fichiers sur le serveur ont la MÊME TAILLE taille que les fichiers sources." | tee -a $logfile else echo "L'upload a échoué, les fichiers sur le serveur n'ont PAS la même taille que les fichiers sources." | tee -a $logfile fi \rm -f /tmp/tailledistante 2>/dev/null \rm -f /tmp/taillelocale 2>/dev/null }