Magento 2 : Cron not working as per scheduled time - cron

I have scheduled my cron in the crontab but it's not getting scheduled. I have checked in the table cron_schedule but no entry found. I'm setting it according to the server time in UTC format:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
<group id="default">
<job name="reminder_emails" instance="Vendor\Module\Cron\ReminderEmails" method="execute">
<schedule>10 9 * * *</schedule>
</job>
</group>
</config>
The cron get executed corrected to the expression like * * * * * and */5 * * * * but not any specific time. Please help me get the format correct.

What enviroment you use to dev (window, mac or linux). Please make sure you had config cron for magento 2. You can use command 'crontab -e' in linux to make sure cron havd config for magento.https://devdocs.magento.com/guides/v2.3/config-guide/cli/config-cli-subcommands-cron.html

I think the right format is :
<schedule>10 */9 * * *</schedule>
It means it will run every 9 hours at minute 10.
Example 00:10 , 9:10 ....

you can use this link to check your cron job timing format
Also, you can use command crontab -l to check cron configure on magento.
You can schedule your cron job using this command: php bin/magento cron:run --group="default"

Related

Created cron job to run every 2 mint

I have configured cron job but it's not working.
I wanted to run the myfile.sh script for every 2 mint and below are my configuration in crontab.
# m h dom mon dow comman
2 * * * * /home/ubuntu/myfile.sh
myfile.sh is executable and contains below lines of code
#!/bin/bash
mysqldump -u[user] -p[password] --single-transaction --routines --triggers --all-databases > /home/ubuntu/backup_db10.sql
Is there anywhere we need to add configure anything?
You're running the script at two minutes past every hour. As in 1:02, 2:02 and so on.
You can change it to something like
*/2 * * * * /home/ubuntu/myfile.sh
to run it every two minutes.
A bit more info can be found here.

Why does this cron job run every minute?

I ran a cron job as ec2 user, in AWS server.
I set the cron command, like this
*/5 * * * * ec2-user bash ./dailyMailSend.sh
in crontab -e file.
It was set to run after every 5 minutes. But it runs every minute. Don't know why ?
For Amazon Linux use "0/5" instead of "*/5". This expression means every 5th minute from 0 through 59.
Next, do not specify relative paths in your crontab. Use only absolute paths.

How the cron timing is working?

Suppose, current time is 11:42 and i have setup one cron file to run at every 5 minutes.
Then this file will run at which time 11:47 or 11:45?
So basically i am trying to understand that how the cron timing is work?
Edit : it was ran at 11:45, but i don't know the reason behind it
Cron Configuration :
*/5 * * * * wget -O /dev/null http://XXX/index.php?r=controller/action
As you know, cron will run jobs at a specific time.
A cron job will not use the time it was started, only the configuration matters. This means a cron job set to every 5 minutes (like your */5 * * * *) will only ever run at times ending with 0 or 5 (eg: 12:00, 12:05, 12:10), regardless of the time you run it. This makes sense because we want to schedule a job for a specific time.
If you really need a job to run every 5 minutes, with an offset (eg: 11:42, 11:47, 11:52) you will have to give a list in the configuration.
instead of (*/5 * * * *) you would need to use:
(2,7,12,...,57 * * * *), filling ... with all the other numbers.

Raspberry crontab script running

I'm trying to run a command by cron in Raspbian.
If I run ./sec_cam.sh, than my script runs, If I try to run it via crontab every 5 min, than nothing happens.
crontab -e shows me the followings:
*/5 * * * * ./sec_cam.sh
Did I configure the crontab wrong?
Thx in advance
scripts started from a cronjob are not setup with your usual environment, especially not with your current working directory (referenced by the . in ./sec_cam.sh). so to make this work you should specify a full path name like /home/user/sec_cam.sh

Cron Job Commands not working

I am new to cron jobs and have set up one in Plesk to execute every minute however I am not sure if the command is correct due to it not working.
curl http://www.yourdomain.com/twitter_cron.php
I am running on a Centos VPS - the problem is I am not sure if I need a specific root to curl.
sgeorge-mn:~ sgeorge$ which curl
/usr/bin/curl
You need to use full path in cron for curl; otherwise you need to have proper PATH variable specified in crontab
So for example:
* * * * * /usr/bin/curl http://www.yourdomain.com/twitter_cron.php

Resources