PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zyxel NAS210 - Erstellter Cronjob nach neustart weg...



raven79
15.08.11, 11:26
Hallo an alle :),

ich hab wie oben geschieben einen Zxyel NAS210 auf dem LINUX (2.6.24.4) als BS lauft. Jetzt hab ich nach längerem suchen über google rausgefunden wie und wo ich einen Cronjob einrichten kann. Mein Ziel ist es eine php Datei mit code auszuführen. Für den Anfang will ich nur die Zeit wann der Cronjob ausgeführt wurde in eine txt Datei zu schreiben.
Inhalt PHP Datei:

#!/i-data/439ce182/.zyxel/zy-pkgs/php/bin/php
<?php
$datum = date("l dS of F Y h:i:s");
$information = $datum. "\r\n";
$datei_handle=fopen("log.txt",a);
fwrite($datei_handle,$information);
fclose($datei_handle);
echo '<br />';
?>

Wenn ich
crontab -l aufrufe kommt:

# Run ntpdate periodically if users want to sync time from time server
* * * * * /bin/dsrv-mon.sh > /dev/null 2>&1
17 */2 * * * /bin/rbm.sh by_crond > /dev/null 2>&1
#*/10 * * * * /usr/bin/ipcam > /dev/null 2>&1
50 16 * * * /sbin/ntpdate_sync.sh > /dev/null 2>&1
50 4 * * * /sbin/ntpdate_sync.sh > /dev/null 2>&1
14 0 16 * * /usr/bin/zyfw_downloader ftp://ftp2.zyxel.com/NSA210/firmware ZYFW_INFO.tgz 0 1 > /dev/null 2>&1
14 0 31 * * /usr/bin/zyfw_downloader ftp://ftp2.zyxel.com/NSA210/firmware ZYFW_INFO.tgz 0 1 > /dev/null 2>&1
25 */8 * * * smartd-runner.sh cli > /dev/null 2>&1


Nun bearbeite ich den Crontab mit
crontab -e
und mein ergebinss sieht dann so aus:

# Run ntpdate periodically if users want to sync time from time server
* * * * * /bin/dsrv-mon.sh > /dev/null 2>&1
17 */2 * * * /bin/rbm.sh by_crond > /dev/null 2>&1
#*/10 * * * * /usr/bin/ipcam > /dev/null 2>&1
50 16 * * * /sbin/ntpdate_sync.sh > /dev/null 2>&1
50 4 * * * /sbin/ntpdate_sync.sh > /dev/null 2>&1
14 0 16 * * /usr/bin/zyfw_downloader ftp://ftp2.zyxel.com/NSA210/firmware ZYFW_INFO.tgz 0 1 > /dev/null 2>&1
14 0 31 * * /usr/bin/zyfw_downloader ftp://ftp2.zyxel.com/NSA210/firmware ZYFW_INFO.tgz 0 1 > /dev/null 2>&1
25 */8 * * * smartd-runner.sh cli > /dev/null 2>&1
#Test Cronjob cron.php Zeitstempel
*/5 * * * * /i-data/439ce182/www/cron.php > /dev/null


Der Befehl wird nie ausgefürt und nach einem neustart des NAS ist mein Cronjob weg.

Kann mir da jemand helfen und sagen was ich anders machen muß / wo meine fehler sind...

Danke

Gruß Micha

marce
15.08.11, 11:35
wenn Du php als Konsolen-Script ausführen willst musst Du dich an die Regeln halten, die für Konsolenscripte gelten:
- Shebang
- Rechte setzen

Zusätzlich hat noch jeder Crondaemon ein paar Eigenheiten, ob das hier auch zutrifft - so schwer zu sagen, da brauchen wir mehr Details...

Was das Verschwinden der Cron-Zeile angeht kann ich nichts sagen, evtl. gibt die Doku zu dem Ding was her...

raven79
15.08.11, 11:54
Hallo marce,

wenn ich die Datei im browser ausführe macht die genau des was diese soll, die Datei log.txt erstellen und des Datum + Uhrzeit reinschreiben und speichern.

Ich dachte ich kann dem crontab auch sagen das es des so machen soll. von Konsolen-Script hab ich bis dato nix gehört...

Shebang hab ich in einer Hilfe gelesen das man des reinmachen soll und die rechte für die Datei hab ich auf ausführen gesetzt.

Was für detail brauchen wir den und wo könnte ich die bekommen ?

Danke

Gruß Micha

marce
15.08.11, 12:31
wenn Du das Ding im Browser aufufst, dann führt der Apache die Datei aus. Das hat mit der Shell rein gar nichts zu tun...

Du könntest aber eine Cronjob z.b. mit wget oder curl erstellen, de die Datei vom Apache abruft - sozusagen das Script "über den Apache als Umweg" an der Shell ausführen.

Zusätzlich Infos - nett wäre mal die genaue Sysmtebezeichnung (uname -a) und die Version der cron-Daemon.

raven79
15.08.11, 13:55
also des mit wget oder curl hört sich ganz gut an, wie muß ich den an sowas rangehen ?

Infos zum LINUX -->
Linux nsa210 2.6.24.4 #1 Mon May 16 18:47:51 CST 2011 armv5tejl unknown

CRON (ich hoff mal des is des richtige ) -->
BusyBox v1.12.1 (2008-09-29 20:38:04 CEST) multi-call binary