Comment exécuter scl enable rh-python36 dans crontab Linux

Comme scl enable rh-python36 crée un nouvel environnement virtuel pour Python, vous pouvez utiliser votre environnement Python 3.6 installé, mais cet environnement virtuel ne s’applique pas automatiquement lors de l’exécution dans une crontab.

Donc, pour utiliser Python 3.6 dans Linux crontab, vous devez exécuter vos fichiers python dans un nouvel environnement virtuel activé.

Mon fichier run.sh:

#!/bin/bash
now=`date`
echo "[$now]Running script now ..."
scl enable rh-python36 "cd /opt/wdir/ && pipenv run python main.py" >> /var/log/logrun.txt
echo "[$now]All done now" 

et ma crontab:

* 7 * * * /opt/wdir/run.sh > /var/log/logrun.txt 

Une autre méthode consiste à définir scl directement dans la crontab:

* 7 * * *  scl enable rh-python36 "cd /opt/wdir/ && pipenv run python main.py" > /var/log/logrun.txt 

Plus à propos Linux crontab here.

Happy working!

Related:  Comment installer, configurer et optimiser HAProxy sur Centos 7/6/5