Crontab
29,59 * * * * encoder sleep $(echo 60-$(date '+\%S.\%N') | bc); /usr/local/bin/gbd-corte > /dev/null 2>&1
31,01 * * * * encoder /usr/local/bin/gbd-verificador > /dev/null 2>&1
/usr/local/bin/gbd-corte
#!/bin/bash
source gbd-env
MNUEVO=""
MACTUAL=$(date "+%M")
if [ $MACTUAL -le "29" ]
then
MNUEVO="00"
else
MNUEVO="30"
fi
DESTINOFINAL="$DIRDEST$(date "+%Y-%m")/$(date "+%d")/"
DESTINOTEMPORAL="$DIRTEMP$(date "+%Y-%m-%d-%H-")$MNUEVO/"
AHORA=$(date "+%Y-%m-%d_%H-")$MNUEVO
/bin/mkdir -p $DESTINOTEMPORAL &
/usr/local/bin/gbd-grabando "$DESTINOFINAL" "$AHORA" "$DURACION" "$DESTINOTEMPORAL" &
sleep 1
/bin/touch $DESTINOTEMPORAL$AHORA.$!.lock
[ -d $DESTINOFINAL ] || /bin/mkdir -p $DESTINOFINAL
exit 0
/usr/local/bin/gbd-grabando
#!/bin/bash
source gbd-env
PID="$$"
DESTINO="$1"
NOMBRE="$2"
DURACION="$3"
DIRTEMP="$4"
PARCIAL="$5"
timeout $DURACION /usr/bin/ffmpeg -f pulse -i default -codec:a libmp3lame -qscale:a 5 $DIRTEMP$NOMBRE.mp3
if [ "$PARCIAL" == "PARCIAL" ]
then
exit 0
else
/bin/mv $DIRTEMP$NOMBRE.mp3 $DESTINO/$NOMBRE.mp3
/bin/rm $DIRTEMP$NOMBRE.$PID.lock
/bin/rm -d $DIRTEMP
fi
exit 0
/usr/local/bin/gbd-parcial
#!/bin/bash
sleep $(echo 60-$(date '+%S.%N'))
source gbd-env
MNUEVO=""
DURACION=""
MACTUAL=$(date "+%M")
if [ $MACTUAL -le "29" ]
then
MNUEVO="00"
DURACION=$(echo "(30-$MACTUAL)*60+$(date "+%S")"|bc)
else
MNUEVO="30"
DURACION=$(echo "(60-$MACTUAL)*60+$(date "+%S")"|bc)
fi
DESTINOFINAL="$DIRDEST$(date "+%Y-%m")/$(date "+%d")/"
DESTINOTEMPORAL="$DIRTEMP$(date "+%Y-%m-%d-%H-")$MNUEVO/"
AHORA=$(date "+%Y-%m-%d_%H-")$MACTUAL
/bin/mkdir -p $DESTINOTEMPORAL
/usr/local/bin/gbd-grabando "$DESTINOFINAL" "$AHORA" "$DURACION" "$DESTINOTEMPORAL" "PARCIAL" &
sleep 1
/bin/touch $DESTINOTEMPORAL$AHORA.$!.lock
[ -d $DESTINOFINAL ] || /bin/mkdir -p $DESTINOFINAL
exit 0
/usr/local/bin/gbd-verificador
#!/bin/bash
source gbd-env
MNUEVO=""
MACTUAL=$(date "+%M")
if [ $MACTUAL -le "29" ]
then
MNUEVO="00"
else
MNUEVO="30"
fi
AHORA=$(date "+%Y-%m-%d-%H-")$MNUEVO
DIRECTORIOS=(`ls $DIRTEMP |grep -v $AHORA`)
if [ -z "$DIRECTORIOS" ]
then
echo "no hay directorios por procesar"
exit 0
else
for DIRECTORIO in "${DIRECTORIOS[@]}"
do
SPLIT=""
DESTINO=""
SPLIT=(`echo $DIRECTORIO |awk -F- '{print $1"-"$2"-"$3"_"$4"-"$5}'`)
DESTINO=(`echo $DIRECTORIO |awk -F- '{print $1"-"$2"/"$3"/"}'`)
ARCHIVOS=(`find $DIRTEMP$DIRECTORIO -name '*.mp3' |sort`)
if [ "${#ARCHIVOS[@]}" -ge "2" ]
then
echo "Hay mas de dos archivos"
ARCHIVOSFF=""
for ARCHIVO in "${ARCHIVOS[@]}"
do
ARCHIVOSFF="$ARCHIVOSFF $ARCHIVO"
done
UNION=(`cat $ARCHIVOSFF > $DIRDEST$DESTINO$SPLIT.mp3`)
echo "se unieron los archivos $ARCHIVOSFF, en $DIRDEST$DESTINO$SPLIT.mp3"
PURGA=(`rm $ARCHIVOSFF`)
PURGA=(`rm $DIRTEMP$DIRECTORIO/*.lock`)
PURGA=(`rm -d $DIRTEMP$DIRECTORIO`)
else
echo "no hay mas de dos archivos"
MUEVO=(`mv $ARCHIVOS $DIRDEST$DESTINO$SPLIT.mp3`)
PURGA=(`rm $DIRTEMP$DIRECTORIO/*.lock`)
PURGA=(`rm -d $DIRTEMP$DIRECTORIO`)
fi
exit 0
done
fi
exit 0
/usr/local/bin/gbd-env
#!/bin/bash
env
export DISPLAY=:0
# Directorio de Destino : formato /folder/to/share/
DIRDEST="/home/encoder/audios/"
# Directorio Temporal
DIRTEMP="/home/encoder/tmp/"
# Tiempo grabacion en segundos
TEMPREC="1800"
# Duracion en segundos
DURACION="30m"