Moin,
Frage an die Skriptprofis:
Ausgangslage:
- TS-431P2 und TS-462 mit Energieplan: Shutdown 22:00 Einschalten 07:00
- RAID-Bereinigung am 15.jedes Monats um 08:00 Uhr
Problem: Die RAID-Bereinigung dauert länger als die Einschaltzeit des NAS. Der Haken an „Shutdown verzögern während Replizierungsauftrag läuft“ wirkt für die RAID-Bereinigung nicht. Das bewirkt, dass das NAS um 22:00 Uhr runterfährt und um 07:00 Uhr wieder hoch. Dann geht die RAID-Bereinigung wieder von vorne los, … usw.
Der Wunsch wäre nun, dass der Shutdown am 15.des Monats verhindert, und am 16.des Monats aber wieder aktiviert wird, weil zwischenzeitlich die RAID-Bereinigung beendet wird
Das folgende Script kommt von QNAP (haben die selber angeboten), funktioniert aber nur für die Verhinderung des Shutdowns am 15. Das NAS läuft dann jedoch permanent durch (24/7), was aber nicht das ist, was ich letztendlich erreichen will. Das geht nun schon seit etwa 10 Wochen hin und her mit dem Support. Seit dem 16.01.habe ich aber nichts mehr von QNAP gehört...
Daher die Frage ans Forum:
Wo ist hier der Fehler, muss ja irgendwo bei "else" sein?
#!/bin/sh
CRONFILE="/etc/config/crontab"
TARGET="/etc/init.d/poweroff"
DAY=$(date +%d)
LINE=$(grep -E "^[#]?[0-9].*${TARGET}" "$CRONFILE")
[ -z "$LINE" ] && exit 0
if [ "$DAY" = "15" ]; then
echo "$LINE" | grep -q "^#" && exit 0
sed -i "s#^\([0-9].*${TARGET}.*\)#\#\1#" "$CRONFILE"
logger "autorun.sh: Commented shutdown cron (15th)"
crontab "$CRONFILE" # <--- reload after modification
else
sed -i "s#^\#\([0-9].*${TARGET}.*\)#\1#" "$CRONFILE"
logger "autorun.sh: Uncommented shutdown cron (not 15th)"
crontab "$CRONFILE"
fi
crontab "$CRONFILE"
Alles anzeigen
Der zugehörige Eintrag im Crontab:
Jemand eine Idee? Die Syntax von Linux kenne ich nicht
Und ja, die autorun.sh liegt unter Public
Danke im Voraus, VG Zacharias