recurring run of sh script in crontab

Hello gurus.

I have a problem: my crontab -e is looks like this:

ORACLE_SID=bla-bla

  • 21 * * * (sqlplus hotback/hotback @/oracle/backups/bla-bla/scripts/hotback/daily_hotback.sql)
    0 19 * * * /oracle/backups/dev10g/scripts/exports/daily_exports.sh
    0 1 * * * /oracle/backups/dev10g/scripts/exports/export_compress.sh

All was great untill May 4, when this script began to run every minute during the hour (21:00). Here is a log from /var/log/cron:

May 4 21:00:01 localhost crond[7267]: (oracle) CMD ((sqlplus hotback/hotback @/oracle/backups/bla-bla/scripts/hotback/daily_hotback.sql))
May 4 21:01:01 localhost crond[7278]: (oracle) CMD ((sqlplus hotback/hotback @/oracle/backups/bla-bla/scripts/hotback/daily_hotback.sql))
May 4 21:01:01 localhost crond[7280]: (root) CMD (run-parts /etc/cron.hourly)
May 4 21:02:01 localhost crond[7284]: (oracle) CMD ((sqlplus hotback/hotback @/oracle/backups/bla-bla/scripts/hotback/daily_hotback.sql))
May 4 21:03:01 localhost crond[7291]: (oracle) CMD ((sqlplus hotback/hotback @/oracle/backups/bla-bla/scripts/hotback/daily_hotback.sql))

and so on, all the way during the 9PM and at 22:00 it stops.
I'm a newbie in Unix and really don't understand, why this happens.

BTW, we have 4 boxes with the same job in cron, all of them look like:
0 21 * * * (sqlplus hotback/hotback @/bla-bla/hotback/daily_hotback.sql) (I mean, the first is "0" instead of * (asterics). Could it be the reason?)

As you may be see, this script makes hot backups from datafiles on DBs, and due to this recurring scripts, we have 60 processes, that try to make bakup. At the end, a system hungs, and hotbackups are not finished.

If you have any ideas, please, help me! I would really appreciate that!
Thank you forehand,
M.

It is the reason.

Hi reborg, thanks a lot for such fast replay.
So, all that I need, is only change * to "0"?
Sorry for naive questions, but this is important (it's a prod. DataBase).

The first five fields are:
minute (0-59)
hour (0-23)
day of the month(1-31)
month of the year (1-12)
day of the week (0-6 with 0 = Sunday)

  • 21 * * * (sqlplus hotback/hotback @/oracle/backups/bla-bla/scripts/hotback/daily_hotback.sql)
    means run the job every minute of every hour 21.

0 21 * * * (sqlplus hotback/hotback @/oracle/backups/bla-bla/scripts/hotback/daily_hotback.sql)
means run the job on the first minute of hour 21.

Yes this is the change you need. Although
5 21 * * * (sqlplus hotback/hotback @/oracle/backups/bla-bla/scripts/hotback/daily_hotback.sql)
or something like that might be just as good. You need to change that asterisk to some specific minute so it will run only once during hour 21.

Hello Perderabo.

Tons of thanks for you!
I put "0" instead of *.

Thank you all again!

Maria.