Sie sind nicht angemeldet.

[erledigt] cron und anacron

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

20.11.2010, 10:55

cron und anacron

Hallo Forum

Ich benütze Vixie-cron zusammen mit Anacron. Die Cronjobs in Vixie-cron laufen einwandfrei (evt. bis auf Anacron). Hier ist die Ausgabe meiner crontab -l

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
localhost home # crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.XXXXulm4tl installed on Fri Nov 19 14:13:03 2010)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
0	19	*	*	*	/usr/bin/emerge --sync
0	16	* 	* 	0	/usr/local/bin/rsnapshot weekly
0 	18 	1 	* 	*   	/usr/local/bin/rsnapshot monthly
0	20	1	1	*	/usr/local/bin/rsnapshot yearly
15	10	*	*	*	/usr/sbin/anacron -s
59	*  	* 	* 	*  	root	rm -f /var/spool/cron/lastrun/cron.hourly
9  	3 	* 	* 	*   	root	rm -f /var/spool/cron/lastrun/cron.daily
19 	4 	* 	* 	6		root	rm -f /var/spool/cron/lastrun/cron.weekly
29 	5  	1 	* 	* 		root	rm -f /var/spool/cron/lastrun/cron.monthly
*/10  	*  	* 	* 	*  	root	test -x /usr/sbin/run-crons && /usr/sbin/run-crons


und hier die Ausgabe von anacrontab:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
HELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# format: period delay job-identifier command
##
## If you turn any of the following on, make sure that the
## regular cron daemon does not run them also. This could
## lead to double execution of the jobs.
1   	5   	cron.daily          	run-parts /etc/cron.daily
1   	5   	emerge-sync         	/usr/bin/emerge --sync
7   	10  	rsnapshot.weekly    	/usr/bin/rsnapshot weekly
30  	15  	rsnapshot.monthly   	/usr/bin/rsnapshot monthly
365 	50  	rsnapshot.yearly    	/usr/bin/rsnapshot yearly


Des Weiteren nütze ich logrotate, was auch automatisch in /etc/cron.daily hinzugefügt wurde:

Quellcode

1
2
3
4
5
localhost home # ls -l /etc/cron.daily/
total 8
-rwxr-xr-x 1 root root  52 Nov 15 14:37 logrotate.cron
-rwxr-xr-x 1 root root 115 Oct 21 10:52 makewhatis
localhost home #
Eigentlich sollte ich, wenn alles richtig funktionieren würde, in /var/log/ verschiedenste messages sehen. Bei mir ist aber immer noch nur eines vorhanden! Ich muss dazu sagen, dass ich noch einige Logdateien in /etc/logrotate.d/syslog-ng hinzugefügt habe. (nach diesem Artikel )
Grundsätzlich gibt es ja diese System crontab. Damit werden die Skripte in /etc/cron.X ausgeführt.Für diesen Fall wäre ja eigentlich nur .daily wichtig. In meiner crontab sollten ja die untersten 5 Zeilen dies ausführen(.hourly, .daily, .weekly, .monthly). Anscheinend passiert da aber nichts! Des Weiteren habe ich in /etc/anacrontab eine Zeile eingefügt für den daily System crontab. D.h. auch wenn mein Computer nicht läuft, sollte er diese Skripte doch ausführen sobald er eingeschaltet wird. Ich bin mir jetzt nicht sicher, ob der Fehler bei Anacron oder wo anders liegt. Jedenfalls wäre ich froh, wenn mir jemand sagen könnte, wo mein Denkfehler/Fehler liegt. Wie immer danke ich bereits im Voraus!

Gruss

nutshell4

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »nutshell4« (26.11.2010, 10:24)


2

21.11.2010, 22:42

Hallo @nutshell4

Ich benutze Anacron nicht. Aber um Syntaxfehler und so ein Zeugs zu vermeiden greife ich immer wieder gerne auf Webmin zurück. Das Teil schreibt für dich sämtliche Dinge in die Konsole. Und bis jetzt bin ich damit wirklich sehr zufrieden. Kannst es ja mal testen.

lg
boospy
Gentoo Can Do!

Wiki auf: http://deepdoc.at

3

22.11.2010, 07:31

OT:

Zitat

Vixie-cron zusammen mit Anacron
Verzeih, das klingt irgendwie lustig. Was kannst du denn mit dem Vixi-Cron nicht lösen, daß du unbedingt noch den Anacron an Board hast (bzw. Visa-verca)? Wenn du 2 cron-dienste laufen hast, ist ... puh ... einer irgendwie umsonst. Oder siehst du das eher sportlich?

Zitat

Eigentlich sollte ich, wenn alles richtig funktionieren würde, in /var/log/ verschiedenste messages sehen. Bei mir ist aber immer noch nur eines vorhanden! Ich muss dazu sagen, dass ich noch einige Logdateien in /etc/logrotate.d/syslog-ng hinzugefügt habe.


Ist das jetzt ein 2 Thread und anderes Thema? Ich denk schon. Jedenfalls: was hast du denn konkret gesetzt, was erwartest du und was passirt nicht. Vor allem die syslog-ng conf Dateien wären gut als Attachment.
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

4

22.11.2010, 11:06

Zitat


Vixie-cron zusammen mit Anacron
So wie ich das verstanden habe, ist Anacron selbst ja kein Cron-Daemon. Deshalb gibt es ja auch einen Cron-Job in meiner Crontab von Vixie-Cron, welcher Anacron aufruft. Ich brauche es, da mein Computer nicht die ganze Zeit läuft. Meine Jobs, vor allem Backup mit rsnapshot, werden nicht allzu häufig durchgeführt (ausreichend für mich). Daher ist es aber wichtig, wenn mein Computer einmal nicht läuft, dass dieses Backup nachgeholt wird. Für dies verwende ich Anacron. Laut Gentoo-Handbook ist Anacron genau für solche Aufgaben gedacht.

Zitat

Ist das jetzt ein 2 Thread und anderes Thema? Ich denk schon. Jedenfalls: was hast du denn konkret gesetzt, was erwartest du und was passirt nicht. Vor allem die syslog-ng conf Dateien wären gut als Attachment.
Eigentlich nicht: Mein Problem ist, dass meine /var/log relativ gross ist. Ich habe dieses Problem auch hier im Forum gepostet. Deshalb wurde mir zu logrotate geraten.
Logrotate fügt automatisch bei der Installation ein Skript zu cron.daily hinzu. Das ganze hängt also mittels Cron/Anacron zusammen, weil:

  1. Eigentlich sollte mein Vixie-Cron die System-Crontab automatisch starten (eben diese untersten 5. Zeilen in meiner Crontab.)
  2. Zur Sicherheit habe ich aber auch hier eine Zeile in Anacron hinzugefügt, welche die täglichen Cron-Jobs (cron.daily) ausführen sollte, falls sie länger als einen Tag nicht mehr ausgeführt wurden.
Wenn logrotate korrekt funktioniert, sollten definierte Logdateinen rotiert, kompremiert resp. entfernt werden (nach gewisser Zeit). Wie ich gelesen habe, legen etliche Programme selbst Konfigurationsdatein unter /etc/logrotate.d an.
Da dies nicht alle Programme tun, kann man die gewünschten Logdeiten einfach in einer anderen Konfigurationsdatei in /etc/logrotate.d hinzufügen. Ich habe dies in der syslog-ng Konfigurationsdatei getan, welche ich angehängt habe. Dort stehen in der ersten nicht kommentierten Zeile die Logdateien, welche ich von logrotate erfasst haben möchte. Z.b. steht dort /var/log/messages. Wenn logrotate und damit zusammen mit Cron richtig funktionieren würde, sollte ich also in /var/log/messages verschiedenste Einträge sehen, die wie folgt aussehen:

Quellcode

1
2
3
4
5
$ls /var/log/messages*
/var/log/messages
/var/log/messages-20050510.gz
/var/log/messages-20050629.gz
.....


Bei mir sind aber keine .gz files vorhanden.
So ich hoffe nun ist mein Problem besser verständlich erklärt.

Gruss

nutshell4
»nutshell4« hat folgende Datei angehängt:
  • syslog-ng.txt (436 Byte - 5 mal heruntergeladen - zuletzt: 30.06.2011, 01:11)

5

24.11.2010, 09:24

Nun, ich sehe es schon als 2 Threads:

a) funkt mein logrotate überhaupt
b) was ist mit meinem cron los.

Ad a) Läuft ein out-of-cron logrotate problemlos?

Quellcode

1
# logrotate -dfv /etc/logrotate.conf


Ad b) Läuft ein out-of-cron anacron problemlos?

Dein syslog-ng für logrotate sieht für mich auf den ersten Blick eigentlich ok aus ...
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

6

24.11.2010, 09:45

Hallo dyle

Zitat

Nun, ich sehe es schon als 2 Threads:
Ich nehme es mir zu Herzen :) und werde nächstes mal zwei Threads eröffnen.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
localhost home # logrotate -dfv /etc/logrotate.conf
reading config file /etc/logrotate.conf
including /etc/logrotate.d
reading config file elog-save-summary
reading config info for /var/log/portage/elog/summary.log 
reading config file rsyncd
reading config info for /var/log/rsync.log 
reading config file syslog-ng
reading config info for /var/log/messages /var/log/emerge.log /var/log/gdm.log /var/log/xdm.log /var/log/ConsoleKit/history 
reading config info for /var/log/wtmp 
reading config info for /var/log/btmp 

Handling 5 logs

rotating pattern: /var/log/portage/elog/summary.log  forced from command line (4 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/portage/elog/summary.log
  log needs rotating
rotating log /var/log/portage/elog/summary.log, log->rotateCount is 4
dateext suffix '-20101124'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
compressing log with: /bin/gzip
glob finding old rotated logs failed
renaming /var/log/portage/elog/summary.log to /var/log/portage/elog/summary.log-20101124

rotating pattern: /var/log/rsync.log  forced from command line (7 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/rsync.log
  log /var/log/rsync.log does not exist -- skipping

rotating pattern: /var/log/messages /var/log/emerge.log /var/log/gdm.log /var/log/xdm.log /var/log/ConsoleKit/history  forced from command line (4 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/messages
  log needs rotating
considering log /var/log/emerge.log
  log needs rotating
considering log /var/log/gdm.log
  log /var/log/gdm.log does not exist -- skipping
considering log /var/log/xdm.log
  log /var/log/xdm.log does not exist -- skipping
considering log /var/log/ConsoleKit/history
  log needs rotating
rotating log /var/log/messages, log->rotateCount is 4
dateext suffix '-20101124'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
rotating log /var/log/emerge.log, log->rotateCount is 4
dateext suffix '-20101124'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
rotating log /var/log/ConsoleKit/history, log->rotateCount is 4
dateext suffix '-20101124'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/messages to /var/log/messages-20101124
creating new /var/log/messages mode = 0600 uid = 0 gid = 0
renaming /var/log/emerge.log to /var/log/emerge.log-20101124
creating new /var/log/emerge.log mode = 0660 uid = 250 gid = 250
renaming /var/log/ConsoleKit/history to /var/log/ConsoleKit/history-20101124
creating new /var/log/ConsoleKit/history mode = 0644 uid = 0 gid = 0
running postrotate script
running script with arg /var/log/messages /var/log/emerge.log /var/log/gdm.log /var/log/xdm.log /var/log/ConsoleKit/history : "
    	/etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
"
compressing log with: /bin/gzip
compressing log with: /bin/gzip
compressing log with: /bin/gzip

rotating pattern: /var/log/wtmp  forced from command line (1 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/wtmp
  log needs rotating
rotating log /var/log/wtmp, log->rotateCount is 1
dateext suffix '-20101124'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
renaming /var/log/wtmp to /var/log/wtmp-20101124
creating new /var/log/wtmp mode = 0664 uid = 0 gid = 406
compressing log with: /bin/gzip

rotating pattern: /var/log/btmp  forced from command line (1 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/btmp
  log /var/log/btmp does not exist -- skipping
localhost home # ls -l /var/log/me*
-rw------- 1 root root  9141918 Nov 24 09:20 /var/log/messages
-rw------- 1 root root 48462808 Nov 23 08:05 /var/log/messages-20101123.gz
localhost home #

Wie ich sehe, muss ich noch einige Files anpassen. Also wird das Problem bei Anacron liegen.
Cron/Anacron funktioniert grundsätzlich, sonst würde mein Backup nicht laufen. Ich vermute, dass es an den Einträgen zu logrotate in der crontab resp. anacrontab liegen.

Gruss

nutshell4

7

24.11.2010, 11:31

Sehe ich auch so ... allerdings bin ich kein Anacron-User und da wird sich mein Support ab nun ein wenig zurückhalten. =)

Allerdings: wie kommt es denn zu diesen Zeilen in deiner User-Crontab:

Quellcode

1
2
3
4
5
9	*  	* 	* 	*  	root	rm -f /var/spool/cron/lastrun/cron.hourly
9  	3 	* 	* 	*   	root	rm -f /var/spool/cron/lastrun/cron.daily
19 	4 	* 	* 	6		root	rm -f /var/spool/cron/lastrun/cron.weekly
29 	5  	1 	* 	* 		root	rm -f /var/spool/cron/lastrun/cron.monthly
*/10  	*  	* 	* 	*  	root	test -x /usr/sbin/run-crons && /usr/sbin/run-crons


Was ist die Idee?
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

8

24.11.2010, 16:06

Vorneweg: Es kann gut sein, dass ich mich irre. Aber grundsätzlich gibt es ja zwei unterschiedliche crontab's. Die user crontab und dann noch eine system-crontab. Die System-crontab greift auf /etc/cron.{daily,weekly,monthly} zurück(resp. führt diese Skripte aus) so weit ich dies verstanden haben. Die system-crontab befindet sich in /etc/crontab.
Wird diese crontab automatisch ausgeführt? Ich habe, aus genau diesem Grund, die Zeilen in /etc/crontab in meine usercrontab kopiert. Das sind die 5 Zeilen die du ansprichst. Sie sollten die Skripte in /etc/cron.{daily, weekly, monthly} ausführen und in /etc/cron.daily/ liegt genau meine logrotate.cron.
Anacron kommt hier ja noch gar nicht ins Spiel. Vixie-cron sollte ja eigentlich logrotate ausführen (anacron dient nur dazu, wenn mein Computer einmal nicht läuft).


Gruss

nutshell4

ps: das würde mich interessieren: werden die cron-Jobs in der System-crontab automatisch ausgeführt, oder sollte man diese in eine user-crontab kopieren?


EDIT: Die letzten 5 Zeilen meiner usercrontab waren natürlich absoluter Blödsinn. Hier die korrigierte Variante:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
localhost home # crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.XXXXD9Yo7g installed on Wed Nov 24 18:41:01 2010)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
0	19	*	*	*	/usr/bin/emerge --sync
0	16	* 	* 	0	/usr/local/bin/rsnapshot weekly
0 	18 	1 	* 	*   	/usr/local/bin/rsnapshot monthly
0	20	1	1	*	/usr/local/bin/rsnapshot yearly
15	10	*	*	*	/usr/sbin/anacron -s

localhost home #

Meine Frage bleibt aber: Logrotate sollte ja mittels der system-crontab aufgerufen werden. Aus irgendeinem Grund geschieht dies aber nicht.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »nutshell4« (24.11.2010, 18:48)


9

25.11.2010, 07:57

Also AFAIK werden die System-Crontabs ganz ohne weiters zutun ausgeführt. Sollte ja auch so sein. Ich habe selbst meine Cronjobs laufen und meine User-Crontabs sind alle leer ...

Aber das Löschen der Timestamps verstehe ich nicht ganz. auch erscheint mir die Syntax nicht ganz korrekt.
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

10

25.11.2010, 08:46

Die Zeilen 5 Zeilen waren in meiner System-crontab bereits aufgelistet, allerdings als Kommentar markiert. Was würdest du sagen, was nicht stimmt?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »nutshell4« (25.11.2010, 08:57)


11

25.11.2010, 11:20

Sorry ... dein

Zitat

EDIT: Die letzten 5 Zeilen meiner usercrontab waren natürlich absoluter Blödsinn. Hier die korrigierte Variante:
habe ich nicht erlesen.
Das passt schon so.

Hm, ... gibt es vlt. irgendwelche Einträge von "cron" in der /var/log/messages? Oder hat vlt. dir vixie-cron mit Problemen eine email geschickt und diese ist nun bei dir als /root/dead.letter zu finden?
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

12

25.11.2010, 13:45

Hier ist mal ein Output von /var/log/messages

Quellcode

1
2
3
4
5
6
Nov 25 13:00:01 localhost cron[6131]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Nov 25 13:10:01 localhost cron[6155]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Nov 25 13:20:01 localhost cron[6179]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Nov 25 13:30:01 localhost cron[6202]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Nov 25 13:40:01 localhost cron[6256]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
localhost home #


Das bedeutete doch, dass das eigentlich alles gut geht nicht?

In /root/dead.letter steht so einiges drin, aber nichts betreffend cron.

13

26.11.2010, 08:03

Sieht an sich gut aus ...

Hm, du könntest ja dein /etc/cron.daily/logrotate.cron modifizieren und vor dem Aufruf von /usr/sbin/logrotate ein

Quellcode

1
date >> /var/log/mein_logrotate_cron_aufruf.log
einbauen. So wie ich das sehe, ist es ja noch nicht klar, ob das Teil tatsächlich auch gestartet wird, oder?
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

14

26.11.2010, 10:23

Als ich logrotate -dfv /etc/logrotate.conf aufgerufen habe, lief es ja durch. Logrotate soll das ganze ja wöchentlich rotieren, d.h. ich werde jetzt einmal eine Woche warten. Dann sehe ich ob es auch mittels Cron funktioniert. Ansonsten melde ich mich wieder. Ich danke dir aber für deine Hilfe! Ich hoffe, dass das ganze auch mit Cron läuft :)

Gruss

nutshell4

Ähnliche Themen