Utilisation de tâches cron


Nous considérons que ce message donné parfois par les scripts et applications pour la mise en place de tâches cron : 'contact your server administrator' ou 'contactez votre administateur serveur' est digne des années 80 :). En effet, que ce soit le panneau d'administration cPanel ou un autre, ce genre de fonction élementaire a été rendu accessible aux utilisateurs finaux : 'juste faites-le', il suffit de lire les indications de base de cPanel et cet article si besoin...

Depuis votre cPanel, section Avancé / Tâches Cron :

Gestion de Cron par cPanel


Attention :
L'éxecution de cron à intervalle trop rapproché sans besoin/justification conduit à des bugs, et dépassement de ressources conduisant au mauvais fonctionnement de votre site web

Selon vos besoins et recommandations de l'éditeur, voici les 2 formats A et B en exemples :
A. scripts PHP fonctionnant en php interne
/usr/bin/php -f /home/votreusercpanel/public_html/votredossier/votre-sous-dossier/votrefichier.php >/dev/null 2>&1
ou
php -f /home/votreusercpanel/public_html/votredossier/votre-sous-dossier/votrefichier.php >/dev/null 2>&1
(Le '-f' flag dit à PHP d'éxécuter tel fichier)
(Lire : http://php.net/manual/fr/features.commandline.options.php )

Pour serveurs cPanel :
/usr/local/bin/php -f /home/votreusercpanel/public_html/votredossier/votre-sous-dossier/votrefichier.php >/dev/null 2>&1


B. scripts PHP fonctionnant en externe :

wget -q -O /dev/null "http://www.votredomaine.fr/votredossier/votre-sous-dossier/votrefichier.php" >/dev/null 2>&1
ou
/usr/bin/wget -q -O /dev/null "http://www.votredomaine.fr/votredossier/votre-sous-dossier/votrefichier.php" >/dev/null 2>&1
ou
curl -s "http://www.votredomaine.fr/votredossier/votre-sous-dossier/votrefichier.php" >/dev/null 2>&1

NB : 
1. L'ajout de ceci permet de désencombrer le serveur pour qu'il n'exécute pas à la même seconde tous les cron :
Sleep $ (expr $ RANDOM \% 30);
Exemple d'intégration, c'est à mettre au début du cron :
Sleep $ (expr $ RANDOM \% 30); /usr/bin/wget -q -O /dev/null "http://www.votredomaine.fr/votredossier/votre-sous-dossier/votrefichier.php" >/dev/null 2>&1
2. Evitez de mettre des crons avec les minutes à la valeur 0, et surtout diluez les minutes entre vos crons afin d'éviter un conflit applicatif local
3. Pour lmes crons wget, l'ajout de  -q -O /dev/null permet déviter d'écrire un fichier dans votre compte à chaque éxecution du cron
4. L'ajout de >/dev/null 2>&1 permet de stopper les mails envoyés à chaque éxecution


Scripts spécifiques et SHELL si les crons traditionnels ne fonctionnent pas

A. cron avec script sh
sh /home/votreusercpanel/public_html/votredossier/votre-sous-dossier/votrefichier.sh

B. Spécificité de certains scripts cron impliquant commandes shell et/ou shell_exec, nous sommes en environnement virtualisé avec isolation des comptes le système CageFS. Vous devez insérer ceci dans votre crontab par le shell :

MAILTO="user@votremail.com"
SHELL="/usr/local/cpanel/bin/jailshell"
PATH="/usr/local/bin/:/usr/bin:/bin"

Puis ajouter votre cron par cpanel simplement, exemple :
* * * * * php -f /home/votreusercpanel/votredomaine.com/cron.php >/dev/null 2>&1

NB : si besoin, vérifiez et adaptez bien les réglages php.ini par défaut dans votre cpanel, voir : disable_functions, lisez la doc de votre CMS/module ou contactez l'éditeur

Attention :
l'option -f peut ne pas convenir à certains scripts comme lorsqu'on optimise wordpress en désactivant wp-cron.php dans wordpress...

Désactiver wp-cron dans wordpress par ajout de ceci dans wp-config.php :
define('DISABLE_WP_CRON', true);

puis ajout du cron dans cpanel (exécution toutes les 10 minutes recommandée minimum, et remplacer par votre domaine) :
/usr/bin/wget -q -O /dev/null "https://www.votresiteweb.fr/wp-cron.php?doing_wp_cron"

Consultez aussi

Connexion distante bases de données MySQL

Nouvelle méthode depuis le 11 déc 2018 (Pour les offres Haute disponibilités, voir l'ancienne...

Peut-on personnaliser le fichier php.ini ?

Nous avons 2 types de serveurs : Cloudlinux-cPanel et cPanel, la méthode est différente...

Accès SSH par clé avec putty

Depuis juillet 2018, vous pouvez accéder au SSH par votre cPanel de manière directe et...

Ajouter des domaines supplémentaires/compagnons, sous-domaines, parqués/alias

Allez dans la section Domaines de votre cPanel, vous verrez les icônes respectives à cliquer au...

Vérification des ressources utilisées par cPanel

Vous pouvez régulièrement vérifier l'historique des ressources utilisées par votre votre compte...

Besoin d'autre suggestions