linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] Udev e script bash

Maurizio Paolini paolini a dmf.unicatt.it
Mar 25 Nov 2014 22:53:12 UTC
Non saprei dire...

On Wed, Nov 19, 2014 at 05:09:50PM +0100, Paolo Zanotti wrote:
> Grazie Maurizio per le info.
> 
> Ho modificato leggermente lo script in modo da poter tracciare anche lo
> standard error.
> 
> Effettivamente rsync genera un errore, il seguente:
> 
> rsync: connection unexpectedly closed (295987 bytes received so far)
> [sender]
> rsync error: error in rsync protocol data stream (code 12) at io.c(605)
> [sender=3.0.9]
> 
> Aggiungo un'ulteriore info: il problema si verifica durante l'esecuzione di
> rsync di una condivisione samba montata sul server che esegue lo script.
> 
> 
> Grazie
> 
> Il giorno 17 novembre 2014 15:11, Maurizio Paolini <paolini a dmf.unicatt.it>
> ha scritto:
> 
> > Alcune cose che possono cambiare tra una esecuzione "a mano" ed una
> > automatizzata:
> >
> > - associazione ad una tty; a volte e' utile premettere un "nohup"
> > all'esecuzione
> > di un comando (vedi "man nohup"), mi riferisco ad esempio ad "rsync",
> > anche tenendo
> > conto che la redirezione dell'output (con ">>", nel caso specifico) *non*
> > redirige
> > lo standard error.
> >
> > - le variabili di ambiente possono essere diverse.  In particolare la
> > "PATH" (questa
> > cosa rompe parecchio le scatole tipicamente negli script a tempo via
> > cron).  E' possibile
> > che la PATH sia ridotta all'essenziale, e non e' detto che /usr/sbin/ sia
> > compresa.
> > Comunque non mi pare che sia quello il problema visto che usi la path
> > completa,
> > con l'esclusione di "echo", che pero' credo si riferisca alla versione
> > interna della bash.
> >
> > - la localizzazione... puo' rompere le scatole perche' ad esempio
> > l'ordinamento alfabetico
> > dipende dalla "locale".  Quando ci si ricorda conviene premettere un
> > "export LANG=C" e un
> > "export LC_ALL=C".
> >
> > mp
> >
> > On Mon, Nov 17, 2014 at 01:54:39PM +0100, Paolo Zanotti wrote:
> > > questo è lo script (manualmente lo script non dà problemi - grazie)
> > >
> > >
> > >
> > >
> > > #!/bin/bash
> > >
> > > EMAIL_DEST="info a example.com"
> > > EMAIL_SUBJECT="BAK USB"
> > > LOG=/tmp/logbakusb
> > >
> > >
> > > MOUNT_POINT=/mnt/usbdisk
> > > DEVICE=/dev/backusb
> > >
> > > SOURCE=/home/example/backups
> > > TARGET="$MOUNT_POINT/backups/example"
> > >
> > >
> > > echo "start backup at `date +%d-%m-%Y`-`date +%H:%M:%S`" > $LOG
> > >
> > > /usr/bin/mail -s "$EMAIL_SUBJECT - START" "$EMAIL_DEST" < $LOG
> > >
> > > DIRS="dir1 dir2 dir3 dir4 dir5"
> > >
> > >
> > > umount $MOUNT_POINT
> > >
> > > mount $DEVICE $MOUNT_POINT
> > >
> > > ESITO=$?
> > >
> > > if [ $ESITO -eq 0 ]
> > > then
> > >         for d in $DIRS
> > >         do
> > >                 echo "`date +%H:%M:%S` - rsync $SOURCE/$d" >> $LOG
> > >                 /usr/bin/rsync -avzq --delete "$SOURCE/$d" $TARGET >>
> > $LOG
> > >                 echo "`date +%H:%M:%S` - rsync $SOURCE/$d COMPLETATO" >>
> > > $LOG
> > >         done
> > > fi
> > >
> > >
> > > echo "`date +%H:%M:%S` - avvio sync" >> $LOG
> > >
> > > /bin/sync
> > >
> > > echo "`date +%H:%M:%S` - sync completato" >> $LOG
> > >
> > >
> > > echo "`date +%H:%M:%S` - umount $MOUNT_POINT" >> $LOG
> > >
> > > umount $MOUNT_POINT
> > >
> > >
> > > /usr/bin/mail -s "$EMAIL_SUBJECT - END" "$EMAIL_DEST" < $LOG
> > >
> > >
> > >
> > > Il giorno 17 novembre 2014 13:42, Furio Settimi <furio.settimi a gmail.com
> > >
> > > ha scritto:
> > >
> > > > posta anche lo script, che e' quello che sembra non andare
> > > >
> > > > Il giorno 17 novembre 2014 12:18, Paolo Zanotti <
> > zanotti.paolo a gmail.com>
> > > > ha scritto:
> > > >
> > > >> Ciao a tutti,
> > > >>     ho creato una regola per fare in modo che all'inserimento di un
> > disco
> > > >> USB, venga avviato automaticamente uno script bash.
> > > >> Il disco viene collegato a una macchina con ubuntu server 12.04 64
> > bit.
> > > >>
> > > >> Lo script esegue queste istruzioni:
> > > >>
> > > >> - invia un'email di "inizio bash"
> > > >> - monta il disco
> > > >> - esegue un rsync di alcune directories
> > > >> - smonta il disco
> > > >> - invia un'email di "fine bash"
> > > >>
> > > >> Il problema è che lo script a un certo punto si pianta.
> > > >> Se avviato manualmente lo script funziona correttamente.
> > > >>
> > > >> Se commento il comando rsync, lo script inizia e termina
> > correttamente.
> > > >>
> > > >> Non mi spiego perchè dopo aver ciclato "x" directories su "n" lo
> > script
> > > >> si pianta mentre manualmente non ciò accade.
> > > >>
> > > >> Questa è la regola di udev
> > > >>
> > > >> ACTION=="add",KERNEL=="sd?1", ATTRS{idVendor}=="1d6b",
> > > >> ATTRS{idProduct}=="0002", ATTRS{serial}=="0000:00:12.2",
> > SYMLINK+="bakusb",
> > > >> RUN+="/usr/local/bin/bakToUsb"
> > > >>
> > > >>
> > > >> Suggerimenti?
> > > >> Grazie
> > > >>
> > > >> Paz.
> > > >>
> > > >> --
> > > >> ------------------------------------------
> > > >> Paolo Zanotti
> > > >>
> > > >> --
> > > >> Info/Lamentele/Segnalazioni: andrea.gelmini a gmail.com
> > > >>
> > > >
> > > >
> > > > --
> > > > Info/Lamentele/Segnalazioni: andrea.gelmini a gmail.com
> > > >
> > >
> > >
> > >
> > > --
> > > ------------------------------------------
> > > Paolo Zanotti
> >
> > > --
> > > Info/Lamentele/Segnalazioni: andrea.gelmini a gmail.com
> >
> > --
> > Info/Lamentele/Segnalazioni: andrea.gelmini a gmail.com
> >
> 
> 
> 
> -- 
> ------------------------------------------
> Paolo Zanotti

> -- 
> Info/Lamentele/Segnalazioni: andrea.gelmini a gmail.com



Maggiori informazioni sulla lista Lug