Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/04/2008, 15h00   #1
Membre régulier
 
Avatar de hammag
 
Inscription : février 2006
Messages : 477
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 477
Points : 94
Points : 94
Par défaut cron:lance un script dès la reception d'un fichier

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
hammag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2008, 15h35   #2
Membre chevronné
 
Avatar de valefor
 
Inscription : décembre 2006
Messages : 689
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 689
Points : 666
Points : 666
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.
valefor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2008, 17h13   #3
Membre régulier
 
Avatar de hammag
 
Inscription : février 2006
Messages : 477
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 477
Points : 94
Points : 94
oui,
mais est-ce possible de déclencher automatiquement l'exécution du script après la réception du fichier.
hammag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2008, 18h42   #4
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 779
Points : 7 779
Citation:
Envoyé par hammag Voir le message
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


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 ?)


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 :
Code :
1
2
 
#I0:2345:respawn:/rep/script parametres
ne pas oublier de faire un init q apres toute modif de l'inittab
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2008, 19h08   #5
Membre éprouvé
 
Avatar de Leeloo_Multiboot
 
Administrateur Unix/Linux
Inscription : avril 2008
Messages : 417
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Administrateur Unix/Linux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : avril 2008
Messages : 417
Points : 482
Points : 482
Coucou,

Citation:
oui,
mais est-ce possible de déclencher automatiquement l'exécution du script après la réception du fichier.
Ben:

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.
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.
Auquel cas tu poursuis ton traitement. Sinon ton script passe.

Ex:

Citation:
if [ -e /dossier/fichier ]; then
traitement ...
else
echo "On fait rien"
fi
__________________
Citation:
Près des cîmes, loin des cons...
Leeloo_Multiboot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 09h00   #6
Membre chevronné
 
Avatar de valefor
 
Inscription : décembre 2006
Messages : 689
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 689
Points : 666
Points : 666
Citation:
Envoyé par hammag Voir le message
oui,
mais est-ce possible de déclencher automatiquement l'exécution du script après la réception du fichier.
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...
valefor est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h56.


 
 
 
 
Partenaires

Hébergement Web