On Nov 22, 2007 9:48 AM, Giuliano Natali <diaolin@xxxxxxxxxxx> wrote: > > Sempre di fretta Federico Flego ha scritto: Si, in effetti e' un mio difetto! La prendo come una tirata d'orecchi... affettuosa! > > in effetti e' quello che vorrei ottenere io. Ho dato una scorsa alla > > documentazione ma non ho capito se e' possibile lanciarlo fuori da > > cron e cioe' solo quando viene rilevato l'inserimento del disco > > esterno... ? > > Ti hanno parlato di udev in lista e se guardi la documentazione trovi: > > http://reactivated.net/writing_udev_rules.html > > Running external programs upon certain events > [....] Grazie della (ri)segnalazione! in effetti ci ho giocato un po' sia con udev che con rsnapshot. ******UDEV_START****** Per quanto riguarda udev, non riesco a capire come fare a lanciare uno script in background. Ho fatto la seguente prova: esguo: udevcontrol log_priority=info nelle regole udev, per la mia device imposto: RUN+="/bin/sh /usr/local/bin/prova_udev.sh &" 'prova_udev.sh' al suo interno esegue: sleep 60 exit 0 esguo: udevtrigger e osservo in '/var/log/messages' Nov 23 10:58:46 gardel udevd-event[19913]: run_program: '/bin/./sh /usr/local/bin/prova_udev.sh &' [...] Nov 23 10:59:46 gardel udevd-event[19913]: run_program: '/bin/./sh' returned with status 0 Lo stesso succede senza l'utilizzo della '&'. Visto che 'man udev' dice: "Running an event process for a long period of time may block all further events for this or a dependent device. Long running tasks need to be immediately detached from the event process itself." e considerato che creare l'operazione di 'backup' puo' richiedere molto tempo, qualcuno sa dirmi come fare ad esegure da udev uno script in background? ******UDEV_END****** ******RSYNC_START****** Tornando a rsnapshot invece, recapitolando, io voglio che venga fatto una snapshot (massimo una) al giorno all'inserimento del hd esterno. Se un giorno non inserisco l'hard disk, amen, se un altro giorno lo inserisco e lo tolgo 15 volte, la snapshot dev'essere creata solo la prima volta. Udev mi permette di lanciare un programma. Se lancio rsnapshot "fuori da cron" (per questo la domanda mal posta) devo poterlo fermare nel caso nello stesso giorno abbia gia' creato una snapshot. Se non ho capito male (maledetta fretta! :) ) le opzioni 'interval' di rsnapshot sono state create pensando all'utilizzo di cron per dettare i tempi. Ossia rsnapshot non ha idea di che ora, giorno, mese, anno sia. Infatti, ho provato ad eseguire manualmente rsnapshot piu' volte in rapida successione e mi crea piu' directory del tipo hourly.?, daily.?, weekly/?, ecc. in funzione che lo chiami con l'opzione, appunto, hourly.?, daily.?, weekly.?, ecc Praticamente le opzioni hourly.?, daily.?, weekly/?, ecc. di rsnapshot servono solo per gestire le rotazioni delle directory. Quindi *mi sembra* di avere principalmente 2 soluzioni: **La prima: da udev lancio rsnapshot. In '/etc/rsnapshot.conf' imposto che esegua solo backup 'daily' (sarebbe lo stesso impostare solo 'hourly', o altre). Imposto 'cmd_preexec' in modo tale che venga eseguito uno script che monti il disco, controlli la data dell'ultimo backup, e che 'killi' il processo di rsnapshot se la data coincide con la data odierna. Altrimenti, devo ancora capire come si fa, mostra un messaggio in una finestra che avvisi di non staccare la device. Poi, sempre in '/etc/rsnapshot.conf', imposto 'cmd_postexec' in modo tale che a fine copia, mi smonti la device e tolga il messaggio di cui sopra. Inoltre devo creare un file con le dir da includere e uno con le dir da escludere e impostare i relativi path dove risiedono sempre in '/etc/rsnapshot.conf'. ** **La seconda: metto tutto in un unico script dove includo le pre e post operazioni che ho descritto sopra e uso rsync (come nello script che avevo postato) per ogni 'source_dir' specificata all'interno nello script stesso. ** La prima soluzione mi sembra un po' un accrocchio, anche se essendo alle prime armi con Linux, shell scripting, ecc., rsnapshot e' sicuramente piu' affidabile. Inoltre sarebbe composta da 5(+udev_rule) file di configurazione, contro uno solo(+udev_rule) della seconda soluzione. Cosa ne pensate? ******RSYNC_END****** -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx