June 16, 2002
Scheduling Solutions
After a brush with death with my company's support database this month, I decided it was time
to have the database automatically backed up each night. After digging through the MySQL
documentation, I was able to find the command I needed to run, but I was left to my own devices
to find a method to have this command executed each night.
RSched 1.6
A visit to hobbes (http://hobbes.nmsu.edu) netted me
RSCHED16A4.ZIP (ftp://hobbes.nmsu.edu/pub/os2/util/schedule/rsched16a4.zip"). This is a VIO
scheduler and it sounded like it would fit the bill. I got it set up, and discovered it works exactly as
advertised except for one thing: it accesses the disk to check for changes to its list of scheduled
tasks every second. That means that the drive can never go to sleep, clearly unacceptable on a system
that runs 24x7. I was able to increase the delay to access the disk, but the documentation warns
that if you do this that it might miss events (Ack!) In any case, the delay can be increased only up to 999 seconds (16
minutes) so the drive wasn't going to be able to go to sleep with this program running. In the end, while I
liked the simple user interface and the extensive job control options, I had to look for something else.
PM Cron Daemon
My next try at hobbes, I decided to try something with UNIX history, since I've long known of UNIX's
propensity for automating tasks. This netted me
pmcron03.zip (ftp://hobbes.nmsu.edu/pub/os2/util/schedule/pmcron03.zip").
When PM Cron Daemon runs, it displays as a small PM window with information on when the next CRON job
will be executed. The nice thing here is that it figures out when the job is going to run, and then
sleeps until then.
When you want to set up jobs to be run automatically, or to change settings, the settings are integrated
with the daemon program, so you don't have to restart like you do with many other servers. Actually
setting the program to run jobs at a given time is where the program shows its UNIX roots. You have
to enter a command line of sorts in a given format to get Cron to run the job when you want it to.
This isn't difficult, but a couple of text boxes with labels would have made it much easier.
Cron Command Format
The format of a Cron command is
[flags] times command
-
Where [flags] can be Once to indicate that the job is to be done only once, and then deleted from
the crontab file (where these commands are stored by the Cron Daemon.)
- Times consists of 5 entries, each of them must pass the time check to run the command. They are:
Minutes - the minute within an hour that the job should start (0-59).
Hours - the hour of the day that the job should start (0-23).
Month day - the day of the month the job should run (0-31). Note, while Feb 31 is a valid entry, don't expect it to actually ever run.
Month - the month the job should run (1-12).
Day of the week - the day of the week the job should run (0-6 - where 0 is Sunday).
There are three special times that can replace the 5 time entries: cronstart - run job when cron
daemon is started, cronstop - run job when cron daemon is stopped, daily - run the job once a day at
the first possible time.
If you don't want to specify one of the five fields, put * instead of the number.
- The command can be any possible OS/2 command. You can append >nul 2>&1 to the command line
to have output from the command suppressed. You can also have the output routed to a file, and the
cron daemon has facilities for managing those files.
Examples
To have e:\backup.cmd run every day at 3:15am, use the following command:
15 3 * * * cmd.exe /ce:\backup.cmd >nul 2>&1
To have c:\yourapp.exe run on the first and 15th of each month, use the following commands:
* * 1 * * c:\yourapp.exe >nul 2>&1
* * 15 * * c:\yourapp.exe >nul 2>&1
To have c:\thisapp.exe run every Friday at 6:00pm, use the following command:
0 18 * * 5 c:\thisapp.exe >nul 2>&1
Summary
As you can see, PM Cron Daemon is quite easy to use, and has proven most reliable in my use. The program
is available in both English and German, comes with extensive online help, and is GPL licensed. If you're
looking for a scheduling solution, this is one to try. If you speak other languages, the author is looking
for people to do translations. See the included readme file for details.
Robert Basler is the president of
Aurora Systems, Inc. (http://www.aurora-systems.com)
and has been a dedicated OS/2 user since he tired of rebooting Windows 3.1 twenty times a day.
He spends what free time he can manage travelling the world. Photo was taken at Franz Josef
glacier, New Zealand.
This article is courtesy of www.os2ezine.com. You can view
it online at http://www.os2ezine.com/20020616/page_4.html.
Copyright (C) 2002. All Rights Reserved.