[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cron: regelmäßig probieren, nach Erfolg eine Pause einlegen



Michael Schuerig <michael.lists@schuerig.de> (Sa 30 Mär 2013 19:07:22 CET):
> 
> Ich habe gerade angefangen, ein Skript zu schreiben, das automatisch 
> Fotos von meinem Handy (Android mit SSHDroid) auf den Computer 
> herunterladen soll.
> 
> Das Skript soll regelmäßig prüfen, ob das Handy erreichbar ist. Ist das 
> der Fall, soll es seine Arbeit tun und anschliessend 12 Stunden warten.
> 
> Diese Zeitsteuerung kann ich natürlich im Skript selbst lösen oder nur 
> dafür ein eigenes schreiben. Wenn es aber schon eine passende Lösung 
> gibt, dann würde ich gerne die benutzen. In der crontab könnte das so 
> aussehen
> 
> 15 * * * * try-and-pause --pause=12h download-photos

Ungetestet.

~~~.sh
#! /bin/bash -e
# try-and-pause

LASTRUN=$HOME/.$(basename $0).lastrun
PAUSE=12        # das mit dem "h" ueberlasse ich mal zum Ueben

tmp=$(getopt -n $(basename $0) -o p: -l pause: -- "$@")
eval set -- $tmp
while :
do
    opt="$1"; shift
    case "$opt" in
        -p|--pause) pause="$1"; shift;;
        --)         break;;
    esac
done

lastrun=$(stat -c%Y $LASTRUN 2>/dev/null || echo 0)

(( $(date +%s) - lastrun < pause * 3600 )) \
    && exit 0

check_for_mobile 
"$@"            
touch "$LASTRUN"
~~~


    Best regards from Dresden/Germany
    Viele Grüße aus Dresden
    Heiko Schlittermann
-- 
 SCHLITTERMANN.de ---------------------------- internet & unix support -
 Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
 gnupg encrypted messages are welcome --------------- key ID: 7CBF764A -
 gnupg fingerprint: 9288 F17D BBF9 9625 5ABC  285C 26A9 687E 7CBF 764A -
(gnupg fingerprint: 3061 CFBF 2D88 F034 E8D2  7E92 EE4E AC98 48D0 359B)-

Attachment: signature.asc
Description: Digital signature


Reply to: