FS#12910 - [dcron] No syslog for dcron

Attached to Project: Arch Linux
Opened by Kaiting Chen (Phoenixfire159) - Friday, 23 January 2009, 17:08 GMT
Last edited by Paul Mattal (paul) - Monday, 25 January 2010, 13:36 GMT
Task Type Feature Request
Category Packages: Core
Status Closed
Assigned To Tobias Powalowski (tpowa)
Jan de Groot (JGC)
Pierre Schmitz (Pierre)
Aaron Griffin (phrakture)
Thomas Bächler (brain0)
Dan McGee (toofishes)
Architecture All
Severity High
Priority Normal
Reported Version None
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description: By default Arch Linux installs dcron as the cron daemon, and it is also the only supported cron available. dcron does not support logging via syslog, while 'cron' is one of the core facilities of syslog. Every other cron supports logging via syslog, including the more standard vixie-cron.

Recommend change default cron to vixie-cron.
This task depends upon

This task blocks these from closing
 FS#16085 - [dcron] Replace with bcron 
Closed by  Paul Mattal (paul)
Monday, 25 January 2010, 13:36 GMT
Reason for closing:  Fixed
Additional comments about closing:  We chose to upgrade to the dcron 4.x series which supports syslog logging.
Comment by Aaron Griffin (phrakture) - Friday, 23 January 2009, 17:42 GMT
Assigning to a bunch of people here. We should *really* consider changing our cron to something a little better. I've run into a few "ugh" moments with dcron.

What options do we have? vixie-cron? fcron? Suggestions?
Comment by Kaiting Chen (Phoenixfire159) - Friday, 23 January 2009, 18:49 GMT
Vixie-cron is the default for most distributions.
Comment by Thomas Bächler (brain0) - Friday, 23 January 2009, 18:54 GMT
I've been using fcron for years on LFS, and I've been using it on Arch for years now as well.

fcron supports the standard crontab format, and more. The only thing I changed from Arch's crontab is to add fcron's &bootrun flag to the cron.{hourly,daily,weekly,monthly} rules. This has a very good effect for a non always-on machine: If you boot the machine it will run each cronjobs that it missed (but only once). Without this, my desktop didn't updatedb (I always shut it down before midnight back then) and several other things were broken.

fcron is stable as hell, flexible and can be used with the same default settings as we use dcron. Check out the fcron package from community (I originally created it, it has been updated once or twice since I left the TU team) and read the docs.

Download Size : 123.92 K
Installed Size : 319.47 K
This is considerably larger than dcron, I hope this is not a showstopper.
Comment by Kaiting Chen (Phoenixfire159) - Friday, 23 January 2009, 19:00 GMT
While fcron is very useful, it's too complex to be the default. By default Arch doesn't even install an MTA. Installing a cron that functions as both cron and anacron + more as default seems against the Arch way.
Comment by Thomas Bächler (brain0) - Friday, 23 January 2009, 19:08 GMT
I don't think it is complex at all.

1) I use it without an MTA.
2) You can install the package and it works, and in the default configuration, it doesn't do anything more than dcron (or vixie)

Can you tell me what exactly is complex about fcron? Another point in favor of fcron: We already have a working and well-tested package for that in community, while there is none for vixie (yay, people must be so interested in it).
Comment by Kaiting Chen (Phoenixfire159) - Saturday, 24 January 2009, 19:49 GMT
Well, according to the fcron page, http://fcron.free.fr/description.php, "fcron does both the job of Vixie Cron and anacron, but does even more and better". I'm sure a lot of people would appreciate this, but I'm running this on a server. I don't need (or want) it to do "both the job of Vixie Cron and anacron, but does even more and better", I just need it to do cron. fcron documentation is significantly longer than vixie's as well. If fcron is made the default, I feel like vixie-cron should also be offered in the package tree (and not just in AUR).
Comment by Dan McGee (toofishes) - Saturday, 24 January 2009, 19:55 GMT
+1 for fcron. The complexity doesn't get in the way if you don't want it to, I've used it on my machine for years, and it makes a lot more sense when a computer is not on 24/7. I agree with just about everything Thomas says, and the fcron package in community already adds the &bootrun flag- we could pretty much pull this in as-is and things would work.

I'd rather offer one good cron implementation than 4 of varying feature levels- we shouldn't support more than we need to.
Comment by Thomas Bächler (brain0) - Saturday, 24 January 2009, 19:58 GMT
This is no problem: If you just use the same crontab as we use in dcron, nothing will change (except that it will use syslog).

To use the "much much more" features you have to add non-standard options to crontab. As I explained before, the &bootrun flag will trigger the anacron-like features (I don't think it makes sense to have an extra application for that). All other extra features have similar custom flags. A "standard" crontab will only trigger the standard features.

I still vote for fcron, but I hope there will be more opinions on it than just mine and yours.
Comment by Aaron Griffin (phrakture) - Saturday, 24 January 2009, 23:18 GMT
In the interest of being fair, here, @Kaiting: what would the detriments be to using fcron on your server, besides the percieved added complexity? Just because some documentation says "it does much more" doesn't mean it's going to increase server load or something of the sort
Comment by Kaiting Chen (Phoenixfire159) - Saturday, 24 January 2009, 23:43 GMT
Probably none, but I'm a minimalist and I've always thought of Arch as a minimalist distribution as well (it doesn't even ship an MTA!). So I suppose I would feel more comfortable if Arch offered something very simple and minimal as its default cron. I mean, honestly if fcron was the default I would probably use it and I wouldn't care, but from the content on this page, http://wiki.archlinux.org/index.php/The_Arch_Way, I somehow feel as if that would be wrong...

Anyways, no matter what cron was offered, it would probably be better than dcron, so it's not a huge deal.
Comment by Aaron Griffin (phrakture) - Saturday, 24 January 2009, 23:54 GMT
Well, for the record: We ship dcron BECAUSE it is minimal. I seem to recall that being the original decision - finding the most minimal cron we could This bug report proves that that's not good enough for all cases.
Comment by Ralf Schmitt (schmir) - Tuesday, 03 March 2009, 12:36 GMT
it also fails to parse complete email addresses in MAILTO= lines.

/var/log/crond says:
03-Mar-2009 13:28 failed user root parsing MAILTO=cron@example.com

so, that minimal dcron forces me to have a full blown MTA on that machine, cause my minimal MTA ssmtp can't handle aliases...
Comment by Pierre Schmitz (Pierre) - Wednesday, 18 March 2009, 06:44 GMT
No idea what's the status is here, but fcron seems to be a good idea to me. dcron is often way to minimal.
Comment by (MajorTom) - Tuesday, 24 March 2009, 05:25 GMT
Any decisions made yet?
Comment by Roy Zuo (roylez) - Saturday, 30 May 2009, 13:11 GMT
Although I am using fcron, it is good to have Vixie-cron as default. First of all, it is the de facto standard; second, there is no proper vim syntax file for fcron :P.
Comment by Patrick (patrickhaller) - Saturday, 04 July 2009, 15:39 GMT
How about using syslog-ng's pipe() construct? Instead of /etc/rc.d/crond's
/usr/sbin/crond >> /var/log/crond

use something like:
[ ! -p /var/lib/cron.pipe ] && mknod /var/lib/cron.pipe p
/usr/sbin/crond >> /var/lib/cron.pipe

then use pipe(/var/lib/cron.pipe) as a source for syslog-ng.
Comment by Kaiting Chen (Phoenixfire159) - Monday, 23 November 2009, 00:27 GMT
This would work for anyone on syslog-ng but that is not the only logger available. I imagine a number of people are still on sysklogd and personally I use metalog which does not provide such a construct.
Comment by Paul Mattal (paul) - Monday, 04 January 2010, 02:56 GMT
After further research, I recommend bcron as the new option.

Full rationale in mailing list thread:

http://mailman.archlinux.org/pipermail/arch-dev-public/2010-January/014781.html

On/after 1/10, I will package bcron in [extra], and if my longer tests confirm it's a suitable replacement, I will suggest to tpowa that it replace dcron in [core].

Loading...