===== Reader =====
To seperate data to daily files I use 3 scripts which will be executed via cronjobs.
==== Script 1 - Starter ====
This will execute socat with daily modified parameters. The logfile parameter will have the date of "today". It starts at 12:01 am everyday.
#!/bin/bash
DATE=`date +%d_%m_%Y`
FILETYPE=.log
if [ -f "/media/weatherlog/$DATE$FILETYPE" ]; then
echo "" > /dev/null
else
echo "Date;Time;Column1;Column2;Column3;Column4;Column5;Column6;Column7;Column8;Column9;Column10;Column11;Column12;Column13;Column14;Column15;Column16;Column17;Column18;Column19;Column20;Column21;Column22;Column23;Column24;Column25" > /media/weatherlog/$DATE$FILETYPE
fi
nohup /wde/wde_reader.sh /wde/wde_reader.out &
echo $! >/wde/wde_reader.pid
==== Script 2 - Reader ====
This script will write 1 file with a single outputline, started with the date and time.
#!/bin/bash
DATE=`date +%d_%m_%Y`
FILETYPE=.log
FILE=/media/weatherlog/$DATE$FILETYPE
SOCAT=/usr/bin/socat
DEV=/dev/ttyUSB0
BAUD=\,b9600
CMD="$SOCAT $DEV$BAUD STDOUT"
while read -r line
do
echo "$(date +'%d.%m.%Y;%H:%M:%S;')$line">> $FILE
done < <( $CMD )
==== Script 3 - Killer ====
This script is killing socat everyday at 11:59 pm. Remember, it will start again at 12:01 am with a new date.
#!/bin/bash
sudo kill -9 `cat /wde/wde_reader.pid`
sudo rm /wde/wde_reader.pid
==== Output ====
There will be a new logfile with another date everyday.
Examplefile 06_05_2015.log:
06.05.2015;16:00:26;$1;1;;34,8;71,1;;;33,1;;;;33;;;;39;;;;;;;;;0
06.05.2015;16:02:06;$1;1;;34,8;71,1;;;33,1;;;;33;;;;39;;;;;;;;;0
06.05.2015;16:02:29;$1;1;;34,8;71,0;;;33,1;;;;33;;;;39;;;;;;;;;0
06.05.2015;16:03:24;$1;1;;34,8;71,0;;;33,1;;;;33;;;;39;;;;;;;;;0
06.05.2015;16:04:58;$1;1;;34,8;71,0;;;33,0;;;;33;;;;36;;;;;;;;;0
06.05.2015;16:05:24;$1;1;;34,8;71,0;;;33,0;;;;33;;;;36;;;;;;;;;0
06.05.2015;16:06:22;$1;1;;34,8;71,0;;;33,0;;;;33;;;;36;;;;;;;;;0
\\
~~DISCUSSION:closed~~