Okay, nur nochmal zum Verständnis: also zur Startzeit wird fritzload
einmal gestartet welches dann seine Down-/Uploads abarbeitet. Sobald die Liste leer ist, wird fritzload.sh beendet.
Wenn jetzt wieder neue Aufträge in dl_jobs.txt/ul_jobs.txt eingetragen werden startet fritzload erst wieder zur eingestellten Startzeit.
Das heißt im ungünstigsten Fall dauert es 23:58h bis die Aufträge abgearbeitet werden.
autorunfl.sh läuft doch aber die ganze Zeit weiter, die Schleife wird doch nie beendet.
Ich persönlich finde es da praktischer, wenn ich "zwischendurch" einen Download anstoßen kann, einfach durch hinzufügen eines Jobs in dl_jobs.txt. Der Vorteil hierbei liegt darin, dass ich problemlos per FTP von außerhalb neue Downloadauträge in die Datei schreiben kann und dafür keinen VPN-Zugang brauche.
Man könnte ja die Abstände länger machen, z.B. auf 15 Minuten und dann jedesmal fritzload starten wenn dl_jobs.txt/ul_jobs.txt > 0 byte.
Machen könnte man das so:
Code:
runfile() {
local dprem= uprem=
# Solange Stop File existiert nicht automatisch neu starten!
#? [ -f $programdir/stop ] && return 0
cd $programdir/
if [ "$autorun_dl" = "1" ]; then
[ "$autorun_dl_type" = "1" ] && dprem=p
# ! -f $programdir/stop -a
if [ -z "$(ps w | grep 'fritzload.sh -p\?l' | grep -v grep)" ]; then
if [ -s "config/dl_jobs.txt" ]; then
log "Starte Fritzload-Download"
$programdir/fritzload.sh -${dprem}l config/dl_jobs.txt >>log/nohup_dl.out 2>&1 &
fi
else
log "SKIP-DL: FritzLoad läuft bereits."
fi
fi
if [ "$autorun_ul" = "1" ];then
[ "$autorun_ul_type" = "1" ] && uprem=p
# ! -f $programdir/stop -a
if [ -z "$(ps w | grep 'fritzload.sh -p\?u' | grep -v grep)" ]; then
if [ -s "config/ul_jobs.txt" ]; then
log "Starte Fritzload-Upload"
$programdir/fritzload.sh -${uprem}u config/ul_jobs.txt >>log/nohup_ul.out 2>&1 &
fi
else
log "SKIP-UL: FritzLoad läuft bereits."
fi
fi
}
timecheck() {
local timestat
log "Fritzload Autorun started:"
echo "Startzeit: $autorun_start"
echo "Stoppzeit: $autorun_stop"
local started=
while true; do
if [ -n "$autorun_start" -a -n "$autorun_stop" ];then
if inTime "$autorun_start" "$autorun_stop";then
runfile
if [ -z "$started" -o "$started" = 0 ];then
started=1
fi
else
if [ -z "$started" -o "$started" = 1 ];then
started=0
log "Stoppe Fritzload"
echo -n >$programdir/stop
fi
fi
fi
sleep 900
readConfig
done
}
Die Funktionalität würde sich etwas ändern, aber wie ich finde zum Besseren hin
Gruß,
0x2a