Ubuntu 패키지 설치:

sudo apt-get install rtmpdump libav-tools

vim ebs-record.sh

#!/bin/bash
#RADIO_ADDR="rtmp://ebsandroid.ebs.co.kr/fmradiofamilypc/familypc1m"
RADIO_ADDR="rtmp://ebsandroid.ebs.co.kr/iradio/iradiolive_m4a"
RADIO_NAME="ebs_radio"

PROGRAM_NAME=$1
RECORD_MINS=$(($2 * 60))
DEST_DIR=$3

REC_DATE=`date +%Y%m%d-%H%M`
TEMP_FLV=`mktemp -u`

MP3_FILE_NAME=$PROGRAM_NAME"_"$REC_DATE.mp3

rtmpdump -r $RADIO_ADDR -B $RECORD_MINS -o $TEMP_FLV
avconv -i $TEMP_FLV -ac 2 -ab 128 -vn -y  -f mp3 $MP3_FILE_NAME

rm $TEMP_FLV

mkdir -p $DEST_DIR
mv $MP3_FILE_NAME $DEST_DIR

실행 모드로 전환:

chmod a+x esb-radio.sh

실행 테스트(1분 녹화):

~/ebs-radio/ebs-record.sh test 1 ~/ebs-radio/english

crontab 으로 녹음 스케쥴 설정:

월요일 ~ 토요일 사이에 해당 방송(7시 20분, Easy English)을 20분 동안 녹음하여
~/ebs-radio/Easy-English/ 폴더에 Easy-English_yyymmdd-hhMM.mp3 파일로 저장하는 스케쥴 설정

crontab -e

20 6 * * 1-6 ~/ebs-radio/ebs-record.sh Easy-Writing 20 ~/ebs-radio/Easy-Writing
20 7 * * 1-6 ~/ebs-radio/ebs-record.sh Easy-English 20 ~/ebs-radio/Easy-English
40 7 * * 1-6 ~/ebs-radio/ebs-record.sh Power-English 20 ~/ebs-radio/Power-English

분(0 - 59) 시간(0 - 23) 날짜(1 - 31) 달(1 - 12) 요일(0 - 6)[0=일요일] 실행명령(ebs-record.sh) 방송제목(Easy-Writing) 녹음시간(20)분 저장폴더(~/ebs-radio/Easy-Writing)

* 는 각 항목의 괄호 안의 모든 값을 의미하여,
날짜(1 - 31) 항목에 *가 있으면 1일 ~ 31일 까지 매일 실행되며,
달(1 - 12) 항목에 *가 있으면, 1월 ~ 12월 까지 매달 실행된다.
요일(0 - 6) 항목에 1-6 값을 설정하면, 월요일(1)부터 토요일(6)까지 매주 실행된다.

예약 녹음 시간:
– 6시 20분, 월 ~ 토: Easy-Writing (20분 동안 녹음) –> 6시 20분에 녹음을 시작해 Easy-Writing 이란 제목으로 20분 동안만 녹음하고 종료
– 7시 20분, 월 ~ 토: Easy-English (20분 동안 녹음)
– 7시 40분, 월 ~ 토: Power-English (20분 동안 녹음)

Crontab – Quick Reference

Crontab syntax :
A crontab file has five fields for specifying day , date and time followed by the command to be run at that interval.

*    *    *    *    *        command to be executed
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- day of week (0 - 6) (Sunday=0)
|    |    |    +------- month (1 - 12)
|    |    +--------- day of month (1 - 31)
|    +----------- hour (0 - 23)
+------------- min (0 - 59)

* in the value field above means all legal values as in braces for that column.
The value column can have a * or a list of elements separated by commas.
An element is either a number in the ranges shown above or two numbers in the range separated by a hyphen (meaning an inclusive range).

Notes
A). Repeat pattern like /2 for every 2 minutes or /10 for every 10 minutes is not supported by all operating systems.
If you try to use it and crontab complains it is probably not supported.

B). The specification of days can be made in two fields: month day(1 – 31) and weekday(0 – 6, sunday=0). If both are specified in an entry, they are cumulative meaning both of the entries will get executed .

Leave a Reply