|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() |
Bonjour,
Je travaille sous un serveur sous Debian accessible en SSH via Putty (Windows). J'ai les droits en lecture sur les fichiers de logs myql et apache. Quand je veux voir ce qui se trame là dedans , je fait un : (par exemple) mais voila cette commande nécessite une opération manuelle. Je voudrais savoir si il y a moyen de faire un tail régulièrement par un cron par exemple
__________________
http://aldorande.miniville.fr/ind Fedora 8, eclipse 3.3 sur x86_64 -------------- Colorer votre code php |
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : octobre 2005 Messages : 344 ![]() |
Salut,
Si tu as déjà les infos dans les logs et que tu as des droits en lecture dessus, pourquoi veux-tu rediriger les infos de ces logs dans un autre fichier ( > tmp ) ?? De plus, quelle serait la finalité de ton action ? Si c'est pour vérifier les logs que lorsque tu te connectes, je ne voit pas trop l'utilité de le mettre dans un cron ... Par contre, si tu veux parser les logs et t'envoyer un mail à chaque fois qu'il y a une erreur par exemple, alors oui, c'est pratique. |
|
|
00
|
|
|
#3 | |
|
Membre éprouvé
![]() |
Citation:
Enfait, dans mon cas, je voudrais savoir qu'elle script php éxecute qu'elle requête mais je crois que j'ai une idée pondre un autre php (inclue dans tous les autres fichiers) qui écrit dans un log l'horaire auquel un utilisateur visite la page et ensuite je compare grace à diff les log mysql à ça
__________________
http://aldorande.miniville.fr/ind Fedora 8, eclipse 3.3 sur x86_64 -------------- Colorer votre code php |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : juillet 2004 Messages : 2 246 ![]() |
Est ce que tu pourrais montrer un exemple des données que tu reçois et du résultat que tu voudrais obtenir idéalement ?
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer. |
|
|
00
|
|
|
#5 | |||
|
Membre éprouvé
![]() |
Citation:
c'est un fichier qui fait 691 705 lignes donc je vais vous montrer le début Code :
l'idée serait idéalement qu'à chaque fichier PHP appelé le tail -f du log soit redirigé vers un fichier créer dans /home/user/mysql-queries est qui soit nommé comme la date (au format %Y%m%d) (par php, mais je sais pas si ça peut se faire) ou sinon en bash, redirigé ce tail -f du fichier de log vers des fichiers "date de début - date de fin" dans /home/user/mysql-queries par exemple toutes les minutes (cron)
__________________
http://aldorande.miniville.fr/ind Fedora 8, eclipse 3.3 sur x86_64 -------------- Colorer votre code php |
|||
|
00
|
|
|
#6 |
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 5 496 ![]() |
Bonjour,
Je pense qu'il faut que tu te renseignes précisément sur ce que fait tail -f sur ton système... En général, tail -f affiche les X dernières lignes du fichier, puis continue pour afficher les lignes qui pourraient se rajouter, sans jamais se finir. Comment donc faire pour lancer ce programme depuis la crontab, puis l'arréter ??? Pourquoi ne pas chercher à configurer tes logiciels pour qu'ils écrivent leurs logs dans des fichiers tournants de taille plus raisonnable ? |
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : août 2005 Messages : 8 307 ![]() |
Si l'objectif est de croiser les logs MySQL et les noms de tes scripts PHP, tu n'arriveras pas à tes fin avec un simple tail sur les fichiers de log de MySQL.
Comme le dit gangsoleil, tail -f affiche en permanence sur la console les dernières lignes ajoutées au fichier. Faut toujours faire un Ctrl-C pour arrêter un tail -f. Sinon, fais un tail -1000 pour afficher les 1000 dernières lignes du fichier et récupérer la main. Si tu "crones" un tail -f toutes les minutes, chaque commande que tu lanceras ne se termineras jamais et là, tu vas vite blinder ton système. Par ailleurs, en analysant simplement un fichier dans lequel figurent toutes les requêtes MySQL exécutées en concurrence, comment feras-tu la différence entre telle requête exécutée par tel script et telle autre requête exécutée en même temps par tel autre script ? Je suis 100% d'accord avec gangsoleil : il faut plutôt que tu mettes en place un système de traces côté PHP, ce sera plus pertinent et facile à faire. Pour faire des fichiers tournants, regarde du côté du rotatelog d'Apache, y a peut-être moyen de l'utiliser.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#8 | ||
|
Membre éprouvé
![]() |
Citation:
et de le stopper avec un ps et un kill (en root)[/quote] Citation:
mais voila je sai_s pas comment faire. si tu veux bien m'aider, je t'en serais reconnaissant
__________________
http://aldorande.miniville.fr/ind Fedora 8, eclipse 3.3 sur x86_64 -------------- Colorer votre code php |
||
|
00
|
|
|
#9 | |
|
Membre éprouvé
![]() |
Citation:
Code :
kill $(ps -ef | grep tail | grep -v grep | awk '{print $2}')
__________________
http://aldorande.miniville.fr/ind Fedora 8, eclipse 3.3 sur x86_64 -------------- Colorer votre code php |
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : juillet 2004 Messages : 2 246 ![]() |
Code :
ps -ef | grep tail | grep -v grep | awk '{print $2}'
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer. |
|
|
00
|
|
|
#11 | |
|
Membre éprouvé
![]() |
Citation:
mais je préfère utiliser ma méthode je préfère les méthodes POSIX en effet, ces plus pratique quand on chande système Unix (ps fonction sous Darwin, Bsd, Solaris, Linux, et les autres je sais pas j'ai pas testé)
__________________
http://aldorande.miniville.fr/ind Fedora 8, eclipse 3.3 sur x86_64 -------------- Colorer votre code php |
|
|
00
|
|
|
#12 |
|
Membre confirmé
![]() Inscription : octobre 2005 Messages : 344 ![]() |
Alors ru peux regarder du côté de "pkill" qui te permet de killer par exemple tous les process "tail" pour un user determiné:
http://www.iti.cs.tu-bs.de/cgi-bin/U...an-cgi?pkill+1 Par exemple ce code va killer tous les process mplayer du user toto: Mais je suis d'accord avec les autres ... Plutôt mettre une redirection des logs au niveau de ton code PHP ... Maintenant, tu peux mettre en place (laborieux je te l'accorde) un code qui va scruter la syslog et récuperer tout ce qu'il faut depuis la dernière fois qu'il a tourné, avec au passage, une mise en page telle que tu le souhaites ... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com