cron zum ausgühren von getmail funktioniert nicht

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

champ81

Benutzer
Registriert
13. Dez. 2011
Beiträge
7
Reaktionspunkte
0
Punkte
0
Hallo,

ich versuche bereits seit Tagen den cron job zum ausführen des getmail.sh scripts zu erstellen.
Es funktioniert aber irgendiwie nicht.
Das getmail.sh Script funktioniert bei manueller ausführung einwandfrei.

Wenn ich den cron laut wiki starten will bekomme ich immer diese Meldung.

Code:
/volume2/homes/Christoph $ /opt/etc/init.d/S10cron
/opt/sbin/cron: can't open or create /opt/var/run/cron.pid: Permission denied

und beim test kommt diese Meldung:
Code:
/volume2/homes/Christoph $ /opt/sbin/cron -x test
debug flags enabled: test
/opt/sbin/cron: can't open or create /opt/var/run/cron.pid: Permission denied
log_it: (CRON 9564) DEATH (can't open or create /opt/var/run/cron.pid: Permission denied)

wenn ich dann cron als root starte und dann wieder als User Christoph /opt/etc/init.d/S10cron ausführe bekomme ich folgende Meldung:
Code:
/volume2/homes/Christoph $ /opt/etc/init.d/S10cron
kill: can't kill pid 9567: Operation not permitted
/opt/sbin/cron: can't open or create /opt/var/run/cron.pid: Permission denied

hatte von euch auch jemand schon einmal so ein Problem oder was mache ich falsch?

Danke
Christoph
 
du kannst S10cron nicht als unpriviligierter User aka non-root ausführen. Das geht vom Konzept her ned, das braucht root-Rechte
 
Hallo

danke für die schnelle Antwort.

Aber auch wenn ich /opt/etc/init.d/S10cron als root ausführe dan holt er die Mails nicht automatisch ab?
unter /opt/var/cron/crontabs/ liegt die Datei Christoph
Code:
DSDebiasi> cd /opt/var/cron/crontabs/
DSDebiasi> dir
drwxr-xr-x    2 root     root          4096 Dec 15 19:41 .
drwxr-xr-x    3 root     root          4096 Dec 15 18:26 ..
-rw-------    1 Christoph users           59 Dec 16 10:07 Christoph
DSDebiasi>

mit dem Inhalt
Code:
*/1 * * * * /volume2/homes/Christoph/getmail.sh &>/dev/null

zu testzwecken habe ich das intervall auf 1 min gesetzt.

wo kann der fehler liegen?
 
stoppe den cron als root mal und mach als root mal /opt/sbin/cron -x test
Dann warte mindestens 1min und guck ob dein cron File zur Ausführung kommen würde.
Alternativ kannst du den Job auch in die crontab von root eintragen und dann das Kommando mittels su auf deinen User umbiegen.
btw: den default cron von Synology hast du gestoppt?
 
hallo ich habe folgendes aufgeführt und nichts ist passiert:
Code:
DSDebiasi> killall cron
DSDebiasi> /opt/sbin/cron -x test
debug flags enabled: test
[9656] cron started
bzw. cron ist in der console hängengeblieben und konnte nur mit strg+c beendet werden.

dann habe ich noch versucht die datei /etc/crontab wie folgt zu ergänzen
Code:
#minute hour    mday    month   wday    who     command
0       0       *       *       *       root    /usr/sbin/ntpdate -b time.nist.gov
0       22      *       *       *       root    /sbin/poweroff
*/1     *       *       *       *       Christoph       /volume2/homes/Christoph/getmail.sh &>/deb/null

geht auch nicht
 
hast du dennmindestens 60 Sek gewartet ehe du mit ctrl+c abgebrochen hast? Die Kosonle zeigt so lange nichts bis ein Job ausgeführt werden muss. Schaut jewils wie hängengeblieben aus, läuft aber noch :-)
Hast du denn den cron auch neugestartet als du den neuen Job im crontab deines Users angelegt hast? cron merkt das nämlich nicht von selber
 
ja hab ich.
zu kontrolle habe ich jetzt mal diese zeile im crontab eingefügt:
Code:
*/1     *       *       *       *       cp /volume2/homes/Christoph/123.txt /volume2/homes/Christoph/1234.txt
*/1     *       *       *       *       /volume2/homes/Christoph/getmail.sh &>/dev/null

die datei 1234.txt wir jede minute erstellt das passt also

der erneute test von cron gab folgendes
Code:
DSDebiasi> killall cron
DSDebiasi> /opt/sbin/cron -x test
debug flags enabled: test
[9652] cron started
log_it: (Christoph 9654) CMD (cp /volume2/homes/Christoph/123.txt /volume2/homes/Christoph/1234.txt)
log_it: (Christoph 9660) CMD (cp /volume2/homes/Christoph/123.txt /volume2/homes/Christoph/1234.txt)
log_it: (Christoph 9663) CMD (cp /volume2/homes/Christoph/123.txt /volume2/homes/Christoph/1234.txt)
log_it: (Christoph 9666) CMD (cp /volume2/homes/Christoph/123.txt /volume2/homes/Christoph/1234.txt)

vom getmail keine spur, was kann das sein
 
mal probiert die Umleitung nach /dev/null zu entfernen? Und dein getmail.sh selber ist als ausführbar markiert? Und pass mit dem & auf, dies führt dazu, dass das Script die Shell wieder zurückgibt, bevor es das Ende erreicht hat. Gerade mit so kurzen Intervallen kann das ganz üble Raceconditions geben, die soweit führen können, dass die DS keinen Wank mehr macht
 
Das gleiche Problem auf meiner DS212j

hallo Champ81,
vielleicht hilft Dir mein Hinweis.

Ich hatte das gleiche Problem und habe ebenso alle Beiträge durchforstet.
Letztendlich bin ich darauf gestossen, das das Skript-File /volume1/homes/myuser/getmail.sh mit den falschen Rechten ausgestattet war.
Ich habe die Datei mit dem AdminTool bearbeitet, woduch der root-User als Owner eingetragen wurde.

Mit dem AdminTool habe ich die Rechte wieder auf myuser:users eingestellt. Von da an läuft der Cron-Job.
 
Hallo zusammen,

ich habe mit meiner Ausführung des getmailrc via crontab auch meine Probleme.

wenn ich als root

Rich (BBCode):
Server>  /opt/bin/getmail -g /opt/bin -l -n

eingebe, macht getmail genau all das was ich im getmailrc file hinterlegt habe. (inklusive ausführlichem verteilen auf die verschiedenen Postfächer)

folglich habe ich den crontab unter /etc
um folgende Zeile (die 3. Zeile) via vi erweitert:
Rich (BBCode):
Server> vi crontab
#minute hour    mday    month   wday    who     command
*/3     *       *       *       *       root    /opt/bin/getmail -g /opt/bin -l -n "Mails via getmail entsprechend getmailrc alle 3 Min abholen"

dann noch den cron gestopt und neu gestartet, via

Rich (BBCode):
Server> /usr/syno/etc/rc.d/S04crond.sh stop
stop crond
Server> /usr/syno/etc/rc.d/S04crond.sh start
Starting crond...
Server>

Jedoch wird der Befehl "/opt/bin/getmail -g /opt/bin -l -n" überhaubt nicht, geschweige den alle 3 Min. ausgeführt.

muß ich sonst noch einen job stoppen/starten?
was mache ich falsch?

Grüße Stefan
 
jap jetzt passt es thematisch besser :-) Immer noch die Frage nach dem "
 
jap jetzt passt es thematisch besser :-) Immer noch die Frage nach dem "
Hmm binn jetzt etwas verwirrt?!?!?

der Inhalt von crontab vor meinen "Ergänzungen" war:
Rich (BBCode):
30      1       *       *       *       root    /usr/syno/bin/synolocalbkp -a "Homes inklus.priv.Photosstations"
30      3       *       *       *       root    /usr/syno/bin/synolocalbkp -a "Haupt-Photostation"
0       23      *       *       *       root    /usr/syno/bin/synolocalbkp -a "Web Station"
30      5       *       *       *       root    /usr/syno/bin/synolocalbkp -a "Videos aus Internet"
10      5       *       *       *       root    /usr/syno/bin/synolocalbkp -a "Source"
0       5       *       *       *       root    /usr/syno/bin/synolocalbkp -a "surveillance-extern"
0       4       *       *       *       root    /usr/syno/bin/synolocalbkp -a "Surveillance-Station"
35      0       *       *       1,4     root    /usr/syno/bin/synopkg chkupgradepkg
0       0       *       *       *       root    /usr/sbin/ntpdate -b pool.ntp.org
13       *       *       *       *       root    /var/packages/Webalizer/target/bin/webalizer -c /var/packages/Webalizer/target/webalizer.conf

OK, ich "dachte", richtigerweise, ich vermutete,
daß zwischen den "Hochkommas" ein Komentar steht.

Deshalb habe ich die Zeile
Rich (BBCode):
*/3     *       *       *       *       root    /opt/bin/getmail -g /opt/bin -l -n "Mails via getmail entsprechend getmailrc alle 3 Min abholen"
so hinzugefügt.

Aber da liege ich wohl falsch.
=>
Dann ist der richtige (vollständige) Aufbau von crontab:
Rich (BBCode):
#minute hour    mday    month   wday    who     command
*/3     *       *       *       *       root    /opt/bin/getmail -g /opt/bin -l -n
30      1       *       *       *       root    /usr/syno/bin/synolocalbkp -a "Homes inklus.priv.Photosstations"
30      3       *       *       *       root    /usr/syno/bin/synolocalbkp -a "Haupt-Photostation"
0       23      *       *       *       root    /usr/syno/bin/synolocalbkp -a "Web Station"
30      5       *       *       *       root    /usr/syno/bin/synolocalbkp -a "Videos aus Internet"
10      5       *       *       *       root    /usr/syno/bin/synolocalbkp -a "Source"
0       5       *       *       *       root    /usr/syno/bin/synolocalbkp -a "surveillance-extern"
0       4       *       *       *       root    /usr/syno/bin/synolocalbkp -a "Surveillance-Station"
35      0       *       *       1,4     root    /usr/syno/bin/synopkg chkupgradepkg
0       0       *       *       *       root    /usr/sbin/ntpdate -b pool.ntp.org
13       *       *       *       *       root    /var/packages/Webalizer/target/bin/webalizer -c /var/packages/Webalizer/target/webalizer.conf

JAA, so gehts!

während ich diese Mail schreibe, läuft der cronjob so, wie er soll!
================================================

DANKE!!!

Noch eine Frage:
wenn das "Surveillance-Station" kein Komentar ist, was ist es dann??

Grüße Stefan
 
wenn das "Surveillance-Station" kein Komentar ist, was ist es dann??
ein Argument für das Program synolocalbkp resp wahrscheinlich der Wert für den Parameter -a
Kommentarzeilen beginnen normalerweise mit #
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat