rsync non presidiato su connessione instabile
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- joe
- Iper Master

- Messaggi: 3986
- Iscritto il: ven 27 apr 2007, 11:21
- Slackware: 15.0
- Kernel: 5.15.38
- Desktop: dwm
rsync non presidiato su connessione instabile
La mia connessione ad internet via cellulare a volte cade.
Così faccio girare dietro le quinte uno script che si occupa di riconnettermi ogni volta che trova la connessione down.
In questi giorni stavo scaricando parte del ramo 12.2 di slackware.
Così mi sono creato la mia lista di file da tirare giù da un mirror che offre connettivita via rsync (università dello stato dell'oregon) e ho lanciato rsync sperando in bene.
L'obiettivo è lasciar fare a rsync durante la notte.
Ma...
Ho notato che se la connessione cade e poi si riconnette grazie allo scriptino di riconnessione rsync che ovviamente s'era fermato, non prosegue più.
È normale questo comportamento?
Così faccio girare dietro le quinte uno script che si occupa di riconnettermi ogni volta che trova la connessione down.
In questi giorni stavo scaricando parte del ramo 12.2 di slackware.
Così mi sono creato la mia lista di file da tirare giù da un mirror che offre connettivita via rsync (università dello stato dell'oregon) e ho lanciato rsync sperando in bene.
L'obiettivo è lasciar fare a rsync durante la notte.
Ma...
Ho notato che se la connessione cade e poi si riconnette grazie allo scriptino di riconnessione rsync che ovviamente s'era fermato, non prosegue più.
È normale questo comportamento?
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: rsync non presidiato su connessione instabile
Si è normale. Di allo scriptino di rilanciare anche rsync, lui si accorge di ciò che ha fatto e di quello che rimane da fare.
Spina
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- joe
- Iper Master

- Messaggi: 3986
- Iscritto il: ven 27 apr 2007, 11:21
- Slackware: 15.0
- Kernel: 5.15.38
- Desktop: dwm
Re: rsync non presidiato su connessione instabile
Ma rsync non "muore" da solo.
Quindi alla riconnessione dovrei prevedere uno script che killa e successivamente avvi rsync (con tutte le opzioni del caso....dico bene?
Ma non è strano questo "limite" di rsync?
Penso ad esempio a wget che prevede millemila opzioni per ritentare a contattare il server ecc ecc.
Siamo proprio sicuri che rsync non includa qualche opzione del per comprendere questa preziosa funzionalità?
Non è un problema scrivere un semplice scriptino che colmi questa "lacuna", ma chiedevo comunque perchè le funzionalità di rsync sono tante e nel man mi perdo, su google effettivamente non ho trovato nulla a riguardo di queso specifico aspetto di rsync.... La tua conferma quindi me l'haspettavo.
Per lo script...è un altro discorso va bè. Comunque il mio scriptino che tiene in piedi la connessione fà solo quello...
Penso sia meglio dividere i compiti ed eventualmente predisporre uno script da eseguire alla connessione quindi da infilare in /etc/ppp/ip-up.
Quindi alla riconnessione dovrei prevedere uno script che killa e successivamente avvi rsync (con tutte le opzioni del caso....dico bene?
Ma non è strano questo "limite" di rsync?
Penso ad esempio a wget che prevede millemila opzioni per ritentare a contattare il server ecc ecc.
Siamo proprio sicuri che rsync non includa qualche opzione del per comprendere questa preziosa funzionalità?
Non è un problema scrivere un semplice scriptino che colmi questa "lacuna", ma chiedevo comunque perchè le funzionalità di rsync sono tante e nel man mi perdo, su google effettivamente non ho trovato nulla a riguardo di queso specifico aspetto di rsync.... La tua conferma quindi me l'haspettavo.
Per lo script...è un altro discorso va bè. Comunque il mio scriptino che tiene in piedi la connessione fà solo quello...
Penso sia meglio dividere i compiti ed eventualmente predisporre uno script da eseguire alla connessione quindi da infilare in /etc/ppp/ip-up.
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: rsync non presidiato su connessione instabile
Nel man trovo questo:
quindi potresti fare una cosa del tipoo qualcosa del genere (lo sleep serve a dare il tempo allo script per riconnetterti, ma dovresti già essere riconnesso se il timeout è buono).
Spina
Codice: Seleziona tutto
--timeout=TIMEOUT
This option allows you to set a maximum I/O timeout in seconds. If no data is
transferred for the specified time then rsync will exit. The default is 0,
which means no timeout.
Codice: Seleziona tutto
while ! rsync --timeout=30 ...;
do
sleep 1;
doneSpina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- joe
- Iper Master

- Messaggi: 3986
- Iscritto il: ven 27 apr 2007, 11:21
- Slackware: 15.0
- Kernel: 5.15.38
- Desktop: dwm
Re: rsync non presidiato su connessione instabile
Scusa eh, ho capito la questione del timeout, l'avevo anche letta di sfuggita nel man, ma visto che stavo cercando una funzione builtin per farlo ritentare non m'ero soffermato su quell'opzione....sinceramente mi sfugie questo punto:
Cosa significa?
Intanto immagino che "rsync --timeout....ecc.ecc" sia il comando intero con cui richiamo rsync. E va bene...
Ma non riesco bene a capirlo messo così nel while con il ! davanti. Cioè vuol dire:
fintanto che il comando ... non da esito negativo, cioè non ritorna un valore diverso da zero...
Mi resta difficile capirlo, abbi pazienza....potresti chiarirmi le idee?
Codice: Seleziona tutto
while ! rsync --timeout=30 ....Intanto immagino che "rsync --timeout....ecc.ecc" sia il comando intero con cui richiamo rsync. E va bene...
Ma non riesco bene a capirlo messo così nel while con il ! davanti. Cioè vuol dire:
fintanto che il comando ... non da esito negativo, cioè non ritorna un valore diverso da zero...
Mi resta difficile capirlo, abbi pazienza....potresti chiarirmi le idee?
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: rsync non presidiato su connessione instabile
Nel man dice che con l'opzione --timeout esce con un valore diverso da 0 se avviene un 'timeout' della connessione. Quindi il comando dice:"finché rsync torna un valore diverso da 0, sleep 1".
In pratica lanci rsync, se rsync esce con 0 allora il while si ferma, se esce con un valore diverso da 0 (probabile timeout) si fa uno sleep e poi si rilancia rsync.
Lo sleep è una cosa come un altra da mettere nel corpo del while, potresti anche metterci: echo "timeout $(date)".
Spina
In pratica lanci rsync, se rsync esce con 0 allora il while si ferma, se esce con un valore diverso da 0 (probabile timeout) si fa uno sleep e poi si rilancia rsync.
Lo sleep è una cosa come un altra da mettere nel corpo del while, potresti anche metterci: echo "timeout $(date)".
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- joe
- Iper Master

- Messaggi: 3986
- Iscritto il: ven 27 apr 2007, 11:21
- Slackware: 15.0
- Kernel: 5.15.38
- Desktop: dwm
Re: rsync non presidiato su connessione instabile
Mmm....
Dunque poniamo di avere lanciato rsync con quel comando. Se la connessione è down all'intante del lancio, ok, ritenta finchè la connessione non è up e non va più in timeout.
Ma se all'istante del lancio la connesione è up, rsync non va in timeout e lo script termina, o no?
E poi se la connessione dovesse cadere...rsync morirebbe, ma non vi è più lo script che ritenta o sbaglio?
Quindi mi ritroverei con rsync morto e lo script terminato...sbaglio?
Dunque poniamo di avere lanciato rsync con quel comando. Se la connessione è down all'intante del lancio, ok, ritenta finchè la connessione non è up e non va più in timeout.
Ma se all'istante del lancio la connesione è up, rsync non va in timeout e lo script termina, o no?
E poi se la connessione dovesse cadere...rsync morirebbe, ma non vi è più lo script che ritenta o sbaglio?
Quindi mi ritroverei con rsync morto e lo script terminato...sbaglio?
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: rsync non presidiato su connessione instabile
Termina quando esce rsync, ricorda che lo script esegue rsync.joe ha scritto:Mmm....
Dunque poniamo di avere lanciato rsync con quel comando. Se la connessione è down all'intante del lancio, ok, ritenta finchè la connessione non è up e non va più in timeout.
Ma se all'istante del lancio la connesione è up, rsync non va in timeout e lo script termina, o no?
se la connessione cade, allora dopo un pò scatta il timeout e rsync esce con un valore diverso da 0, quindi l'argomento del while risulta vero e lo script eseguel sleep e poi di nuovo rsync.joe ha scritto:E poi se la connessione dovesse cadere...rsync morirebbe, ma non vi è più lo script che ritenta o sbaglio?
Penso che sbagli, ma puoi sempre testarlo. Io non l'ho provato ma puoi fare una prova tu, fallo eseguire e poi ferma la connessione, quindi rimettila up e vedi che succedejoe ha scritto:Quindi mi ritroverei con rsync morto e lo script terminato...sbaglio?
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: rsync non presidiato su connessione instabile
Ho fatto una prova, diciamo che se il tuo script che controlla la connessione è veloce, allora rsync riusa il vecchio socket e quindi ricomincia senza bisogno di rieseguirlo.
Invece se va in timeout, il codice che ti ho scritto funziona bene, rsync ritorna un valore diverso da 0 e il ciclo ricomincia.
Spina
Invece se va in timeout, il codice che ti ho scritto funziona bene, rsync ritorna un valore diverso da 0 e il ciclo ricomincia.
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- joe
- Iper Master

- Messaggi: 3986
- Iscritto il: ven 27 apr 2007, 11:21
- Slackware: 15.0
- Kernel: 5.15.38
- Desktop: dwm
Re: rsync non presidiato su connessione instabile
Vero, qui sta il mio errore...spina ha scritto:Termina quando esce rsync, ricorda che lo script esegue rsync.joe ha scritto: Ma se all'istante del lancio la connesione è up, rsync non va in timeout e lo script termina, o no?
Il resto del mio post è quindi totalemte insensato. Ora mi torna il tuo script e sinceramente non mi dispiace per niente nella sua semplicità.
Il mio script non è poi così veloce, o almeno non sempre, in pratica deve ristabilire la connessione bluetooth al cellulare e riconettereHo fatto una prova, diciamo che se il tuo script che controlla la connessione è veloce, allora rsync riusa il vecchio socket e quindi ricomincia senza bisogno di rieseguirlo.
Ma a questo punto, che rsync continui sullo stesso socket o vada in timeout poco cambia, l'importante è che poi riprenda la sincronizzazione. E mi pare proprioche da quanto dici funzioni bene.
Modificherò il mio script di sincronizzazione mettendo il rsync nel ciclo while...la prossima volta che mi servirà lo sfrutterò.
Grazie mille dell'aiuto, penso che questa discussione torni utile anche a molti non dotati di connessioni stabili e moderne.
Invece se va in timeout, il codice che ti ho scritto funziona bene, rsync ritorna un valore diverso da 0 e il ciclo ricomincia.