Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
script per calcolo secondi di connessione
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
lucapost
Veteran
Veteran


Joined: 24 Nov 2005
Posts: 1419
Location: <ud|me|ts> - Italy

PostPosted: Sun May 09, 2010 10:31 am    Post subject: script per calcolo secondi di connessione Reply with quote

Ho un bel dilembo da risolvere.
Devo calcolare la durata di una connessione ppp attraverso uno script.
Il problema è che la macchina su cui gira il demone ad ogni riavvio perde le impostazione dell'orologio (si resetta al 01-01-1970), il quale si sincronizza correttamente solamente successivamente all'avvio della connessione.

L'istante dal quale sarebbe corretto calcolare il tempo di connessione dovrebbe essere quello in cui l'interfaccia ppp0 riceve l'ip dal server remoto, e questo avviene ad orologio non sincronizzato. Ovviamente l'intervallo di tempo tra l'avvio del demone ppp e la ricezione dell'indirizzo ip non è mai lo stesso.

Ho verificato che ntpclient ci mette circa un minuto per sincronizzare l'orologio, ma questo tempo non è mai lo stesso. Cioè, ho l'orologio sincronizzato in un tempo che oscilla tra 30-90 secondi.

Attualmente, per contare i secondi di connessione mi baso sul comando date +%s, il quale mi da i secondi a partire dal 1-1-1970. Quindi per conoscere gli effettivi secondi di connessione, rilancio date +%s e faccio la differenza con il risultato del primo.

Capite che se tra i due date +%s ho una sincronizzazzione dell'orologio la cosa non funziona.
Quindi in verità il primo date +%s lo lancio 90 secondi dopo l'avvio della connessione ppp, ed alla differenza tra i due ci sommo 90 secondi.

Questa è una stima comunque imprecisa, qualche consiglio su come risolvere?
_________________
LP


Last edited by lucapost on Sun May 09, 2010 10:35 am; edited 1 time in total
Back to top
View user's profile Send private message
Peach
Advocate
Advocate


Joined: 08 Mar 2003
Posts: 3686
Location: London, UK

PostPosted: Sun May 09, 2010 10:33 am    Post subject: Reply with quote

e usare time? viene anch'esso influenzato dall'aggiustamento di orario?
_________________
Gentoo user since 2004.
"It's all fun and games, until someone loses an eye" - mom
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4792
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Sun May 09, 2010 9:22 pm    Post subject: Reply with quote

prima di ntp-client (anzi, nell'istante in cui ricevi l'ip), lanci un demone contasecondi.
dopo l'aggiustamento dell'ora, leggi lo stato del demone, determini il tempo passato e spegni il demone, di cui adesso puoi fare a meno.
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
Zizo
Apprentice
Apprentice


Joined: 04 Feb 2010
Posts: 200
Location: Padova, Italy

PostPosted: Sun May 09, 2010 9:32 pm    Post subject: Utilizzo della variabile SECONDS. Reply with quote

Potresti provare ad utilizzare la variabile SECONDS.
All'interno dello script imposti
Code:
SECONDS="0"
che verrà automaticamente incrementato di 1 ad ogni secondo.
Così per sapere il tempo trascorso dal precedente comando puoi fare un
Code:
echo "${SECONDS}"


L'unico dubbio è vedere se la variabile dipende dall'ora di sistema, anche se non penso.
Back to top
View user's profile Send private message
.:deadhead:.
Advocate
Advocate


Joined: 25 Nov 2003
Posts: 2963
Location: Milano, Italy

PostPosted: Sun May 09, 2010 10:07 pm    Post subject: Reply with quote

se utilizzi openntpd al posto del vecchio ntp, hai la possibilità di far sì che la data venga subito recepita dal server contro cui ti sincronizzi, tramite l'opzione -s che setti in NTPD_OPTS sotto /etc/conf.d/ntpd
_________________
Proudly member of the Gentoo Documentation Project: the Italian Conspiracy ! ;)
Back to top
View user's profile Send private message
lucapost
Veteran
Veteran


Joined: 24 Nov 2005
Posts: 1419
Location: <ud|me|ts> - Italy

PostPosted: Tue May 11, 2010 1:16 pm    Post subject: Reply with quote

Sia time che clock sono influenzati dall'orologio di sistema.

Ho verificato che una possibile soluzione è considerare i seguenti tempi:
  • T1: ricezione dell'ip
  • T2: istante antecedente la sincronizzazione
  • T3: istante successivo alla sincronizzazione
  • T4: tempo generico

Tempo connessione = (T2-T1)+(T4-T3).
Per ricavare T1, T2 e T3 ho inserito qualche if con break dentro ad un ciclo while true, con i relativi controlli.
E' una soluzione un pò laboriosa, ma funge.

Se qualcuno ha un'idea migliore....
_________________
LP
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum