We use cookies
We use cookies to optimize our website. By continuing to browse the site, you agree to our use of cookies.
Control panel
  • Русский
  • Українська
  • English
  • UAH
  • USD
  • RUB
  • EUR
  • 0-800-307-307 Hotline
  • +38 (044) 392-74-33 Kiev
  • +38 (057) 728-39-00 Kharkiv
  • +38 (056) 794-38-31 Dnipro
  • +38 (032) 229-58-93 Lviv
  • +38 (048) 738-57-70 Odessa
  • +38(093) 170-15-42  Life
  • +38 (067) 400-88-44 Kievstar
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7 (499) 348-28-61 Moscow

2.11.10. Non-standard cron tasks

Within the framework of cron tasks, it is impossible to implement any non-standard interval or with an indication of waiting for the execution of another command. By itself, crontab can only use a schedule with an accuracy of the minute, and you cannot specify a certain number of seconds. Also, tasks cannot be launched in order of execution, that is, waiting for the previous task to finish and then launching the next one. To implement this, you can use useful bash features.

To run two commands sequentially, you must specify both commands in the task, separating them with the symbol ;... Such an indication will work as a sequence of commands like this:

command1 ; command2 ; ... ; commandn

The next command will execute in any case, even if the previous one returned an error.

If you need to check for an error or the successful execution of the previous command, then you can use the following divisors:

  • && - execute the next command only if the previous one was completed successfully.
  • || - execute the next command only if the previous NOT was successful and returned an error.

An example of use is as follows:

command1 ; command2 && command3 || command4

The commands will be executed in the following order and conditions: command1 and command2 will be executed anyway, but command3 will only be executed if command2 completed without errors. command4 will be executed only if when executing command3 an error will be returned.

Important points:

  • cron-tasks are not started at the very beginning of a minute, quite often a task can be launched in the first seconds of a minute or later, and therefore it is problematic to specify the exact start time.
  • Do not set too high a value for waiting, since the command execution time is limited, within the framework of shared hosting the maximum process execution time is 300 seconds (5 minutes), for business hosting this value is 4 hours.
  • It is strongly discouraged to use tasks with an extremely short start interval, as this is fraught with excessive consumption of server resources, and is also a violation terms of service p. 5.8.

As mentioned earlier, crontab does not have the ability to configure execution exactly to the second, and therefore you have to resort to various tricks, for example, specifying the sequential execution of several commands using the wait command. For example, the following command will run 30 seconds after it is executed:

sleep 30 ; command1

If you need to run two tasks at the beginning of a minute and at 30 seconds of the same minute, then you should add two tasks with the same interval, but specify one of them sleep 30 ; command1where command1 a task to be performed. In this case, the second task will be delayed by 30 seconds.