I love SUSE but I can't stand the way it implements cron.
Instead of using the usual /etc/crontab file to schedule cron.daily, weekly etc, it creates files in /var/spool/cron/lastrun and uses the file dates to schedule it's next run.
And it's completely arbitrary as to when things run. If you create something in cron.weekly, it will execute it immediately and then continue to execute it at that same time every week.
That doesn't sound so bad until you realize it uses the change timestamp, not the modify or access timestamp.
And I'll give you one guess which timestamp you can't manually override with touch? You guessed it, it's the change timestamp.
So if you want to change your scripts so that they run next Sunday at 4am, you have to change your system clock back to last Sunday and "touch" the files.
I'm really hoping someone has a better solution than this...
touch -m lets you change the mtime...
touch -m -t 06010000 foo
Sean
On Fri, Jun 13, 2008 at 12:00 PM, John Lange john@johnlange.ca wrote:
I love SUSE but I can't stand the way it implements cron.
Instead of using the usual /etc/crontab file to schedule cron.daily, weekly etc, it creates files in /var/spool/cron/lastrun and uses the file dates to schedule it's next run.
And it's completely arbitrary as to when things run. If you create something in cron.weekly, it will execute it immediately and then continue to execute it at that same time every week.
That doesn't sound so bad until you realize it uses the change timestamp, not the modify or access timestamp.
And I'll give you one guess which timestamp you can't manually override with touch? You guessed it, it's the change timestamp.
So if you want to change your scripts so that they run next Sunday at 4am, you have to change your system clock back to last Sunday and "touch" the files.
I'm really hoping someone has a better solution than this...
-- John Lange www.johnlange.ca
Roundtable mailing list Roundtable@muug.mb.ca http://www.muug.mb.ca/mailman/listinfo/roundtable
There seems to be a tidy solution in example 22-2 here:
http://www.linuxtopia.org/online_books/suse_linux_guides/SLES10/suse_enterpr...
It just removes the relevant time stamp file 1 minute before the time you actually want the job to run. It'll still run the jobs when the system starts up, much like anacron does with these jobs on Fedora/RHEL/Ubuntu/Debian systems, but after that they should run at the times you want.
On 06/13/2008 12:00 PM, John Lange wrote:
I love SUSE but I can't stand the way it implements cron.
Instead of using the usual /etc/crontab file to schedule cron.daily, weekly etc, it creates files in /var/spool/cron/lastrun and uses the file dates to schedule it's next run.
And it's completely arbitrary as to when things run. If you create something in cron.weekly, it will execute it immediately and then continue to execute it at that same time every week.
That doesn't sound so bad until you realize it uses the change timestamp, not the modify or access timestamp.
And I'll give you one guess which timestamp you can't manually override with touch? You guessed it, it's the change timestamp.
So if you want to change your scripts so that they run next Sunday at 4am, you have to change your system clock back to last Sunday and "touch" the files.
I'm really hoping someone has a better solution than this...
That is an excellent solution.
Thanks Gilles! - John Lange www.johnlange.ca
On Fri, 2008-06-13 at 13:07 -0500, Gilles Detillieux wrote:
There seems to be a tidy solution in example 22-2 here:
http://www.linuxtopia.org/online_books/suse_linux_guides/SLES10/suse_enterpr...
It just removes the relevant time stamp file 1 minute before the time you actually want the job to run. It'll still run the jobs when the system starts up, much like anacron does with these jobs on Fedora/RHEL/Ubuntu/Debian systems, but after that they should run at the times you want.
On 06/13/2008 12:00 PM, John Lange wrote:
I love SUSE but I can't stand the way it implements cron.
Instead of using the usual /etc/crontab file to schedule cron.daily, weekly etc, it creates files in /var/spool/cron/lastrun and uses the file dates to schedule it's next run.
And it's completely arbitrary as to when things run. If you create something in cron.weekly, it will execute it immediately and then continue to execute it at that same time every week.
That doesn't sound so bad until you realize it uses the change timestamp, not the modify or access timestamp.
And I'll give you one guess which timestamp you can't manually override with touch? You guessed it, it's the change timestamp.
So if you want to change your scripts so that they run next Sunday at 4am, you have to change your system clock back to last Sunday and "touch" the files.
I'm really hoping someone has a better solution than this...