Buona domenica piovosa a tutti!
Che cosa succede quando in uno script (fatto evidentemente male, perchè
tutti gli eventuali controlli di funzionamento erano stati disabilitati,
quindi è anche mea culpa...)
un comando di punto in bianco inizia a funzionare in modo diverso da come
era previsto da chi scrisse lo script?
Ecco qua il comando:
echo "Message received on "`date` | mutt -e "unset record" -s "Messaggio
del $data in segreteria telefonica" -a /tmp/$data.wav vladimir
Ed ecco qua il motivo del mio ODIO.
1.5.19 (2009-01-05):
! command-line arguments: -a now mandates -- at end of file list (***)
La soluzione, molto semplicemente, diventa:
echo "Message received on "`date` | mutt -e "unset record" -s "Messaggio
del $data in segreteria telefonica" -a /tmp/$data.wav -- vladimir
Chi sa quanti messaggi della mia segreteria telefonica se ne sono andati
perduti.... Il fatto è che non so nemmeno quando ho fatto l'aggiornamento
a mutt 1.5.19 o a mutt 1.5.20 (penso nei primi mesi di quest'anno, perchè
a ottobre la segreteria mi funzionava ancora)....
Che mi/vi sia di monito e lezione.
Per la cronaca, ecco qua il testo completo dello script (*)(**), che serve
a recapitarmi via e-mail i messaggi che ricevo in segreteria telefonica
(modem 56k voice + vgetty):
*: derivato da uno script più semplice fatto da Massimo Fusari, che faceva
solo quanto indicato nelle prime 5 righe.
Il mio script invece non deposita il file da nessuna parte, ma lo invia
via e-mail al destinatario, e cioè a me.
**: nel quale, all'origine, avevo pure pensato di mettere qualche
controllo di sicurezza, ma poi probabilmente qualcosa dei controlli non
funzionava come volevo io, e io ho deciso di disabilitare tutti i
controlli... e ha funzionato in questo modo per diversi anni.
***: http://www.mutt.org/doc/devel/UPDATING
#!/bin/sh
#script di conversione messaggio segreteria telefonica da PFV a WAV
#poi rinomina il file con la data corrente e lo deposita in
#/public/messages
#
#usato da vgetty e abilitato in /etc/mgetty+sendfax/voice.conf
# Metto il nome del file in ingresso in un file di log
# temporaneo che viene sovrascritto ad ogni messaggio in ingresso
echo $1 > /var/log/prova
# Converto il messaggio in ingresso dal formato rmd al formato pvf,
# lo cambio di frequenza, e lo salvo nel file temporaneo /tmp/secretary.pvf
rmdtopvf $1 | pvfspeed -s 8000 > /tmp/secretary.pvf
#imposto la variabile "data" con la data corrente
data=`date +%d_%m_%Y_%H_%M_%S`
# Converto il file pvf appena creato in un file tipo wav
#pvftowav /tmp/secretary.pvf /public/messages/$data.wav 2>/dev/null
pvftowav /tmp/secretary.pvf /tmp/$data.wav 2>/dev/null
# Se l'ultimo comando ha funzionato bene cancella sia il file temporaneo
# che il file rmd
# if [ $? ]
# then
rm /tmp/secretary.pvf
rm $1
# else
#chmod 666 /public/messages/$data.wav
# Invia una mail contenente in allegato il messaggio
echo "Message received on "`date` | mutt -e "unset record" -s "Messaggio
del $data in segreteria telefonica" -a /tmp/$data.wav -- vladimir
# Se l'invio della mail in allegato ha avuto successo cancella i
# vari file temporanei, altrimenti copia il messaggio nella cartella apposita
#if [ $? ]
# then
rm /tmp/$data.wav
# else
# cp /tmp/$data.wav /var/spool/voice/incoming/$data.wav
# fi
E` ovvio che ogni suggerimento (possibilmente testato e funzionante) per
rendere il mio script più robusto e meno soggetto al perdere messaggi per
strada è ben accetto.
Poi volendo uno potrebbe anche pensare di convertire il wav in mp3, o
altre finezze, ma per quello che serve a me il wav è più che accettabile.
Saluti a tutti!
Ciao, Vladimir Nicola
|