On occasion, you might need to schedule a task or bunch of tasks on a specific date and time through a program, which you may not be able to perform it personally. For instance, you want to send a bunch of emails to your customers on a specific date and you have some important thing to take care of on the same day which requires your personal presence. Sometimes, you may need to modify or update the databases on a specfic date of each month or run it as a background process without doint it manually wasting your valuable time. The situation is most common and many of us wonder how to tackle it by using automated systems or commands that can not only save our time & energy but performs the tasks without fail. There is one such utility which we can use on unix based operating systems where tasks can be scheduled using commands or shell scripts.
What is a cron job?
Many of the hosting companies allow their users to set the cron jobs defining particular tasks to repeat periodically at specified time intervals. In order to schedule a task using crontab, your website should be hosted on unix based web servers such as linux or ubantu but not on the windows servers. Most of the low end hosting types like shared & reseller have limitations on running the crons, but shared, VPS, dedicated etc has flexibility to run the tasks as often as required. The person scheduling the cron should be somewhat familiar with shell scripting which includes the command and the output or action. This configuration file is called “crontab” in which the timers and tasks that need to be executed are listed in order.
Creating cron jobs using web host
Every hosting company allows their users to add, edit or create cron jobs by using the user interface control panel called cpanel. The user must type the command that he/she wish the system to run and clearly specify in the settings the date, time and year at which the command should be executed. There is also an option to edit or correct the existing cron or delete if they want to remove and recreate it again. However, in some cases we may be running three to four cron jobs simultaneously which may collide if they take longer to run than the expected time. If one task is dependent on the other, we need to be extra cautious in defining the time and some tolerance should be given between them, so that they don’t overlap each other in functionality.
Benefits of using cron jobs:
- More control on the tasks as the user can specify the data & time in the command line as per the requirement
- Since it runs as a backend process you need not worry about to be physically there to take care of repeated scheduled tasks
- It is easy to assign the rights and permissions on files for specific users. Crons allow specific set of commands that restrict users to access the file or make changes beyond their permissible limits.
- Once assigned, cron jobs keep on running until the scheduled task is either edited or deleted to recreate the new one.
- Works better in organizations where the time and resources are very limited because it ensures higher productivity with minimal management.