#!/bin/bash # put the following (not out-commented) into your crontab: #55 5 21 3 * /dir/radiodump.sh muelheim mplayer /dir/dumps >> /dir/radiomuelheim_mplayer.log & #55 5 21 3 * /dir/radiodump.sh muelheim vlc /dir/dumps >> /dir/radiomuelheim_vlc.log & #55 5 21 3 * /dir/radiodump.sh oberhausen mplayer /dir/dumps >> /dir/radiooberhausen_mplayer.log & #55 5 21 3 * /dir/radiodump.sh oberhausen vlc /dir/dumps >> /dir/radiooberhausen_vlc.log & #5 10 21 3 * kill `cat /dir/radiomuelheim_mplayer.pid` #5 10 21 3 * kill `cat /dir/radiomuelheim_vlc.pid` #5 10 21 3 * kill `cat /dir/radiooberhausen_mplayer.pid` #5 10 21 3 * kill `cat /dir/radiooberhausen_vlc.pid` if [[ $# -ne 3 ]]; then echo -e "wrong number of arguments.\n" \ "Usage: $0 \n" \ "Example: $0 oberhausen mplayer ." >&2 exit 1 fi if [[ $1 != "muelheim" && $1 != "oberhausen" ]]; then echo "no known radio station given... exiting now." >&2 exit 1 fi if [[ $2 == "vlc" ]]; then cmd="cvlc %s --sout=file://%s vlc://quit" elif [[ $2 == "mplayer" ]]; then cmd="mplayer -dumpstream %s -dumpfile %s" else echo "no dump method given... exiting now." >&2 exit 1 fi if [[ $3 == "" ]]; then echo "no dump directory given... exiting now." >&2 exit 1 fi echo "current directory is $(pwd)..." pidfile="radio$1_$2.pid" echo "my pid is $$. logging to pidfile..." echo $$ > $pidfile stationurl="http://edge.live.mp3.mdn.newmedia.nacamar.net/radio$1/livestream.mp3" quit=0 trap "quit=1" SIGTERM SIGHUP SIGINT while [ $quit -ne 1 ]; do clocknow=`date +%Y%m%d%H%M%S` outfile="$3/$1_$2_$clocknow.mp3" echo "dump to $outfile..." dumpcmd=`printf "$cmd" $stationurl $outfile` echo "\$ ${dumpcmd}" eval ${dumpcmd} & pid=$! wait [ $quit -ne 1 ] && sleep 1 done echo "kill last process $pid..." kill $pid echo "removing pidfile..." rm $pidfile echo "exiting..."