From 4ee9917dc125595e996296652d5ebc8bb8b8f30e Mon Sep 17 00:00:00 2001 From: Samuel ORTION Date: Thu, 30 Jun 2022 18:28:59 +0200 Subject: [PATCH] First run attempt using this configuration --- .gitignore | 2 ++ Makefile | 16 ++++++++++ README.md | 8 ++++- conf/nbmrec.service | 11 +++++++ conf/nbmrec.timer | 10 ++++++ src/rec.sh | 74 ++++++++++++++++++++++++++++++++++----------- 6 files changed, 102 insertions(+), 19 deletions(-) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 conf/nbmrec.service create mode 100644 conf/nbmrec.timer diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..88bb11a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +.venv/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d20c653 --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +all: run + +run: + ./rec.sh + +install: + sudo cp ./src/rec.sh /usr/local/bin/rec.sh + sudo cp ./conf/nbmrec.service /etc/systemd/system/nbmrec.service + sudo cp ./conf/nbmrec.timer /etc/systemd/system/nbmrec.timer + sudo systemctl daemon-reload + sudo systemctl enable nbmrec.timer + +uninstall: + sudo rm -rf /usr/local/bin/rec.sh + sudo rm -rf /etc/systemd/system/nbmrec.service /etc/systemd/system/nbmrec.timer + sudo systemctl daemon-reload diff --git a/README.md b/README.md index a10ff0e..872953b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ # NBMrec -Daemon recorder for nocturnal bird migration \ No newline at end of file +Daemon recorder for nocturnal bird migration + +## Reference + +- [audio recording using python](https://realpython.com/playing-and-recording-sound-python/) + +- [audio recording from command line](https://superuser.com/questions/1570333/how-can-i-record-audio-output-from-command-line-in-linux) diff --git a/conf/nbmrec.service b/conf/nbmrec.service new file mode 100644 index 0000000..3cbaddf --- /dev/null +++ b/conf/nbmrec.service @@ -0,0 +1,11 @@ +[Unit] +Description=NBMrec daemon nocturnal bird migration service + +[Service] +Type=oneshot +User=1000 +ExecStart=/usr/local/bin/nmbrec.sh -d night +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/conf/nbmrec.timer b/conf/nbmrec.timer new file mode 100644 index 0000000..2e453a7 --- /dev/null +++ b/conf/nbmrec.timer @@ -0,0 +1,10 @@ +[Unit] +Description=Record bird migration every night + +[Timer] +OnCalendar=*-*-* 22:00 +Unit=nbmrec.service + +[Install] +WantedBy=basic.target + diff --git a/src/rec.sh b/src/rec.sh index 55137a5..466ffee 100755 --- a/src/rec.sh +++ b/src/rec.sh @@ -8,26 +8,64 @@ RECORD_DIR="/mnt/DATA/media/records" RECORD_DATE=$(date +"%Y-%m-%d") RECORD_FILENAME=$(date +"%Y%m%d_%H%M%S") RECORD_FILEPATH="${RECORD_DIR}/${RECORD_DATE}/${RECORD_FILENAME}.wav"  -RECORD_DURATION=$1 +RECORD_DURATION=60 + +usage() { + echo "Usage: $0 [ -d ] [ -f ]" + echo " -d : duration of the recording in seconds or 'night' for all night recording" + echo " -f : filename of the recording" + echo " -h : display this help" + echo " -v : switch to verbose mode" +} + +# Get command line options +while getopts ":hd:f:" opt; do + case $opt in + h) + usage + ;; + d) + RECORD_DURATION=$OPTARG + if [ "$RECORD_DURATION" == "night" ]; then + RECORD_DURATION=32400 + fi + ;; + f) + RECORD_FILEPATH=$OPTARG + ;; + \?) + echo "Invalid option: -$OPTARG" >&2 + exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument." >&2 + exit 1 + ;; + esac +done verbose=false -# Create output folder -if $verbose -then - echo "Creating record output folder" -fi -mkdir -p "$RECORD_DIR/$RECORD_DATE/" +main() { + # Create output folder + if $verbose + then + echo "Creating record output folder" + fi + mkdir -p "$RECORD_DIR/$RECORD_DATE/" -# Perform recording -if $verbose -then - echo "Recording $RECORD_FILENAME" -fi -rec -b 16 -r 48000 -c 1 -t wav $RECORD_FILEPATH trim 0 $RECORD_DURATION + # Perform recording + if $verbose + then + echo "Recording $RECORD_FILENAME" + fi + rec -b 16 -r 48000 -c 1 -t wav $RECORD_FILEPATH trim 0 $RECORD_DURATION -if $verbose -then - echo "Done" -fi -exit 0 + if $verbose + then + echo "Done" + fi +} + +main +exit 0 \ No newline at end of file