Salut tout-le monde,
J’ai développé un script qui analyse et traite des données à partir d’un fichier texte.
Ma question est la suivante : comment, dés réception d'un fichier, lancer sur mon serveur le script qui traite de ce fichier.
Cdt
Version imprimable
Salut tout-le monde,
J’ai développé un script qui analyse et traite des données à partir d’un fichier texte.
Ma question est la suivante : comment, dés réception d'un fichier, lancer sur mon serveur le script qui traite de ce fichier.
Cdt
Si ton nom de fichier est connu, une solution consiste à vérifier régulièrement la présence de ce fichier et de lancer le traitement lorsque la condition est vérifiée.
oui,
mais est-ce possible de déclencher automatiquement l'exécution du script après la réception du fichier.
il y a une chose a verifier que le fichier soit fini de recevoir !!!!! pour pas le traiter qu'a moitie par exemple
donc la solution (en fait y'en a deux)
1- soit a la source un fichier vide FICHIER_TOP est envoye apres le fichier de donnees
et le recepteur testes la precence du fichierTOP pour traiter le fichier de donnees
(a faire quand on ne connais pas a l'avance la taille du fichier de donnee ni son contenu)
2-soit on envoi le fichier de donnee
et on verifies sa taille ou son contenu avant de declancher sont traitement
cote recepteur maintenant :
pour declancher une tache uniquement quand on a des fichiers a traiter le plus simple
est de verifier toutes les X minutes si il y a un fichier ou non (crontab) et traiter si ily en a
l'autre solution plus propre
c'est d'utiliser l'inittab avec un respawn (programme relance automatiquement si il se termine ou est tue) il suffit alors d'ajouter un sleep 1 a 4Milliard dans le script pour ne pas saturer la machine
(un sleep de 4milliard ca fait pas genre 130ans ca ?) :D
par exemple
Code:
1
2
3
4
5 #!/bin/ksh [ -f /rep/toto.top ] && grep -i "tutu" toto > /rep/sousrep/resultat sleep 600 exit
et dans l'inittab :
ne pas oublier de faire un init q apres toute modif de l'inittabCode:
1
2#I0:2345:respawn:/rep/script parametres
Coucou,
Ben:Citation:
oui,
mais est-ce possible de déclencher automatiquement l'exécution du script après la réception du fichier.
Tu crées un script exécutable que tu lances à l'aide de crontab régulièrement (à toi de définir), puis dans ton script tu testes si le fichier est présent.Citation:
Si ton nom de fichier est connu, une solution consiste à vérifier régulièrement la présence de ce fichier et de lancer le traitement lorsque la condition est vérifiée.
Auquel cas tu poursuis ton traitement. Sinon ton script passe.
Ex:
Citation:
if [ -e /dossier/fichier ]; then
traitement ...
else
echo "On fait rien"
fi
Si tu as envie de te frotter aux "nouvelles technologies", tu peux regarder du côté de upstart.
C'est un remplaçant de initd. Il est destiné à remplacer cron et compagnie. Il peut déclencher des actions sur des évènements (par exemple lancer les services réseau lorsque le fil réseau est branché...). Donc, solution à étudier...