A des fins de test, j’ai un script python très simple qui crée un fichier texte, nommé avec la date / heure courante, ce qui me permet de savoir quand il a été exécuté:
#!/usr/bin/python from time import gmtime, strftime try: filename = strftime("%Y-%m-%d %H:%M:%S", gmtime()) f = open(filename+'.txt', 'w') f.write('HelloWorld') f.close() except StopIteration: print "An error has occurred.."
J’ai placé le fichier ici et il dispose des permissions complètes:
usr/share/pyshared/scripts/test_script.py
Lorsque je lance le script manuellement avec ce qui suit, le script s’exécute et crée mon fichier texte de test:
python ~/../../usr/share/pyshared/scripts/test_script.py
Dans mon fichier crontab, j’ai les éléments suivants qui ne s’exécutent pas (devraient être exécutés toutes les minutes à des fins de test).
* * * * * python ~/../../usr/share/pyshared/scripts/test_script.py
La première fois que j’expérimente avec crontab et assez nouveau pour linux, pardonnez-moi si j’ai raté quelque chose d’assez évident ici, merci d’avance.
Utilisez des chemins absolus dans crontab:
* * * * * /usr/bin/python /usr/share/pyshared/scripts/test_script.py
Indiquez également le chemin absolu dans votre script:
filename = "/home/MYUSER/"+strftime("%Y-%m-%d %H:%M:%S", gmtime()) f = open(filename+'.txt', 'w')