"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

shell script hilfe

Kamsi 06.03.2014 - 18:02 2230 7
Posts

Kamsi

Big d00d
Registered: Feb 2002
Location: St. Valentin
Posts: 262
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

Vinyl-Sammler
Avatar
Registered: Jun 2002
Location: wean
Posts: 11546
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
Bearbeitet von davebastard am 06.03.2014, 18:19

issue

Rock and Stone, brother!
Avatar
Registered: Feb 2003
Location: Linz
Posts: 3603
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
Bearbeitet von issue am 06.03.2014, 18:22

Kamsi

Big d00d
Registered: Feb 2002
Location: St. Valentin
Posts: 262
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

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11904
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

Super Moderator
Super Moderator
Avatar
Registered: Aug 2000
Location: achse des bösen
Posts: 11120
alternativ könntest du auch motion verwenden => http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome

issue

Rock and Stone, brother!
Avatar
Registered: Feb 2003
Location: Linz
Posts: 3603
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

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3682
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
Bearbeitet von GrandAdmiralThrawn am 07.03.2014, 16:00 (Bild nachgereicht)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz