- #!/bin/bash
- ##
- ## Requisitos:
- ## sudo apt-get install fswebcam mailutils curl
- ##
- ## Script para tomar fotos de la webcam y subirlas por ftp
- ## Gustavo Azambuja - Linux User: 275813
- ## http://twitter.com/gazambuja
- ##
- ##
- ## Elije el dispositivo (y el brillo asociado) por DEFecto y el ALTernativo:
- DEVICE_DEF="/dev/video1"
- DEVICE_ALT="/dev/video0"
- BRIGHT_DEF="10%"
- BRIGHT_ALT="50%"
- ## Otros datos necesarios:
- EMAIL="miemail@gmail.com"
- FTPAUT="user:pass"
- FTPHOST="miftp.com.uy"
- if [ -n $USERNAME ]; then
- USERNAME=$USER
- fi
- FUENTE="/usr/share/fonts/truetype/freefont/FreeSans.ttf"
- FECHA=`date +%d-%m-%Y`
- DIA=`date +%d`
- ANO=`date +%y`
- DAY5=`date --date='5 days ago' '+%d-%m-%Y'`
- AUTOSTART="/home/$USERNAME/.config/autostart/photos.desktop"
- ##### Funciones #####
- function device {
- if [ -c $DEVICE_DEF ]; then
- DEVICE=$DEVICE_DEF
- BRIGHT=$BRIGHT_DEF
- else
- if [ -c $DEVICE_ALT ]; then
- DEVICE=$DEVICE_ALT
- BRIGHT=$BRIGHT_ALT
- else
- echo "Dispositivo no encontrado"
- fi
- fi
- }
- function mailme {
- SUBJECT="Fotos diarias para $USERNAME"
- # Email text/message
- EMAILMESSAGE="/tmp/emailmessage.txt"
- echo "El script con las fotos esta funcionando, verificar en ftp://$FTPHOST/$USERNAME/ si los archivos estan correctos."> $EMAILMESSAGE
- # send an email using /bin/mail
- mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE
- rm /tmp/emailmessage.txt
- }
- function sacarfoto {
- fswebcam --device $DEVICE --set brightness=$BRIGHT --resolution 640x480 --top-banner --skip 5 --title "$USERNAME en $HOSTNAME" --timestamp "%Y-%m-%d %H:%M (%Z)" --jpeg 95 --font $FUENTE --save /tmp/photo-$FECHA.jpg
- curl -T /tmp/photo-$FECHA.jpg -u $FTPAUT ftp://$FTPHOST/$USERNAME/$ANO/$FECHA.jpg &> /tmp/photo-$FECHA.log
- rm /tmp/photo-$DAY5.jpg
- }
- ##### Main #####
- ## Solo se ejecuta el script la primera vez que se hace login en cada dia:
- if [ ! -f /tmp/photo-$FECHA.jpg ]; then
- device
- sacarfoto
- fi
- ## El 1 y el 15 de cada mes, enviamos un mail al usuario para que sepa que el script sigue funcionando:
- if [ $DIA = "01" ] || [ $DIA = "15" ]; then
- mailme
- fi
- ## Si no esta en el autorun del escritorio, creo el acceso directo:
- if [ ! -f $AUTOSTART ]; then
- echo "[Desktop Entry]" > $AUTOSTART
- echo "Name=Photos" >> $AUTOSTART
- echo "Exec=/home/$USERNAME/.photos.sh" >> $AUTOSTART
- echo "StartupNotify=false" >> $AUTOSTART
- echo "Terminal=false" >> $AUTOSTART
- echo "Type=Application" >> $AUTOSTART
- fi
