J'ai fait un script shell qui obtient un fichier distant avec le protocole ftp, si le fichier est bien téléchargé, il lance un autre script en php avec curl.Il est une sorte de travail en ce moment, mais j'ai quelques questions pour améliorer:script shell pour télécharger le fichier distant et lancer le script et écrire autre en PHP
- Effectuer le script attend la fin du téléchargement pour exécuter le reste du script ou pendant le temps de télécharger le script faire les instructions suivantes?
- Je reçois le premier mail de l'instruction de début mais jamais les derniers (celui qui obtient le résultat de la boucle, et celui à la fin du script) comment se fait-il?
- Je voudrais trouver un bon moyen d'interdire l'exécution du script plus d'une fois (si l'archive a été téléchargée) même si elle est lancée toutes les heures avec crontab?
- Quelle est la différence entre quitter/bye/by à la fin de la connexion ftp?
C'est le script shell:
echo start of the script | mail -s "beginning of the script" [email protected]
cd /my_rep
HOST='domaine.com'
PORT='21'
USER='admin'
PASSWD='pass'
jour=$(date "+%Y%m%d")
FILE="file_"$jour".txt";
ftp -i -n $HOST $PORT <<EOF
quote USER $USER
quote PASS $PASSWD
cd firstlevel
cd end
get $FILE
quit
EOF
if test -f $FILE
then
CurlRes="$(curl "http://doma.com/myfile.php")"
echo debug CURL : $CurlRes | mail -s "debug" [email protected]
else
echo no file : $FILE | mail -s "no file" [email protected]
fi
echo this is the end of the script download | mail -s "end of script download" [email protected]
La plupart des clients FTP vous permettent de ne pas la fin de tout commande si le résultat est non ambigu. Comme une seule commande commence par 'by', il est supposé que vous vouliez dire' bye'. – Sorpigal
Citer le (s) argument (s) de 'echo' ne fera pas de mal, pas plus que les accolades, mais aucune n'est nécessaire dans ce cas. Je dirais que le PO ne reçoit pas les courriels parce que le script avorte pour une raison quelconque ou qu'il y a un problème avec le doc ici. –