[Linuxtrent] Re: script per snapshot dati (tendente a backup) :)

  • From: "Federico Flego" <flego.federico@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Fri, 23 Nov 2007 11:57:20 +0100

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


Other related posts: