Ich habe mir die 'inotify-tools' installiert und ein kleines Script gebastelt, welches:
a) eine Textdatei auf Veränderungen überwacht, da kommen die URL's zum Download rein.
b) bei Änderungen an der Datei diese zunächst sperrt (chmod 444)
c) die Liste mit URL's in der Datei mit wget abarbeitet
d) die Liste löscht und eine neue leere erzeugt.
Hier das Script:
#!/bin/sh # Script "download-watch" waits for changes in the # download-list 'URLLIST' and if detected, downloads # all files in the list using wget into 'WORKDIR'. WORKDIR=/home/ingo/download URLLIST=$WORKDIR/url.list LOGFILE=$WORKDIR/wget.log while inotifywait -e modify $URLLIST >/dev/null 2>&1; do echo "Change detected" # Protect list against modifications chmod 444 $URLLIST # Delay to wait for changes to become effective sleep 2 wget -N -w 2 -P $WORKDIR -a $LOGFILE -i $URLLIST echo "List downloaded" rm -f $URLLIST && touch $URLLIST && chmod 666 $URLLIST echo "$URLLIST cleared" done
So, das klappt auch alles ganz prima und ich kann meine Downloadliste auf mehrere Arten befüllen:
1. mit 'nano': beim Speichern mit Ctrl+o beginnt der Download → ok!
2. echo <URL> >> $URLLIST → klappt ebenso ok!
3. nur, wenn ich $URLLIST mit 'gedit' abspeichere, passiert entweder garnix oder beim 2tem Versuch beendet sich das Script einfach. 😢 habe dabei mal den Output von 'inotifywait' beobachtet, sieht so aus:
ingo@nas:~/download$ ./download-watch Setting up watches. Watches established. /home/ingo/download/url.list IGNORED
Meine Idee: 'gedit' benennt erst die original-Datei um und speichert die neue dann unter dem alten Namen. Somit ist die Datei für einen Moment verschwunden und 'inotifywait' steigt einfach aus.
Was könnte man da tun??
Viele Grüße, Ingo