Hallo sf3978!
Danke für deine ausführliche Erklärung.
Dennoch möchte ich folgende Fragen an dich stellen:
1. Warum habe ich keinen crontab-Eintrag, der von den Einstellungen der GUI generiert wird? Stattdessen habe ich ja die crontab manuell editiert.
2. Unterscheiden sich die Aufrufe /mod/etc/init.d/rc.opendd cron und /etc/init.d/rc.opendd cron?
3. Warum wird von der OpenDD GUI ein cronjob definiert, der täglich um 05:45h läuft (45 5 * * * /mod/etc/init.d/rc.opendd cron)? Könnte man die Zeit für den täglichen OpenDD-Lauf nicht customizen?
4. Funktioniert der find-Befehl mit diesem Syntax?
Code:
find /tmp/flash/opendd/ -name opendd.ip -mtime +25 -exec rm -rf {} ';'
In der Manpage von find steht: -mtime n File's data was last modified n*24 hours ago.
Nach meinem Verständnis ist dies die relevante Coding-Stelle:
Code:
if [ "$OPENDD_FORCE_UPDATE" == "yes" ]; then
OLD_IP="$(cat /tmp/flash/opendd/opendd.ip 2>/dev/null)"
if [ "$OLD_IP" != "$NEW_IP" ]; then
rm -rf /tmp/flash/opendd/opendd.ip
else
find /tmp/flash/opendd/ -name opendd.ip -mtime +25 -exec rm -rf {} ';'
if [ ! -e /tmp/flash/opendd/opendd.ip ]; then
update_ip 127.168.178.1
sleep 90
fi
fi
if [ ! -e /tmp/flash/opendd/opendd.ip ]; then
echo "$NEW_IP" >/tmp/flash/opendd/opendd.ip
modsave flash >/dev/null
fi
fi
update_ip $NEW_IP
Und "update_ip" macht nichts anderes als
- den Wert (=IP-Adresse) nach /tmp/.opendd.ip zu schreiben
- OpenDD mit der aktuellen opendd.conf-Datei zu starten
- die Datei /tmp/.opendd.ip wieder zu löschen
Code:
update_ip() {
echo "$1" > /tmp/.opendd.ip
$DAEMON -c /mod/etc/$DAEMON.conf
rm -rf /tmp/.opendd.ip 2>/dev/null
Ich glaube, in meinem speziellen Fall sind die Fragen 1. und 4. wirklich relevant.
Also, warum wird kein crontab-Eintrag erstellt, und funktioniert der find-Befehl mit der Option -mtime +25?
THX