Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente bannato
    Registrato dal
    Dec 2007
    Messaggi
    12

    monitorare un log da remoto

    Salve a tutti.
    premetto che le mie conoscenze di php sono modeste, ma sufficienti a procedere da solo se qualcuno mi dà gentilmente le dritte di base.

    la situazione è questa:
    - Ho un server "pippo" dove gira un programma che produce un log (non ho accesso di root, ma solo rw alla cartella dove sta il log)
    - Ho uno spazio web "pluto" dove vorrei installare uno script php che tiene costantemente monitorato il log e non appena qualcosa di nuovo viene scritto nel log fa scattare un evento (es. invio mail, registrazione in un altro log remoto, ecc.).

    il mio problema è che non so bene che set di funzioni utilizzare:
    -le funzioni Socket permettono di collegarsi in ascolto ad un server remoto ma non di aprire un file.

    -le funzioni FTP permettono di trasferire un file, ma non di aprirlo da remoto.

    -le funzioni di Filesystem sembrerebbero quindi le più indicate. La mia idea sarebbe quella di creare un loop che a intervalli regolari (diciamo 2 secondi) controlla la dimensione del file. Se la dimensione risulta aumentata apro il file posizionandomi alla vecchia lunghezza e leggo tutto ciò che c'è di nuovo fino all'EOF.
    Secondo voi è fattibile una cosa del genere?
    Siccome sullo spazio web "pluto" è settato un max_execution_time 180, non è che dopo 3 minuti il server mi killa lo script?

    Grazie per eventuali consigli.

  2. #2
    si per il discorso max_execution_time, esiste un'altra maniera, te fai lo script che controlla la dimensione del file e lo aggiorna ogni due secondi, ma imposti che dopo 60 secondi si rifresha la pagina (così si riavvia lo script), è una sorta di loop non consigliabile ma penso possibile.

  3. #3
    Utente bannato
    Registrato dal
    Dec 2007
    Messaggi
    12
    Originariamente inviato da goikiu
    ... ma imposti che dopo 60 secondi si rifresha la pagina (così si riavvia lo script), è una sorta di loop non consigliabile ma penso possibile.
    fammi capire meglio come procederesti, please.
    Siccome non ho un omino che mi refresha la pagina dovrei:
    - utilizzare un cron per richiamarla (ma se avevo il cron mi bastava rilanciare lo script ogni 180sec)
    - fare un'altro script che lancia il primo script (ma quest'ultimo sarebbe a sua volta soggetto ai 180 sec di vita massima)

    - oppure lo script "1" prima di "morire" lancia lo script "2" che a sua volta allo scadere dei 180 sec richiama lo script "1".
    - o addirittura lo script 1, ogni 180 secondi richiama se stesso...
    E' così che intendevi?E' fattibile secondo te? Penso che il server apache sia in grado di intercettare simili trucchetti... :master:

  4. #4
    Hai la possibilità di tenere aperta costantemente su un browser la pagina web?

    Se si, nel codice php della pagina imposti un header di refresh a xxx secondi ed imposti 1 controllo sul file di log.
    Ogni xxx secondi la pagina effettua un refresh in automatico e riesegue lo script.

    Effettuando lo script 1 solo controllo la sua durata rientra tranquillamente entro il limite imposto dal server.


    Se invece non hai la possibilità di tenere la pagina web costantemente aperta, o ti appoggi ad un servizio cron esterno (che richiama la tua pagina ad intervallo regolare) oppure non puoi fare molto*.



    * potresti richiamare lo script all'apertura di una pagina web ma in questo modo non avrai la certezza di avere un controllo regolare nel tempo (potrebbero passare ore prima che qualcuno apra la pagina) ed inoltre la pagina sarà rallentata. E' quindi una opzione da tenere in considerazione solo se non se ne può fare a meno.

  5. #5
    si, o imposti l'header o usi un refresh tramite javascript o se usi determinati browser come firefox esistono degli addon per fare un refresh automatico di qualsiasi pagina web

  6. #6
    Utente bannato
    Registrato dal
    Dec 2007
    Messaggi
    12
    Originariamente inviato da DragonOfLight
    Hai la possibilità di tenere aperta costantemente su un browser la pagina web?
    No, perchè lo script dovrebbe girare su uno spazio web hostato da un normale provider, non sul mio PC.

    Originariamente inviato da DragonOfLight
    Se invece non hai la possibilità di tenere la pagina web costantemente aperta, o ti appoggi ad un servizio cron esterno (che richiama la tua pagina ad intervallo regolare) oppure non puoi fare molto*.

    * potresti richiamare lo script all'apertura di una pagina web ma in questo modo non avrai la certezza di avere un controllo regolare nel tempo (potrebbero passare ore prima che qualcuno apra la pagina) ed inoltre la pagina sarà rallentata. E' quindi una opzione da tenere in considerazione solo se non se ne può fare a meno.
    Infatti l'unica soluzione che vedo io è un cron.

    NOTA:
    Mi ricordo che millemila anni fa avevo risolto il problema in ASP (o ASP.NET) "giocando" sulle sessioni. Sono certo che il sistema funzionava perchè avevo ottenuto il risultato, però non mi ricordo minimamente come avevo fatto se non che c'entravano le sessioni... Forse avevo simulato la visita di un browser...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.