# Cron Jobs - what's the difference?

**URL:** <https://forum.mautic.org/t/cron-jobs-whats-the-difference/11177>\
**Category:** Product Support\
**Created:** [September 19, 2019, 9:00pm UTC](https://forum.mautic.org/t/cron-jobs-whats-the-difference/11177 "2019-09-19T21:00:36Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![virgilwashere](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/virgilwashere/32/554_2.png) [@virgilwashere](https://forum.mautic.org/u/virgilwashere)\
**Post date:** [September 30, 2019, 11:39pm UTC](https://forum.mautic.org/t/cron-jobs-whats-the-difference/11177/3 "2019-09-30T23:39:17Z")

</div>

This thread was listed in _[The Unofficial Mautic Newsletter](https://innotiom.com/mautic-newsletter/)_, so I thought I’d extend it some more.

# Mautic Cron jobs

> [@](#):
>
> From: [Understanding Cron Jobs - A Mautic Minute - Mautic](https://www.mautic.org/resources/understanding-cron-jobs/)  
> [dbhurley](https://www.mautic.org/resources/understanding-cron-jobs/):
> 
> > Do you have your Mautic forms, landing pages and campaign emails ready to go but nothing is happening? If you’re using the **self-hosted** version of Mautic, you need to check your CRON jobs.

metadata tag: #Product Support

📋 The minimum list of commands you need to run every 🕙 10 or 15 minutes is:

```
mautic:segments:update
mautic:campaigns:trigger  
mautic:campaigns:update

```

## Self-hosted Mautic cron jobs

These are the commands I run, for every deployed Ⓜ instance.

> ℹ **Note**
> 
> - scheduling and URL triggers are controlled by a 🔁 CI/CD application
> - URL interface comes from [`commands.php`](https://github.com/virgilwashere/mautic-cron-commands#cron-jobs-) in the [mautic-cron-commands](https://github.com/virgilwashere/mautic-cron-commands) repository on GitHub.

metadata tag: #3rd Party Addons

> **cronjob summary**
>
> ### My cron jobs
> 
> These are the commands I run, for every deployed Ⓜ instance.
> 
> ### 🕒 Commands to run every 15 minutes
> 
> > `*/15 * * * *`
> 
> ### 📜 SEGMENTS
> 
> #### Update segment membership for contacts
> 
> > `mautic:segments:update --batch-limit=500`
> 
> ### 🚞 CAMPAIGNS
> 
> #### Add contacts to campaigns
> 
> > `mautic:campaigns:update`
> 
> #### Execute campaign decisions and events
> 
> > `mautic:campaigns:trigger`
> 
> ### 📧 EMAIL
> 
> #### Send the scheduled broadcast messages
> 
> - these emails are not part of a campaign and may have a date / time to start sending.
> 
> > mautic:broadcasts:send
> 
> #### Send queued messages
> 
> > 💡 **ProTip**
> > 
> > When a _marketing_ campaign email is triggered, or a broadcast (_segment_) email is sent, _and_ a contact has a **defined frequency rule** , email can still be queued.
> 
> > `mautic:messages:send`
> 
> #### Process mailer queue
> 
> > ✖ ~~mautic:emails:send~~
> 
> - 🧙 My email is configured to 📧_Send immediately_  
> `Mautic is not set to queue email.`
> 
> #### Download email and perform bounce management
> 
> > ✖ ~~mautic:emails:fetch~~
> 
> - 🧙 My bounce management is configured for AWS SES (using AWS SNS)  
> Do not need mailbox monitoring.
> 
> ### ⚙ INTEGRATIONS
> 
> #### Do things with a CRM
> 
> > ~~`mautic:integration:fetchleads --integration=INTEGRATION`~~  
> > ~~`mautic:integration:pushleadactivity --integration=INTEGRATION`~~
> 
> - 🧙 Not integrated with a CRM
> 
> ### 🔧 WEBHOOKS
> 
> #### Process webhooks
> 
> > `mautic:webhooks:process`
> 
> ### 🕸 SOCIAL MEDIA
> 
> #### Find tweets about #mautibot
> 
> > `mautic:social:monitoring`
> 
> ### 👥 CONTACTS
> 
> #### Import CSV files in the background
> 
> > ~~`mautic:import --no-interaction`~~
> 
> #### _Custom Import_ plugin
> 
> - Import **multiple** contact CSV files in the background
> - metadata tag: #3rd Party Addons
> 
> > `mautic:import:parallel --no-interaction`
> 
> #### _Do Not Contact Extras_ plugin
> 
> - import Do Not Contact lists
> - metadata tag: #3rd Party Addons
> 
> > `mautic:dnc:import --no-interaction`
> 
> ## 📅 Commands to run daily
> 
> > Runs between midnight and 3 am  
> > `@daily`
> 
> ### 📋 MAINTENANCE
> 
> #### Remove log entries, IP data, user notifications, visit history from anonymous leads
> 
> > `mautic:maintenance:cleanup --days-old=365 --no-interaction`
> 
> #### Remove stale user notifications
> 
> > `mautic:notifications:purge --no-interaction`
> 
> ### 📜 REPORTS
> 
> #### Generate and send scheduled reports
> 
> > `mautic:reports:scheduler`
> 
> ## 📅 Commands to run monthly
> 
> > Runs between midnight and 3 am, on the first Wednesday of the month  
> > 🧙 I’m ten hours ahead of UTC (`TZ=Australia/Brisbane`), so run on Wednesday
> 
> ### 🧷 METADATA
> 
> #### 🔍 GeoIP data update
> 
> _MaxMind_ updates their database the first Tuesday of the month
> 
> > `mautic:iplookup:download`
> 
> ### 🐬 DATABASE SCHEMA
> 
> #### View the status of a schema mappings
> 
> > `doctrine:migrations:status`
> 
> #### Check the schema mappings
> 
> > `doctrine:schema:validate`
> 
> #### Report SQL statements to update database schema to current metadata
> 
> > `doctrine:schema:update --dump-sql`
> 
> ### 👥 CONTACTS
> 
> #### 🔡 Visitor IP data
> 
> Delete IP addresses that are not used in any other database table
> 
> > `mautic:unusedip:delete`
> 
> #### Remove duplicates
> 
> > `mautic:contacts:deduplicate`
> 
> * * *
> 
> `end of cronjobs`

## References

Check out these posts for more information:

- [Mautic docs - Cron Jobs](https://www.mautic.org/docs/en/setup/cron_jobs.html)
- [Mautic Cron Jobs for Dummies & Marketers too](https://mauteam.org/mautic/mautic-admins/mautic-cron-jobs-for-dummies-marketers-too/)
- [Mautic cron jobs: Which ones to use?](https://mauteam.org/mautic/mautic-admins/mautic-cron-jobs-which-ones-to-use/)
- [Post-Install Mautic Setup](https://autoize.com/post-installation-mautic-setup/)
- [Mautic cron jobs setup: A Complete Guide](https://powertic.com/mautic-cron-jobs-setup-complete-guide/)

# 🔎 `console` commands in more detail

This is output from the ⌨ command-line tool **`console`**.

> 💡 **ProTip**
> 
> Actually I use a 🐧 _shell alias_ that executes the `console` command as the same user as the webserver.  
> Add this to your login profile: (usually `$HOME/.bashrc`)
> 
> - **`alias console='sudo -Hu www-data php app/console'`**

> **Mautic console commands**
>
> ```
> Mautic version 2.15.2 - app/prod
> cache:clear Clears the cache
> cache:warmup Warms up an empty cache
> mautic:assets:generate Combines and minifies asset files from each bundle into single production files
> mautic:broadcasts:send Process contacts pending to receive a channel broadcast.
> mautic:campaigns:execute Execute specific scheduled events.
> mautic:campaigns:messagequeue Process sending of messages queue.
> mautic:campaigns:messages Process sending of messages queue.
> mautic:campaigns:rebuild Rebuild campaigns based on contact segments.
> mautic:campaigns:trigger Trigger timed events for published campaigns.
> mautic:campaigns:update Rebuild campaigns based on contact segments.
> mautic:campaigns:validate Validate if a contact has been inactive for a decision and execute events if so.
> mautic:citrix:sync Synchronizes registrant information from Citrix products
> mautic:contacts:deduplicate Merge contacts based on same unique identifiers
> mautic:dnc:import Imports custom dnc data to Mautic
> mautic:email:fetch Fetch and process monitored email.
> mautic:emails:fetch Fetch and process monitored email.
> mautic:emails:send Processes SwiftMails mail queue
> mautic:import Imports data to Mautic
> mautic:import:directory Import CSV files from directory
> mautic:import:parallel Parallel import for Mautic
> mautic:install:data Installs Mautic with sample data
> mautic:integration:fetchleads Fetch leads from integration.
> mautic:integration:pipedrive:fetch Pulls the data from Pipedrive and sends it to Mautic
> mautic:integration:pipedrive:push Pushes the data from Mautic to Pipedrive
> mautic:integration:pushactivity Push lead activity to integration.
> mautic:integration:pushleadactivity Push lead activity to integration.
> mautic:integration:synccontacts Fetch leads from integration.
> mautic:iplookup:download Fetch remote datastores for IP lookup services that leverage local lookups
> mautic:maintenance:cleanup Updates the Mautic application
> mautic:messages:send Process sending of messages queue.
> mautic:migrations:generate Generate a blank migration class.
> mautic:plugins:install Installs, updates, enable and/or disable plugins.
> mautic:plugins:reload Installs, updates, enable and/or disable plugins.
> mautic:plugins:update Installs, updates, enable and/or disable plugins.
> mautic:queue:process Process queues
> mautic:remove:tags Remove tags from contacts
> mautic:reports:scheduler Processes scheduler for reports export
> mautic:segments:check-builders Compare output of query builders for given segments
> mautic:segments:rebuild Update contacts in smart segments based on new contact data.
> mautic:segments:update Update contacts in smart segments based on new contact data.
> mautic:social:monitoring Looks at the records of monitors and iterates through them.
> mautic:theme:json-config Converts theme config to JSON from PHP
> mautic:transifex:pull Fetches translations for Mautic from Transifex
> mautic:transifex:push Pushes Mautic translation resources to Transifex
> mautic:translation:createconfig Create config.php files for translations
> mautic:translation:debug Displays translation messages informations
> mautic:unusedip:delete Deletes IP addresses that are not used in any other database table
> mautic:update:apply Updates the Mautic application
> mautic:update:find Fetches updates for Mautic
> mautic:webhooks:process Process queued webhook payloads
> 
> ```

> 💡 **ProTip**
> 
> When running these commands interactively ⌨ , you can shorten them to **`console m:s:u`** for segment update and **`console m:c:t`** for campaign trigger.  
> **`console c:c`** works for `cache:clear` too.

## aliases

Notice that some of the commands have the same description?

🔍 Let’s look at the _usage_ information for the campaign update command:

```
$ console mautic:campaigns:update --help
Usage:
  mautic:campaigns:rebuild [options]
  mautic:campaigns:update
Options:
...
Help:
  Rebuild campaigns based on contact segments.

```

**`mautic:campaigns:rebuild`** and **`mautic:campaigns:update`** are the same command.

> **`update`** is just an _alias_ for **`rebuild`**.

### Ⓜ Mautic command aliases

Here is the list of Ⓜ Mautic commands ⌨ with their aliases:

> I’ve used the 🧙 to mark my suggestions on which command or alias I prefer to use for consistency.

- `mautic:messages:send` 🧙
  - `mautic:campaigns:messages`
  - `mautic:campaigns:messagequeue`

- `mautic:campaigns:rebuild`
  - `mautic:campaigns:update` 🧙

- `mautic:email:fetch`
  - `mautic:emails:fetch` 🧙

- `mautic:emails:send` 🧙
  - internally calls `swiftmailer:spool:send`

- `mautic:integration:fetchleads`
  - `mautic:integration:synccontacts` 🧙

- `mautic:integration:pushleadactivity`
  - `mautic:integration:pushactivity` 🧙

- `mautic:plugins:reload`
  - `mautic:plugins:install`
  - `mautic:plugins:update` 🧙

- `mautic:segments:update` 🧙
  - `mautic:segments:rebuild`

- `mautic:social:monitoring` 🧙
  - internally calls: `social:monitor:twitter:hashtags`
  - internally calls: `social:monitor:twitter:mentions`

### Symfony-framework aliases

Other commands from the _Symfony framework_ with aliases:

- `debug:config`
  - `config:debug`

- `debug:container`
  - `container:debug`

- `debug:router`
  - `router:debug`

- `debug:swiftmailer`
  - `swiftmailer:debug`

- `debug:translation`
  - `translation:debug`

- `debug:twig`
  - `twig:debug`

- `lint:yaml`
  - `yaml:lint`

# Complete list

> ℹ **Note**
> 
> This includes commands from
> 
> - Ⓜ Mautic standard `/app/bundles` (eg `mautic:segments:update`)
> - Ⓜ Mautic standard `/plugins` (eg `mautic:citrix:sync`)
> - community `/plugins` (eg `mautic:integration:*`)
> - GitHub Pull Requests (eg `mautic:campaign:summarize`).
> - Symfony framework `/vendor` (eg `doctrine:*:*`)
> 
> metadata tag: #3rd Party Addons

Available commands:

```
$ console list
Mautic version 2.15.2 - app/prod

```

> **Usage:**
>
> ```
> Usage:
> command [options] [arguments]
> 
> Options:
> -h, --help Display this help message
> -q, --quiet Do not output any message
> -V, --version Display this application version
> --ansi Force ANSI output
> --no-ansi Disable ANSI output
> -n, --no-interaction Do not ask any interactive question
> -s, --shell Launch the shell.
> --process-isolation Launch commands from shell as a separate process.
> -e, --env=ENV The Environment name. [default: "prod"]
> --no-debug Switches off debug mode.
> -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
> 
> ```

> **Available commands:**
>
> ```
> Available commands:
> help Displays help for a command
> list Lists commands
> assets
> assets:install Installs bundles web assets under a public web directory
> bazinga
> bazinga:oauth-server:clean Clean expired tokens
> cache
> cache:clear Clears the cache
> cache:warmup Warms up an empty cache
> config
> config:debug Dumps the current configuration for an extension
> config:dump-reference Dumps the default configuration for an extension
> container
> container:debug Displays current services for an application
> debug
> debug:config Dumps the current configuration for an extension
> debug:container Displays current services for an application
> debug:event-dispatcher Displays configured listeners for an application
> debug:router Displays current routes for an application
> debug:swiftmailer Displays current mailers for an application
> debug:translation Displays translation messages information
> debug:twig Shows a list of twig functions, filters, globals and tests
> doctrine
> doctrine:cache:clear Flush a given cache
> doctrine:cache:clear-collection-region Clear a second-level cache collection region.
> doctrine:cache:clear-entity-region Clear a second-level cache entity region.
> doctrine:cache:clear-metadata Clears all metadata cache for an entity manager
> doctrine:cache:clear-query Clears all query cache for an entity manager
> doctrine:cache:clear-query-region Clear a second-level cache query region.
> doctrine:cache:clear-result Clears result cache for an entity manager
> doctrine:cache:contains Check if a cache entry exists
> doctrine:cache:delete Delete a cache entry
> doctrine:cache:flush Flush a given cache
> doctrine:cache:stats Get stats on a given cache provider
> doctrine:database:create Creates the configured database
> doctrine:database:drop Drops the configured database
> doctrine:database:import Import SQL file(s) directly to Database.
> doctrine:ensure-production-settings Verify that Doctrine is properly configured for a production environment.
> doctrine:fixtures:load Load data fixtures to your database.
> doctrine:generate:entities Generates entity classes and method stubs from your mapping information
> doctrine:mapping:convert Convert mapping information between supported formats.
> doctrine:mapping:import Imports mapping information from an existing database
> doctrine:mapping:info
> doctrine:migrations:diff Generate a migration by comparing your current database to your mapping information.
> doctrine:migrations:execute Execute a single migration version up or down manually.
> doctrine:migrations:generate Generate a blank migration class.
> doctrine:migrations:latest Outputs the latest version number
> doctrine:migrations:migrate Execute a migration to a specified version or the latest available version.
> doctrine:migrations:status View the status of a set of migrations.
> doctrine:migrations:version Manually add and delete migration versions from the version table.
> doctrine:query:dql Executes arbitrary DQL directly from the command line.
> doctrine:query:sql Executes arbitrary SQL directly from the command line.
> doctrine:schema:create Executes (or dumps) the SQL needed to generate the database schema
> doctrine:schema:drop Executes (or dumps) the SQL needed to drop the current database schema
> doctrine:schema:update Executes (or dumps) the SQL needed to update the database schema to match the current mapping metadata.
> doctrine:schema:validate Validate the mapping files.
> fos
> fos:oauth-server:clean Clean expired tokens
> generate
> generate:doctrine:entities Generates entity classes and method stubs from your mapping information
> leezy
> leezy:pheanstalk:delete-job Delete the specified job if it exists.
> leezy:pheanstalk:flush-tube Delete all job in a specific tube.
> leezy:pheanstalk:kick Kick buried jobs from a specific tube.
> leezy:pheanstalk:kick-job Kick the specified job if it has a valid buried status, regardless of what tube it is in.
> leezy:pheanstalk:list-tube The names of all tubes on the server.
> leezy:pheanstalk:next-ready Gives the next ready job from a specified tube.
> leezy:pheanstalk:pause-tube Temporarily prevent jobs being reserved from the given tube.
> leezy:pheanstalk:peek Inspect a job in the system, regardless of what tube it is in.
> leezy:pheanstalk:peek-tube Take a peek at the first job in a tube, ready or burried.
> leezy:pheanstalk:put Puts a job on the queue.
> leezy:pheanstalk:stats Gives statistical information about the beanstalkd system as a whole.
> leezy:pheanstalk:stats-job Gives statistical information about the specified job if it exists.
> leezy:pheanstalk:stats-tube Gives statistical information about a specified tube, or about all tubes.
> lint
> lint:twig Lints a template and outputs encountered errors
> lint:yaml Lints a file and outputs encountered errors
> mautic
> mautic:assets:generate Combines and minifies asset files from each bundle into single production files
> mautic:broadcasts:send Process contacts pending to receive a channel broadcast.
> mautic:campaigns:execute Execute specific scheduled events.
> mautic:campaigns:messagequeue Process sending of messages queue.
> mautic:campaigns:messages Process sending of messages queue.
> mautic:campaigns:rebuild Rebuild campaigns based on contact segments.
> mautic:campaigns:summarize Builds historical campaign summary statistics if they do not already exist.
> mautic:campaigns:trigger Trigger timed events for published campaigns.
> mautic:campaigns:update Rebuild campaigns based on contact segments.
> mautic:campaigns:validate Validate if a contact has been inactive for a decision and execute events if so.
> mautic:citrix:sync Synchronizes registrant information from Citrix products
> mautic:contacts:deduplicate Merge contacts based on same unique identifiers
> mautic:dashboard:warm Warm the dashboard widget caches.
> mautic:dnc:import Imports custom dnc data to Mautic
> mautic:email:fetch Fetch and process monitored email.
> mautic:emails:fetch Fetch and process monitored email.
> mautic:emails:send Processes SwiftMails mail queue
> mautic:import Imports data to Mautic
> mautic:import:directory Import CSV files from directory
> mautic:import:parallel Parallel import for Mautic
> mautic:install:data Installs Mautic with sample data
> mautic:integration:enhancer:enhance Runs one or more enhancers on leads.
> mautic:integration:enhancer:installcspcdata Imports postal code, city, state, county, latitude, longitude and country
> mautic:integration:enhancer:installgendernames Imports the SSA historic top 1000 names for genders
> mautic:integration:enhancer:trustedform Claims Trustedform certificates offline.
> mautic:integration:enhancer:updatecorrectaddress Installs the latest data files available from Expirian
> mautic:integration:fetchleads Fetch leads from integration.
> mautic:integration:pipedrive:fetch Pulls the data from Pipedrive and sends it to Mautic
> mautic:integration:pipedrive:push Pushes the data from Mautic to Pipedrive
> mautic:integration:pushactivity Push lead activity to integration.
> mautic:integration:pushleadactivity Push lead activity to integration.
> mautic:integration:synccontacts Fetch leads from integration.
> mautic:iplookup:download Fetch remote datastores for IP lookup services that leverage local lookups
> mautic:maintenance:cleanup Updates the Mautic application
> mautic:messages:send Process sending of messages queue.
> mautic:migrations:generate Generate a blank migration class.
> mautic:notifications:purge Purge stale users notfications.
> mautic:plugins:install Installs, updates, enable and/or disable plugins.
> mautic:plugins:reload Installs, updates, enable and/or disable plugins.
> mautic:plugins:update Installs, updates, enable and/or disable plugins.
> mautic:queue:process Process queues
> mautic:remove:tags Remove tags from contacts
> mautic:reports:scheduler Processes scheduler for reports export
> mautic:segments:check-builders Compare output of query builders for given segments
> mautic:segments:rebuild Update contacts in smart segments based on new contact data.
> mautic:segments:update Update contacts in smart segments based on new contact data.
> mautic:social:monitoring Looks at the records of monitors and iterates through them.
> mautic:theme:json-config Converts theme config to JSON from PHP
> mautic:transifex:pull Fetches translations for Mautic from Transifex
> mautic:transifex:push Pushes Mautic translation resources to Transifex
> mautic:translation:createconfig Create config.php files for translations
> mautic:translation:debug Displays translation messages informations
> mautic:unusedip:delete Deletes IP addresses that are not used in any other database table
> mautic:update:apply Updates the Mautic application
> mautic:update:find Fetches updates for Mautic
> mautic:webhooks:process Process queued webhook payloads
> oneup
> oneup:uploader:clear-chunks Clear chunks according to the max-age you defined in your configuration.
> oneup:uploader:clear-orphans Clear orphaned uploads according to the max-age you defined in your configuration.
> orm
> orm:convert:mapping Convert mapping information between supported formats.
> rabbitmq
> rabbitmq:anon-consumer Executes an anonymous consumer
> rabbitmq:batch:consumer Executes a Batch Consumer
> rabbitmq:consumer Executes a consumer
> rabbitmq:delete Delete a consumers queue
> rabbitmq:dynamic-consumer Executes context-aware consumer
> rabbitmq:multiple-consumer Executes a consumer that uses multiple queues
> rabbitmq:purge Purge a consumers queue
> rabbitmq:rpc-server Start an RPC server
> rabbitmq:setup-fabric Sets up the Rabbit MQ fabric
> rabbitmq:stdin-producer Executes a producer that reads data from STDIN
> router
> router:debug Displays current routes for an application
> router:dump-apache [DEPRECATED] Dumps all routes as Apache rewrite rules
> router:match Helps debug routes by simulating a path info match
> security
> security:encode-password Encodes a password.
> server
> server:run Runs PHP built-in web server
> server:start Starts PHP built-in web server in the background
> server:status Outputs the status of the built-in web server for the given address
> server:stop Stops PHPs built-in web server that was started with the server:start command
> social
> social:monitor:twitter:hashtags Looks at our monitoring records and finds hashtags
> social:monitor:twitter:mentions Searches for mentioned tweets
> swiftmailer
> swiftmailer:debug Displays current mailers for an application
> swiftmailer:email:send Send simple email message
> swiftmailer:spool:send Sends emails from the spool
> translation
> translation:debug Displays translation messages information
> translation:update Updates the translation file
> twig
> twig:debug Shows a list of twig functions, filters, globals and tests
> yaml
> yaml:lint Lints a file and outputs encountered errors
> 
> ```

I hope this is useful to someone.

Virgil  
🇦🇺

---

_[View the full topic](https://forum.mautic.org/t/cron-jobs-whats-the-difference/11177)._
