Seriovy buffer z linuxu

Phill PedroPhill na seznam.cz
Středa Říjen 29 18:55:00 CET 2003


Diky,
to je dobre ze to funguje takhle jednoduse. Problem je, ze potrebuju ty data
on-line. Tzn. kdyz se uskutecni hovor, tak nemuzu cekat treba 5min, nez by to
cron poslal. Takze to budu muset resit asi sambou(nejakej jinej napad jak predat
soubor stanici s Win on-line? Podotykam ze to potrebuju tak kazdou minutu a soft
je hloupej).
Dale bych delal zalohu, napr. kazdej mesic by se soubor prejmenoval podle
datumu, ale to uz cron zvladne snadno.
Kdybych nasel jinej zpusob predavani tech dat, mozna by se dala pouzit i nejaka
minidistribuce na disketku. Mini se sambou jsem nenasel :-(

Dekuji za skriptik, prostuduju.

-Phill

>   Používám cat do souboru, jehož jméno se mění podle času. Soubor je
> přilinkován do souboru známého jména, který se při startu skriptu odešle
> mailem (při spuštění skriptu se odešle předchozí soubor). Ze schránky si
> ho již vyzvedává náš programátor, který s ním něco dělá.
>
>   V inittabu je napsaná cesta k následujícímu skriptíku, jednou za den
> se zabije, znovu obživne (inittab) a odešle stará data.
>
> V. Kaplan
>

> #!/bin/bash
>
>
> RECIPIENT=veros-XXXX na tac.cz # kam s tím nepořádkem
> BASEDIR=/var/data/telefon
> PIDS=$BASEDIR/.pids # moje PID (příp.předchůdce)
> CURRENT=$BASEDIR/.current # aktuální plněný soubor
> START=$BASEDIR/.start # začátek času
> PATH=/bin/:/usr/bin
> MAILFILE=$BASEDIR/.tmp # temp file
> FILENOW=$BASEDIR/`date +%Y-%m/%Y-%m-%d-%H:%M`-$RANDOM
>
> cd $BASEDIR
> mkdir -p `dirname $FILENOW`
>
> NOW="$( LC_ALL=cs_CZ date '+%d.%B %Y, %H:%M:%S')"
>
> kill `cat $PIDS` &> /dev/null
>
> # existují-li už nějaká data, odešleme je. Jinak ne neodešleme...
>
> if [ `wc -c < $CURRENT` -ne 0 ]; then
>         > $MAILFILE
>         echo Vypis z ustredny >> $MAILFILE
>         echo =-=-=-=-=-=-=-=- >> $MAILFILE
>         echo -n 'Od: ' >> $MAILFILE
>         cat $START >> $MAILFILE
>         echo -n Do: $NOW >> $MAILFILE
>         echo >> $MAILFILE
>         echo >> $MAILFILE
>         echo '---BEGIN PHONE LISTING---' >> $MAILFILE
>         cat $CURRENT | tr -d '\r' >> $MAILFILE
>         echo '---END PHONE LISTING---' >> $MAILFILE
>         echo >> $MAILFILE
>
>         echo $NOW > $START
>
>         if [ -s $CURRENT ]; then
>                 mail $RECIPIENT -s "Vypis z ustredny $NOW" < $MAILFILE
>         fi
>
>         touch $FILENOW
>         ln -sf $FILENOW $CURRENT
> fi
>
> stty 1200 raw < /dev/ttyS0
> echo $$ > $PIDS
> exec dd if=/dev/ttyS0 of=$CURRENT bs=1 2> /dev/null




Další informace o konferenci Linux