hallo,
auch ich würde mich für diese möglichkeit interessieren. ich verwende schon sehr lange monowall und verfolge auch schon seit 2004 die anfragen dafür. leider hat sich da nichts getan. ich kann mich noch erinnern das jemand auch so etwas haben wollte und fast gesteinigt wurde weil er nach einem automatischen reboot fragte. ich denke hier war nicht der reboot das was er wollte sondern auch diese zeitlich definierte trennung.
ich versuche einmal den sinn dahinter zu erklären...
in deutschland haben die meisten dsl-nutzer eine zwangstrennung alle 24 stunden. diese 24 stunden zählen immer seit der letzten trennung. wenn ich also um 6 uhr in der früh selber trenne werden ich die nächsten 24 stunden ruhe haben und die dsl-leitung steht ohne unterbrechung zur verfügung. gerade wenn man auch von außen die leitung nutzen möchte ist es oft sehr wichtig diese trennung auf zeiten zu legen in der sie nicht störend ist.
bisher habe ich mich damit beholfen das ich die trennung wirklich zu einer zeit ausgeführt habe in der ich 'normal' die internetverbindung nicht benötige. das hält dann abhängig von der zuverlässigkeit des dsl-anbieters ein paar wochen bis er von sich aus mal wieder eine trennung vorgenommen hat (als ich mein dsl bei der t-com hatte, war die trennung von der t-com im schnitt jede woche einmal) .
auch die lösungen die oft angeboten werden sind für mich keine lösungen sondern nur ein behelf. hier wird angepriesen mit einem anderen rechner ein wget auf die disconnect-funktion zu machen. es kann ja nicht sein das ich um einen rechner (die monowall) zu einem disconnect zu bewegen einen anderen rechner aktiv halten muß.
bisher war wohl das argument das kein einfacher cron zur verfügung stünde. hier ein bash-script (ich weiß leider nicht welcher sh in monowall verwendet wird)
#!/bin/sh
# crond replacement
CRONTAB=/var/etc/crontab
# crontab format
# +---------minute 00-59
# | +-------hour 00-23
# | | +-----day of month 01-31
# | | | +---month 01-12
# | | | | +-day of week 1-7
# | | | | |
# * * * * * command
while true
do
remain=$(date +%S|sed 's/^0//')
sleep $((60-remain))
set $(date '+%M %H %d %m %w')
while read minute hour day month wday command
do
runit=""
if [ "${minute###}" != "$minute" ]
then
continue
fi
[ "$minute" = "$1" ] || [ "$minute" = "*" ] && runit=$runit"M"
[ "$hour" = "$2" ] || [ "$hour" = "*" ] && runit=$runit"H"
[ "$day" = "$3" ] || [ "$day" = "*" ] && runit=$runit"d"
[ "$month" = "$4" ] || [ "$month" = "*" ] && runit=$runit"m"
[ "$wday" = "$5" ] || [ "$wday" = "*" ] && runit=$runit"w"
if [ "$runit" = "MHdmw" ]
then
log="/tmp/log-$(date +%Y%m%d)"
echo "$(date) running $command" >> $log
$command >>$log 2>&1 &
fi
done < $CRONTAB
done
dies sollte die aufgaben in der nötigen genauigkeiten ausführen und ist nicht zu groß.
leider steht mir keine entwicklungsumgebung für freebsd zur verfügung. auf einem linuxrechner rennt der cron aber wunderbar.
bye woodym