crond startet nicht

Status
Für weitere Antworten geschlossen.

sowosamma

Benutzer
Mitglied seit
16. Jun 2009
Beiträge
565
Punkte für Reaktionen
0
Punkte
42
Hallo,
ich bin am verzweifeln. Ohne Linux-Kenntnisse ist das Aufsetzen des Mailservers doch nicht so einfach wie ich dachte bzw. hoffte. :eek:

Das manuelle Abrufen der Emails mit getmail funktioniert. Deshalb wollte ich den crond einrichten. Aber ich bekomme es nicht zum Laufen - trotz wiki und tausenden von Beiträgen die ich gelesen habe.

crond ist installiert
Rich (BBCode):
DS109plus> ipkg list_installed | grep cron
cron - 4.1-7 - Standard vixie cron, with cron.d addition

Dann habe ich unter /opt/var/cron/crontabs eine Datei (mit vi) mit dem Benutzernamen mit folgendem Inhalt angelegt:
Rich (BBCode):
*/1<TAB>*<TAB>*<TAB>*<TAB>*<TAB>root<TAB>su MailTest -c 'sh /volume1/homes/MailTest/getmail.sh'

Anschließend die Berechtigungen vergeben
Rich (BBCode):
DS109plus> chown MailTest:users /opt/var/cron/crontabs/MailTest 
DS109plus> chmod 0600 /opt/var/cron/crontabs/MailTest 
DS109plus> ls -l
-rw-------    1 MailTest users          75 Jul 19 20:48 MailTest

Und zum Schluss den crond neu gestartet. Hier ging der Befehl auf dem wiki nicht. Deshalb habe ich es wie im [How To] probiert
Rich (BBCode):
DS109plus> ps | grep crond
 8457 root        300 R   grep crond 
DS109plus> /opt/etc/init.d/S10cron
DS109plus> ps | grep crond
DS109plus> /opt/etc/init.d/S10cron start
DS109plus> ps | grep crond      
 8475 root        300 R   grep crond 
DS109plus> crond -l0 -c /var/spool/cron/crontabs/ -L /var/log/cr
DS109plus> ps | grep crond
 8480 root        704 S   crond -l0 -c /var/spool/cron/crontabs/ -L /var/log/cr
 8482 root        300 R   grep crond

Kann mir bitte jemand helfen???

/Andi

Edit:
vielleicht ist das noch wichtig
Rich (BBCode):
DS109plus> ps | grep cron                                       
 8471 root        624 S   /opt/sbin/cron 
 8480 root        732 S   crond -l0 -c /var/spool/cron/crontabs/ -L /var/log/cr

Edit2:
Ich habe in einem Beitrag noch den Hinweis mit cron -x pars gefunden. Das sieht bei mir so aus
Rich (BBCode):
DS109plus> killall crond
DS109plus> ps | grep cron
 8556 root        300 S   grep cron 
DS109plus> cron -x test
debug flags enabled: test
[8557] cron started
DS109plus> cron -x pars
debug flags enabled: pars
[8558] cron started
load_user()
linenum=1
load_env, read <SHELL=/bin/sh>
load_env, <SHELL> </bin/sh> -> <SHELL=/bin/sh>
linenum=2
load_env, read <PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin>
load_env, <PATH> </sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin> -> <PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin>
linenum=3
load_env, read <MAILTO="">
load_env, <MAILTO> <> -> <MAILTO=>
linenum=4
load_env, read <HOME=/>
load_env, <HOME> </> -> <HOME=/>
linenum=5
...load_user() done
load_user()
linenum=6
load_env, read <*/1	*	*	*	*	root	su MailTest -c 'sh /volume1/homes/MailTest/getmail.sh'  >
load_env, not an env var, state = 7
linenum=5
load_entry()...about to eat comments
load_entry()...about to parse numerics
get_list()...entered
get_range()...entering, exit won't show
set_element(?,0,59,0)
set_element(?,0,59,1)
set_element(?,0,59,2)
set_element(?,0,59,3)
set_element(?,0,59,4)
set_element(?,0,59,5)
set_element(?,0,59,6)
set_element(?,0,59,7)
set_element(?,0,59,8)
set_element(?,0,59,9)
set_element(?,0,59,10)
set_element(?,0,59,11)
set_element(?,0,59,12)
set_element(?,0,59,13)
set_element(?,0,59,14)
set_element(?,0,59,15)
set_element(?,0,59,16)
set_element(?,0,59,17)
set_element(?,0,59,18)
set_element(?,0,59,19)
set_element(?,0,59,20)
set_element(?,0,59,21)
set_element(?,0,59,22)
set_element(?,0,59,23)
set_element(?,0,59,24)
set_element(?,0,59,25)
set_element(?,0,59,26)
set_element(?,0,59,27)
set_element(?,0,59,28)
set_element(?,0,59,29)
set_element(?,0,59,30)
set_element(?,0,59,31)
set_element(?,0,59,32)
set_element(?,0,59,33)
set_element(?,0,59,34)
set_element(?,0,59,35)
set_element(?,0,59,36)
set_element(?,0,59,37)
set_element(?,0,59,38)
set_element(?,0,59,39)
set_element(?,0,59,40)
set_element(?,0,59,41)
set_element(?,0,59,42)
set_element(?,0,59,43)
set_element(?,0,59,44)
set_element(?,0,59,45)
set_element(?,0,59,46)
set_element(?,0,59,47)
set_element(?,0,59,48)
set_element(?,0,59,49)
set_element(?,0,59,50)
set_element(?,0,59,51)
set_element(?,0,59,52)
set_element(?,0,59,53)
set_element(?,0,59,54)
set_element(?,0,59,55)
set_element(?,0,59,56)
set_element(?,0,59,57)
set_element(?,0,59,58)
set_element(?,0,59,59)
get_list()...exiting w/ 2a
get_list()...entered
get_range()...entering, exit won't show
set_element(?,0,23,0)
set_element(?,0,23,1)
set_element(?,0,23,2)
set_element(?,0,23,3)
set_element(?,0,23,4)
set_element(?,0,23,5)
set_element(?,0,23,6)
set_element(?,0,23,7)
set_element(?,0,23,8)
set_element(?,0,23,9)
set_element(?,0,23,10)
set_element(?,0,23,11)
set_element(?,0,23,12)
set_element(?,0,23,13)
set_element(?,0,23,14)
set_element(?,0,23,15)
set_element(?,0,23,16)
set_element(?,0,23,17)
set_element(?,0,23,18)
set_element(?,0,23,19)
set_element(?,0,23,20)
set_element(?,0,23,21)
set_element(?,0,23,22)
set_element(?,0,23,23)
get_list()...exiting w/ 2a
get_list()...entered
get_range()...entering, exit won't show
set_element(?,1,31,1)
set_element(?,1,31,2)
set_element(?,1,31,3)
set_element(?,1,31,4)
set_element(?,1,31,5)
set_element(?,1,31,6)
set_element(?,1,31,7)
set_element(?,1,31,8)
set_element(?,1,31,9)
set_element(?,1,31,10)
set_element(?,1,31,11)
set_element(?,1,31,12)
set_element(?,1,31,13)
set_element(?,1,31,14)
set_element(?,1,31,15)
set_element(?,1,31,16)
set_element(?,1,31,17)
set_element(?,1,31,18)
set_element(?,1,31,19)
set_element(?,1,31,20)
set_element(?,1,31,21)
set_element(?,1,31,22)
set_element(?,1,31,23)
set_element(?,1,31,24)
set_element(?,1,31,25)
set_element(?,1,31,26)
set_element(?,1,31,27)
set_element(?,1,31,28)
set_element(?,1,31,29)
set_element(?,1,31,30)
set_element(?,1,31,31)
get_list()...exiting w/ 2a
get_list()...entered
get_range()...entering, exit won't show
set_element(?,1,12,1)
set_element(?,1,12,2)
set_element(?,1,12,3)
set_element(?,1,12,4)
set_element(?,1,12,5)
set_element(?,1,12,6)
set_element(?,1,12,7)
set_element(?,1,12,8)
set_element(?,1,12,9)
set_element(?,1,12,10)
set_element(?,1,12,11)
set_element(?,1,12,12)
get_list()...exiting w/ 2a
get_list()...entered
get_range()...entering, exit won't show
set_element(?,0,7,0)
set_element(?,0,7,1)
set_element(?,0,7,2)
set_element(?,0,7,3)
set_element(?,0,7,4)
set_element(?,0,7,5)
set_element(?,0,7,6)
set_element(?,0,7,7)
get_list()...exiting w/ 72
load_entry()...about to parse command
linenum=6
load_entry()...returning successfully
linenum=7
...load_user() done
log_it: (MailTest 8560) CMD (root^Isu MailTest -c 'sh /volume1/homes/MailTest/getmail.sh'  )
log_it: (MailTest 8563) CMD (root^Isu MailTest -c 'sh /volume1/homes/MailTest/getmail.sh'  )
log_it: (MailTest 8566) CMD (root^Isu MailTest -c 'sh /volume1/homes/MailTest/getmail.sh'  )
log_it: (MailTest 8570) CMD (root^Isu MailTest -c 'sh /volume1/homes/MailTest/getmail.sh'  )
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

DS109plus> /opt/etc/init.d/S10cron start
DS109plus> ps | grep crond
8475 root 300 R grep crond

Der ipkg-cron heisst cron und nicht crond. Da darf ein grep crond nix finden ;)
Wenn du ein killall cron und killall crond machst und dann das ipkg Startscript nimmst, darf nur cron laufen.
Mach bitte mal ein
Code:
killall cron
killall crond
/opt/etc/init.d/S10cron start
ps | grep cron
Dein Test zeigt, dass der cron das korrekte crontab File einliest. Von dem her sollte dann alles klappen.
 

sowosamma

Benutzer
Mitglied seit
16. Jun 2009
Beiträge
565
Punkte für Reaktionen
0
Punkte
42
Rich (BBCode):
DS109plus> killall cron  
DS109plus> killall crond
killall: crond: no process killed
DS109plus> /opt/etc/init.d/S10cron start
DS109plus> ps | grep cron
 8660 root        624 S   /opt/sbin/cron
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Jetzt läuft der cron also. Dann warte mal bis der Job laufen sollte und prüfe ob du die Mails erhalten hast
Gerade gesehen: du rufst dein Script ja jede Minute auf. Prüft denn dein Script ob bereits ein getmail läuft? Wenn nein, dann hast du dann ziemlich bald etliche getmails am laufen und die DS geht in die Knie.
 

sowosamma

Benutzer
Mitglied seit
16. Jun 2009
Beiträge
565
Punkte für Reaktionen
0
Punkte
42
aber es passiert nichts! Ich habe 1 Minute zum Testen eingestellt, damit ich nicht 15 Minuten oder gar noch länger warten muss.

Prüft denn dein Script ob bereits ein getmail läuft? Wenn nein, dann hast du dann ziemlich bald etliche getmails am laufen und die DS geht in die Knie.

Das Script ruft nur die drei .rc auf. Kein Test
Rich (BBCode):
#!bin/sh
/opt/bin/getmail -q -l --getmaildir /volume1/homes/MailTest/.getmail -r test_gmx.rc
/opt/bin/getmail -q -l --getmaildir /volume1/homes/MailTest/.getmail -r account1.rc
/opt/bin/getmail -q -l --getmaildir /volume1/homes/MailTest/.getmail -r account2.rc

Edit:
Der /opt/sbin/cron ist doch der System-Cron und nicht der ipkg-Crond, oder?
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
1. Der sheBang Pfad ist falsch. Sollte #!/bin/sh heissen
2. Sei froh das das Script nicht gestartet ist. So wie es da steht hättest du die DS wahrscheinlich ausgeknipst ;)

Zu 2:
Das getmail Script MUSS prüfen ob nicht noch ein getmail Script läuft. Wenn das Abholen der Mails mal länger als 1 Minute dauert wird erneut das Script angeworfen. Und das geht ins Auge
Das könntest du z.B. so verhindern
Code:
#!/bin/sh
if [ -e /tmp/getmail ]; then
 exit
fi
touch /tmp/getmail
/opt/bin/getmail -q -l --getmaildir /volume1/homes/MailTest/.getmail -r test_gmx.rc
/opt/bin/getmail -q -l --getmaildir /volume1/homes/MailTest/.getmail -r account1.rc
/opt/bin/getmail -q -l --getmaildir /volume1/homes/MailTest/.getmail -r account2.rc
rm /tmp/getmail

p.s. alles unter /opt ist ipkg
 
Zuletzt bearbeitet:

sowosamma

Benutzer
Mitglied seit
16. Jun 2009
Beiträge
565
Punkte für Reaktionen
0
Punkte
42
danke, hab das getmail.sh geändert
Rich (BBCode):
DS109plus> cat /volume1/homes/MailTest/getmail.sh 
#!/bin/sh
if [ -e /tmp/getmail ]; then
 exit
fi
touch /tmp/getmail
/opt/bin/getmail -q -l --getmaildir /volume1/homes/MailTest/.getmail -r test_gmx.rc
/opt/bin/getmail -q -l --getmaildir /volume1/homes/MailTest/.getmail -r account1.rc
/opt/bin/getmail -q -l --getmaildir /volume1/homes/MailTest/.getmail -r account2.rc
rm /tmp/getmail

Anschließend
DS109plus> killall cron
DS109plus> ps | grep cron
DS109plus> /opt/etc/init.d/S10cron start
DS109plus> ps | grep cron
8832 root 624 S /opt/sbin/cron

aber es kommen keine Emails bzw. es steht nichts im log bei getmail
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
aber es kommen keine Emails bzw. es steht nichts im log bei getmail
Wo genau hast du geschaut? getmail schreibt nicht in /var/log/messages Der verwendet eigene Logs, die in den rc Files festgelegt werden können.

Ich sehe gerade das dein Cronjob nicht sehr viel Sinn macht. Der User root sollte dort nicht drin sein, denn du führst den Job ja unter MailTest aus. Du brauchst auch kein su. Einfach das Kommando sollte reichen. Der Prozess wird automatisch unter deinem MailTest gestartet, denn auf den lauten ja die Rechte an der Datei
 

sowosamma

Benutzer
Mitglied seit
16. Jun 2009
Beiträge
565
Punkte für Reaktionen
0
Punkte
42
ich meine das log welches ich in den rc-files festgelegt habe
=> /volume1/homes/MailTest/.getmail/log

habe das crontab geändert auf
Rich (BBCode):
DS109plus> cat /opt/var/cron/crontabs/MailTest 
*/1	*	*	*	*	/volume1/homes/MailTest/getmail.sh

und den cron neu gestartet. und siehe da. Es funktioniert!!! :D Super, vielen Dank!

Jetzt noch ein Zuckerl zum Schluß. Ich möchte den cron gerne zwischen 5:30 und 23:00 alle 15 Minuten. geht sowas? Somit könnten die Platten nachts auch schlafen gehen, oder?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Jetzt noch ein Zuckerl zum Schluß. Ich möchte den cron gerne zwischen 5:30 und 23:00 alle 15 Minuten. geht sowas? Somit könnten die Platten nachts auch schlafen gehen, oder?
Code:
[FONT=monospace]
[/FONT]*/15 23	*	*	*	/volume1/homes/MailTest/getmail.sh
*/15 0-5	*	*	*	/volume1/homes/MailTest/getmail.sh
*/1 6-22	*	*	*	/volume1/homes/MailTest/getmail.sh
 

sowosamma

Benutzer
Mitglied seit
16. Jun 2009
Beiträge
565
Punkte für Reaktionen
0
Punkte
42
ahh, ich glaub ich hab's verstanden. :eek:

Rich (BBCode):
30,45	5	*	*	*	/volume1/homes/MailTest/getmail.sh
*/15	6-22	*	*	*	/volume1/homes/MailTest/getmail.sh
0	23	*	*	*	/volume1/homes/MailTest/getmail.sh

Der erste cron wird um 5:30 und 5:45 ausgeführt. Der zweite zwischen 6:00 und 22:45 jede 15 Minuten. Und der letzte um 23:00 einmalig. Bin ich jetzt Linux-Profi :D

Vielen Dank nochmal für die super Unterstützung!!!

/Andi
 
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