Chat with us, powered by LiveChat

This website uses cookies

Our website, platform and/or any sub domains use cookies to understand how you use our services, and to improve both your experience and our marketing relevance.

Our Magento Customers Get 1-Click Hosting and 0.37ms Load Time. Get FREE $20 Credit with Promo Code 'BOOSTMAG.' Join Now!

Configure And Run Cron Job In Magento 2

Updated on February 1, 2016

4 Min Read
Reading Time: 4 minutes

Magento 2 comes with many awesome features. Magento 2 Cron job is one of the most stunning features. Cron helps Magento 2 store owners to setup commands which will run systematically at a set time and date. In Magento 2, Cron job runs scheduled tasks, reindexing, generating emails, generating newsletters, sitemaps and more. Basically, the cron executes internal Magento cronjob manager and manages which cron jobs are executed and when.

Magento 2 Cron Job

Cron is a vital part of Magento. Magento 2 Cron job configuration is highly important because many Magento features are based on scheduled activities, possible only via cron jobs. Here’s a list of some of them:

  • Reindexing
  • Private sales (Magento Enterprise Edition)
  • Automatic update of currency rates
  • Magento emails
  • Customers alerts and notifications
  • Generating Google sitemaps
  • Catalog price rules
  • Newsletters

Run cron as the Magento file system owner. Do not run cron as root. Running cron as the web server user is not a good practice. It is also required to mention that in UNIX systems, scheduled tasks depend on crontab.

Cloudways Magento Hosting For Developers

First Step of Magento 2 Cron Configuration:

Before configuration on Magento 2 cron, it is required to perform some important tasks.

  • Login to the Magento 2 server as a master user, who has permissions to write to the Magento 2 file system. If you use the bash shell, you can use the following syntax to switch to the Magento file system owner and use following command:
su <Magento 2 file system owner> -s /bin/bash -c <command>
  • For Running Magento 2 commands from any directory add <You Magento 2 install dir>/bin to your system path. Bash shell example for CentOS:
export PATH=$PATH:/var/www/html/magento2/bin

There are other ways to run commands as well:

In case of

cd <your Magento install dir>/bin

You can run this command as

./magento <your command name>


php <your Magento 2 install dir>/bin/magento <command name>

Where <your Magento 2 install dir> is a web servers docroot sub directory.

Run cron in the background For Magento 2 Cron Configuration:

Here we discuss how to run all Magento 2 cron jobs every minute, which is the recommended for both Magento CE and EE edition.

Requirements For Running Cron in  background

Magento cron is run with different configuration. General cron job that reindexes, generates emails and sitemap usually runs as the PHP command line users php.ini and two others cron  jobs are used by the component manager and system upgrade utilities. These commands must be used in the web servers php.ini

If you don’t have experienced with running cron. You can use all commands with the web server’s configuration.

Web Server Configuration

Find out web server configuration, run phpinfo.php file in your web browser and search the loaded configuration file option.

PHP command-line

After web server configuration, PHP command-line configuration is required. Use these commands for command-line configuration:

php -i | grep php.ini

As result you get something like this:

Configuration File (php.ini) Path => /etc/php5/cli

Loaded Configuration File => /etc/php5/cli/php.ini

Creating Magento 2 cron job

To create a Magento 2 cron job, you must login as a user with root privileges (as I mentioned before) and run following command:

crontab -u <Magento 2 file system owner user name> -e

“For example” crontab -u magento_cloudways -e

Use the following commands, but you may need to choose a text editor first.

*/1 * * * * php -c <ini-file-path> <your Magento install dir>/bin/magento cron:run

*/1 * * * * php -c <ini-file-path> <your Magento install dir>/update/cron.php

*/1 * * * * php -c <ini-file-path> <your Magento install dir>/bin/magento setup:cron:run

First command reindexes indexers, sends automated e-mails and generates the sitemap. Basically this command is associated with the PHP command line .ini file. Other two commands are used for the Component Manager and System Upgrade e.g. if the PHP is located in /user/bin you installed Magento 2 in /var/www/html/magento2 and all commands used the server’s php.ini.


*/1 * * * * /usr/bin/php -c /etc/php5/apache2/php.ini /var/www/magento2/bin/magento cron:run > /var/www/magento2/var/log/magento.cron.log&

*/1 * * * * /usr/bin/php -c /etc/php5/apache2/php.ini /var/www/magento2/update/cron.php > /var/www/magento2/var/log/update.cron.log&

*/1 * * * * /usr/bin/php -c /etc/php5/apache2/php.ini /var/www/magento2/bin/magento setup:cron:run > /var/www/magento2/var/log/setup.cron.log&

Now save your all changes to the crontab.

Configure Magento 2 Cron Groups For Custom Module

If you wish to implement cron for a custom module Magento, it allows you to use the default group or different group. For configuration of cron group for your module, create <your magento2 component base dir>/<vendorname>/module-<name>/etc/crontab.xml with this following code:


       <group id="<group_name>">

       <job name="<job_name>" instance="<classpath>" method="<method>">




  • <group_name> is your cron group name. You can run only cron for single group at a time.
  • <job_name> is unique ID those used for identify the cron job.
  • <classpath> the identify name for itself.
  • <method> indicates a method those call in classpath.
  • <time> is schedule in cron format.

Run Cron Using Command Line

The following command allow you to run cron in Magento 2 using command line:

magento cron:run [--group="<cron group name>"]

The –group defines the cron group to run, except the option in case of the default group.

Note: You may run cron for one group at the same time. You must run cron twice (First time for discover tasks to run and for second time run the tasks themselves)

Magento Hosting On Managed Cloud Hosting Platform

Quality Magento Hosting

For online store owners, it is a big blessing to not get tangled with complex technical issues. Why not focus on your core strength, selling? This is why Magento 2 cron job is an easy to manage task on Cloudways Magento Hosting Platform. Try it by starting your free trial today. If you run into any issue, you can contact the 24/7 Live Chat Support Team who will help you with any issue.

Share your opinion in the comment section. COMMENT NOW

Fayyaz Khattak

Fayyaz is a Magento Community Manager at Cloudways - A Managed Magento Hosting Platform. His objective is to learn & share about PHP & Magento Development in Community. Fayyaz is a food lover and enjoys driving. You can email him at

Double Your Conversions with Magento Managed Cloud

Free SSL, Free Migration, Optimized Stack, Built-in Varnished Cache and much more.

Get Our Newsletter
Be the first to get the latest updates and tutorials.