There are three steps to schedule index cronjobs
- In store -> Configuration
- Through shell
shell crontab will run magento cron for every 1 minute, it will check you
Store->Config setting, and after that it will go to the
crontab.xml to check cron scheduling.
So if you want to run using update and save, then you will need to schedule cron(Shell) for every 1 minute, and also 1 minute in configuration.
You don't need to worry about crontab.xml because it has the best scheduling in default according to Magento default settings.
Now check in store -> Configuration
Store -> Configuration -> Advanced -> System
in Cron (Scheduled Tasks) check Cron configuration options for group: index and verify if General Scheduling Every is set to 1
After that, you will need to check cron scheduling on shell
crontab -e (for ubuntu).
Cron scheduling should be like this:
* * * * * /usr/bin/php7.1 /PATH_TO_YOUR_MAGENTO/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /PATH_TO_YOUR_MAGENTO/var/log/magent$
* * * * * /usr/bin/php7.1 /PATH_TO_YOUR_MAGENTO/update/cron.php >> /PATH_TO_YOUR_MAGENTO/var/log/update.cron.log
* * * * * /usr/bin/php7.1 /PATH_TO_YOUR_MAGENTO/bin/magento setup:cron:run >> /PATH_TO_YOUR_MAGENTO/var/log/setup.cron.log
Note: Path should be set according to your project
That should fix your issue.