Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.
OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.
Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.
OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.
Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.
¿Como hago que un script se vuelva a ejecutar si falla?
Enviado por Raúl Oliveira el 7 Mayo, 2010 - 14:20
Digamos que coloco esta orden en el planificador de tareas: sh /home/haydita/AyD/Extras/Script/grabardelplata.sh
Puede pasar, y pasa, que se corte; cómo puedo reinterar la orden sin sobreponerlas, es decir, que sean secuenciales, que no se cumpla la reinteración mientras funcione la primera.
No sé si logré explicarlo.
» Enlace permanente»
- Entra a tu cuenta o crea una para poder comentar.
Usuario
# 102941 Usa condicionales
Yo lo haría de dos formas, aunque las dos se basan en lo mismo. Pero bueno, depende que estás buscando precisamente.
Para 1, sería algo así.
Para 2. Necesitas un fichero adicional: scriptcontrol.sh
P.D: Volviendo a leer tu pregunta, me quedo con la opción dos. Pero habría que hacer algo más, me queda la sensación que no cubre todo el problema XD.
Nos cuentas.
Saludos!!!
Por un mundo suficiente y el tiempo.
Usuario
# 102956 Voy probar
Raúl (arrobarrob)
Lo explico difícil, no sea que lo entiendan.
Usuario
# 103421 volver a ejecutar script
El problema concreto es éste: El script graba un programa desde algún planificador si no se corta la conexión. Si se corta, pretendo hacer que reinicie como Programa=delplata2 para no sobrescribir, si es posible con un sleep 7 entre medio. Estoy muy loco?
#!/bin/bash
emisora=mms://delplata.telecomdatacenter.com.ar/delplata
minutos=190
programa=delplata1
dir=/home/haydita
nombre=${dir}/${programa}_`date +%d-%m-%y`.mp3
[ -e /tmp/radio_pipe ] && rm /tmp/radio_pipe
mkfifo /tmp/radio_pipe
lame /tmp/radio_pipe $nombre 2>/dev/null 1>/dev/null &
mplayer $emisora -cache 32 -ao pcm:file=/tmp/radio_pipe 2>/dev/null </dev/null &
sleep $(($minutos * 60))
kill %2
rm /tmp/radio_pipe
Raúl (arrobarrob)
Lo explico difícil, no sea que lo entiendan.
BOFH
# 103432 Otro enfoque
Crea un segundo script que verifique cada N tiempo si aun esta corriendo el otro script y si no esta ejecutandose que lo vuelva a ejecutar.
¿Quien es Jesucristo?
Usuario
# 103580 Qué expresión o sentencia uso?
Bien, pero...
Decime un poquito más, una orientación para investigar y experimentar.
Qué expresión, sentencia o instrucción uso?
Raúl (arrobarrob)
Lo explico difícil, no sea que lo entiendan.
BOFH
# 103581 Humm
Se me ocurre que:
te puede servir.
¿Quien es Jesucristo?
Usuario
# 103972 Watch
Con watch armado o con watch comando logro saber si el script se detuvo, o sobrescribo lo ya grabado.
El problema es que si grabo un programa hasta un punto donde se corta, debería reactivar el script dándole otro nombre a la grabación posterior para no perder lo anterior.
Raúl (arrobarrob)
Lo explico difícil, no sea que lo entiendan.
BOFH
# 103975 Veamos
Lo que debes hacer es que el nombre del archivo incluya o bien la fecha y tiempo de cuando se inicio o quizas un numero de $ramdom para que no se sobre escriba.
¿Quien es Jesucristo?
Usuario
# 103982 Rumbeando
Gracias. Si. La hora me permite que los archivos no se sobrescriban.
Ahora bien: Cómo ordeno que se reinicie el script después que watch detecta que no funciona?.
Disculpame. Es como pedirte que lo hagas vos, pero....
Raúl (arrobarrob)
Lo explico difícil, no sea que lo entiendan.
Usuario
# 104323 No puedo con watch
El script que tengo es el que sigue, con "date +%d-%m_"%H:%M"`.mp3" logro que no se sobre escriban; hasta ahí perfecto y claro. El problema es que no logro reiniciarlo o iniciar uno nuevo cuando el primero se detiene por falta de señal porque el script no se cierra, simplemente se queda clavado. Digamos que pretendo grabar un programa a las 5:00 am para escucharlo después de levantarme. No pude con while ni con watch.
#!/bin/bash
emisora=mms://delplata.telecomdatacenter.com.ar/delplata
minutos=190
programa=delplata
dir=/home/haydita
nombre=${dir}/${programa}_`date +%d-%m_"%H:%M"`.mp3
[ -e /tmp/radio_pipe ] && rm /tmp/radio_pipe
mkfifo /tmp/radio_pipe
lame /tmp/radio_pipe $nombre 2>/dev/null 1>/dev/null &
mplayer $emisora -cache 32 -ao pcm:file=/tmp/radio_pipe 2>/dev/null </dev/null &
sleep $(($minutos * 60))
kill %2
rm /tmp/radio_pipe
Raúl (arrobarrob)
Lo explico difícil, no sea que lo entiendan.
BOFH
# 104324 Prueba asi
Digamos que tu script que graba el stream se llama captura.sh:
Captura.sh debe estar en el path de este script o puedes poner el path absoluto.
¿Quien es Jesucristo?
Usuario
# 104444 Perdón por la torpeza.
No hay caso. No puedo.
Digamos que ejecuto "Liliana.sh" para que me grabe la audición de Foressi desde las 6 am con otro script llamado grabardelplata.sh. Ambos están en un directorio con path absoluto.
En primer término está el script con until, en segundo término está lo que sucede si no hay señal a la hora de inicio, y, por último está lo que sucede cuando comienza a grabar y luego se corta la señal.
Significa que no puedo revisar o reinicial cada 21" como pretendo.
Dónde fallo?.
#!/bin/bash
until /home/haydita/AyD/Extras/Script/grabardelplata.sh; do
echo "Liliana.sh terminó su ejecucion con codigo: $?. reiniciando..." >&2
sleep 21
done
[haydita@localhost ~]$ sh Liliana.sh
MPlayer SVN-1.rc4.0.r31086.3plf2010.0-4.4.1 (C) 2000-2010 MPlayer Team
Playing mms://delplata.telecomdatacenter.com.ar/delplata.
STREAM_ASF, URL: mms://delplata.telecomdatacenter.com.ar/delplata
Resolving delplata.telecomdatacenter.com.ar for AF_INET...
Resolving delplata.telecomdatacenter.com.ar for AF_INET...
Connecting to server delplata.telecomdatacenter.com.ar[200.82.126.70]: 80...
Cache size set to 32 KBytes
Cache fill: 0.40% (132 bytes)
Exiting... (End of file)
[haydita@localhost ~]$ sh Liliana.sh
MPlayer SVN-1.rc4.0.r31086.3plf2010.0-4.4.1 (C) 2000-2010 MPlayer Team
Playing mms://delplata.telecomdatacenter.com.ar/delplata.
STREAM_ASF, URL: mms://delplata.telecomdatacenter.com.ar/delplata
Resolving delplata.telecomdatacenter.com.ar for AF_INET...
Connecting to server delplata.telecomdatacenter.com.ar[200.82.126.70]: 1755...
Resolving delplata.telecomdatacenter.com.ar for AF_INET...
Connecting to server delplata.telecomdatacenter.com.ar[200.82.126.70]: 80...
Resolving delplata.telecomdatacenter.com.ar for AF_INET...
Connecting to server delplata.telecomdatacenter.com.ar[200.82.126.70]: 80...
Cache size set to 32 KBytes
Cache fill: 0.00% (0 bytes)
ASF file format detected.
[asfheader] Audio stream found, -aid 1
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 16000 Hz, 2 ch, s16le, 16.0 kbit/3.12% (ratio: 2000->64000)
Selected audio codec: [ffwmav2] afm: ffmpeg (DivX audio v2 (FFmpeg))
==========================================================================
[AO PCM] File: /tmp/radio_pipe (WAVE)
PCM: Samplerate: 16000Hz Channels: Stereo Format s16le
[AO PCM] Info: Faster dumping is achieved with -vc null -vo null -ao pcm:fast
[AO PCM] Info: To write WAVE files use -ao pcm:waveheader (default).
AO: [pcm] 16000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:1190327.0 (330:38:47.0) of 1844674428928.0 (512409563:35:28.0) 124.9% 0%
Exiting... (End of file)
Raúl (arrobarrob)
Lo explico difícil, no sea que lo entiendan.
BOFH
# 104454 Humm
No entendí tu pregunta.
¿Quien es Jesucristo?
Usuario
# 104476 En otros términos
Tengo un script para grabar una audición estando yo ausente. Funciona muy bien:
#!/bin/bash
emisora=mms://delplata.telecomdatacenter.com.ar/delplata
minutos=190
programa=delplata
dir=/home/haydita
nombre=${dir}/${programa}_`date +%d-%m_"%H:%M"`.mp3
[ -e /tmp/radio_pipe ] && rm /tmp/radio_pipe
mkfifo /tmp/radio_pipe
lame /tmp/radio_pipe $nombre 2>/dev/null 1>/dev/null &
mplayer $emisora -cache 32 -ao pcm:file=/tmp/radio_pipe 2>/dev/null </dev/null &
sleep $(($minutos * 60))
kill %2
rm /tmp/radio_pipe
Resulta que si se corta la señal o la emisión, me quedo sin la grabación. Entonces intenté un segundo script para controlar el funcionamiento del original y reiniciarlo en caso de corte.Probé con watch y otras alternativas y no lo logré. ahora tampoco. El hecho de que el nombre de la grabación tiene adicionada la hora impide sobre escribirlo.
La idea es reiniciar la grabación automáticamente.
Espero que se entienda. No tengo problema de explicarlo de otros modos.
Gracias por atender.
Raúl (arrobarrob)
Lo explico difícil, no sea que lo entiendan.
# 102942 Pues dependerá de lo que haga
Pues dependerá de lo que haga el script.
Lo que te puedo decir es que hay que validar los códigos de salida de la operación que te interese ( $? ) y si no es exitosa (normalmente $? = 0) hacer que se ejecute de nuevo la operación.
Hay que tener cuida, por ejemplo si diriges la salida de un comando a un archivo en ves de usar > usa >>
Más consejos dependen del código del script
¿lo usas?, ¿la lees?, ¿las conoces?,Herramienta útil