linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] Udev e script bash

Paolo Zanotti zanotti.paolo a gmail.com
Mer 19 Nov 2014 16:09:50 UTC
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
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lugbs.linux.it/pipermail/lug/attachments/20141119/7c64ea34/attachment.html>


Maggiori informazioni sulla lista Lug