shell script hilfe

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/shell-script-hilfe_238167/page_1 - zur Vollversion wechseln!


Kamsi schrieb am 06.03.2014 um 18:02

ich benötige eure hilfe für ein shell script, und zwar habe ich vor einen raspberry pi mit kamera als baustellenkamera zum hausbau zu verwenden.
er soll von Mo - Sa von 6:30 bis sagen wir mal 21 uhr alle 10 sekunden ein foto schießen und dieses in ein verzeichnis abspeichern. die datei soll dann YYYYMMDDhhmmss.jpg heißen.

soviel habe ich mal selber zusammengebracht:

Code: SHELL
#!/bin/bash

filename=$(date +"%d%m%Y_%H%&M%S").jpg
SAVEDIR=/home/pi/images 

/opt/vc/bin/raspistill -o /$SAVEDIR/$filename 

done;


davebastard schrieb am 06.03.2014 um 18:16

Code: SHELL
#!/bin/bash


SAVEDIR=/home/pi/images 

while [ true ]
do
   filename=$(date +"%d%m%Y_%H%&M%S").jpg
   /opt/vc/bin/raspistill -o $SAVEDIR/$filename 
   sleep 10
done

geht sicher schöner aber es sollte funktionieren

edit: ja ein slash zuviel war

EDIT2:fehler ausgebessert


issue schrieb am 06.03.2014 um 18:17

Du hast einen / zuviel vor $SAVEDIR
Wenn dir ein Foto jede Minute genuegt, wuerd ich einen cronjob anlegen.
Sonst wirst sowas wie

Code:
while true; do ./deinscript.sh; sleep 10; done
brauchen

edit: watch -n 10 deinscript.sh koennt auch klappen


Kamsi schrieb am 06.03.2014 um 19:45

danke für die hilfe :)

ich hab mir jetzt das hier zusammen gestöpselt:

Code: SHELL
#!/bin/sh

## Einstellungen:

## Speicherort für die Bilder
path="/home/pi/images"

## Höhe (max. 1944)
height="1944"

## Breite des Bildes (max. 2592)
width="2592"

## Qualität (0-100)
quality="100"

## Exposure: off,auto,night,nightpreview,backlight,spotlight,sports,snow,beach,verylong,fixedfps,antishake,fireworks
exposure="auto"

## AWB: off,auto,sun,cloud,shade,tungsten,fluorescent,incandescent,flash,horizon
awb="auto"

## Anzahl der Bilder
picture_amount="1000"

## Wartezeit zwischen der Aufnahme (in ms bsp.: 15000 = 15 sekunden)
wait_time="10000"

## Bild drehen (0-359)
rotate="0"

################################################################################################################################


number="0"
while [ $number -lt $picture_amount ]
do 
rest=`expr $picture_amount - $number`
filename=$(date +"%d%m%Y_%H%M%S")
raspistill -o $path"/"$filename".jpg" -h $height -w $width -q $quality -t $wait_time -ex $exposure -awb $awb -rot $rotate
number=`expr $number + 1`
done

mit dem script kann man die optionen von raspistill einbinden.


COLOSSUS schrieb am 06.03.2014 um 19:48

Man kann unter GNU/Linux ruhig mehrere Slashes ("/") als Path Separator verwenden, die glibc (denke ich - es ist jedenfalls eine Library-Funktion die verantwortlich zeichnet, aber ich will jetzt nich im Source graben, um das zu bestaetigen oder zu widerlegen) kuemmert sich darum, dass "das Richtige rauskommt":

Code:
colo@zealot:~ $ strace -e trace=chdir bash -c "cd ///usr////local///"
chdir("/usr/local")                     = 0

Zum Script:

$() statt `` verwenden; mehr/richtig Quoten (""), [[ ]] statt [ ] verwenden.


spunz schrieb am 06.03.2014 um 19:49

alternativ könntest du auch motion verwenden => http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome


issue schrieb am 06.03.2014 um 19:54

Zitat von COLOSSUS
Man kann unter GNU/Linux ruhig mehrere Slashes ("/") als Path Separator verwenden, die glibc (denke ich - es ist jedenfalls eine Library-Funktion die verantwortlich zeichnet, aber ich will jetzt nich im Source graben, um das zu bestaetigen oder zu widerlegen) kuemmert sich darum, dass "das Richtige rauskommt":

Code:
colo@zealot:~ $ strace -e trace=chdir bash -c "cd ///usr////local///"
chdir("/usr/local")                     = 0

Zum Script:

$() statt `` verwenden; mehr/richtig Quoten (""), [[ ]] statt [ ] verwenden.

ad Slashes: thx, was gelernt :)


GrandAdmiralThrawn schrieb am 07.03.2014 um 15:54

Zitat von spunz
alternativ könntest du auch motion verwenden => http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome
Ich hatte Mal einen Fall, wo ich etwas per Cam für ~8-9 Monate überwacht habe mit einem fast gleichen Anforderungsprofil, ich hab dann auch motion verwendet, das ist super, und kann sogar Uhrzeiten ins Bild rendern und dergleichen vieles mehr.. z.B. FTP Upload mit einem CLI ftp+ssl Client verknüpft.

Edit: Hier ein Samplepic, das ich online belassen habe nach Ende der Aktion, da sieht man, wie man bei motion z.B. Text/Daten reinrendern lassen kann:

x264-final_193162.jpg




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026