Archiv verlassen und diese Seite im Standarddesign anzeigen : cron Jobs freeNAS
Hallo ich habe mal eine Frage.
Ich habe wie der Titel schon sagt ein NAS mit OS freenas 9.1, der Cron Job ist eingerichtet und funktioniert.
Was ich aber gerne hätte wäre eine rückmeldung das er den dienst gestartet hat.
Also hier mal ausführlich! Ich habe ein automatisches runterfahren wenn x PC nicht mehr im Netz ist.
wenn ich das script per shell über sh shutdown.sh aufrufe bekomme ich das echo wie es im script eingetragen ist. über den cron-job macht er die funktion aber das echo kommt nicht.
vielleicht könnt ihr mir das helfen
lg xenix
DrunkenFreak
23.07.13, 20:05
Es ist gut möglich, dass cron eine andere Shell benutzt. Nutze einfach /bin/echo.
also meinst du im cron zusätzlich /bin echo xxxtext ?
wenn ja wäre das ja nur das er das ausgeführt hat. wäre ne not lösung.
ich möchte ja das dass was im script steht ausgelesen wird
hallo,
cronjobs schreiben nicht auf die standard/fehler-Ausgabe- das ist kein Bug sondern feature- schließlich laufen die Jobs als Hintergrundprozesse.
Schau mal ob es /usr/bin/logger auf dem System gibt, und benutze den statt echo.
Sowohl cron als auch logger haben übrigens man-pages ;)
HTH
PS: natürlich ginge auch das Umleiten von echo in eine Datei... (echo "ich kann schreiben. Juchu!" >/tmp/denkste)
also logger befindet sich im verzeichnis /usr/bin
so als frischling was ist mit
Sowohl cron als auch logger haben übrigens man-pages gemeint
hier mal das script was ich nutzen möchte vielleicht könnt ihr hier mir genau sagen was ich daran ändern muss damit es funzt :-)
#!/bin/bash
HOST1=192.168.1.77
_exit () {
case $1 in
1) echo "Kein Shutdown - Mindestens einer der PCs ist eingeschaltet" ;;
2) echo "Kein PC online - Shutdown" ; shutdown -p now ;;
esac
exit $1;
}
# Checken ob PC's an sind
if [ `ping -c 1 -i 1 $HOST1 | grep -wc 100.0%` -eq 0 ] ; then _exit 1;
# Wenn kein PC an ist, 120 sec warten falls gerade einer Neu startet
else
echo "Kein PC online - Warte 120 Sekunden"
sleep 120
# noch mal PC's checken
if [ `ping -c 1 -i 1 $HOST1 | grep -wc 100.0%` -eq 0 ] ; then _exit 1;
# Wenn kein PC an ist, gehe zu exit case 2 (Shutdown)
else
_exit 2
fi
fi
Hi,
man-pages=manual pages, zu lesen mit "man logger" z.b., falls sie auf so einem Gerät wie nem NAS (mit oft begrenztem Speicher) überhaupt installiert sind.
Rain_maker
23.07.13, 20:47
... falls sie auf so einem Gerät wie nem NAS (mit oft begrenztem Speicher) überhaupt installiert sind.
.. was allerdings auch nicht wirklich ein Problem ist, da es praktisch jede man page auch online verfügbar gibt.
Einfach
"man page <gewünschter Befehl>"
in die Suchmaschine des geringsten Misstrauens eingeben, unter den ersten fünf Treffern wird man praktisch immer fündig.
Greetz,
RM
zu deinem Script: ich würde ne Shell funktion schreiben statt der vielen echos.
z..b.
function myecho() {
logfile=/var/log/`/bin/date -I`-myjob.log
/usr/bin/touch $logfile
echo "$*" >>$logfile
}
und in dem Script änderst dann "echo" in "myecho", wobei die logdatei wegen dem obigen "date -I" täglich umbenannt und neu angelegt wird.
PS: falls du stattdessen logger einsetzen willst an Stelle von echo, werden die Ausgaben ins Systemlog unter /var/log geschrieben
ok super dank für die schnellen antworten das script habe ich bekommen und ich habe es nur angespasst.
das mit dem log finde ich super so kann ich mir das anschauen ob er das alles ausführt weil in der shell guckt man später ja eh nie rein. es ist nur an anfang zu überprüfungszwecken gedacht
so mal umgesetzt und nun erhalte ich den fehler 3: Syntax error: "(" unexpected
Wie hast du es denn umgesetzt? Poste doch mal das ganze Skript.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.