Problème avec crontab

Ici vous trouverez comment modifier les fichiers de configuration, mais aussi, pourquoi pas des applis comme apache, vsftp, samba et autres...

Modérateur : Francois

Ferois
Messages : 33
Enregistré le : jeu. 16 mars 2017 09:08

Problème avec crontab

Message par Ferois » sam. 16 sept. 2017 11:47

Bonjour,

Avec ‘sudo crontab -e' j'ai ajouté deux lignes :
0 8 * * * /home/alarme/ras_journalier.py > /dev/null
***/15 * * * * /home/alarme/ventil.py > /dev/null

La première fonctionne parfaitement, mais pas la seconde !
J'ai alors remplacé :
> /dev/null
par :
>> /home/pi/journal.txt 2>&1
et j'obtiens en réponse :
/bin/sh: 1: /home/alarme/ventil.py: not found

Bien sûr les deux programmes sont présents dans le même registre et ont les même droits.

Pouvez-vous m'expliquer ?
Merci d'avance ! :

guillaume9344
Raspinaute
Messages : 622
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: Problème avec crontab

Message par guillaume9344 » sam. 16 sept. 2017 17:07

Bonjour, je crois qu'il y a un peu trop d'étoile dans la deuxième commande :

Code : Tout sélectionner

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  user command to be executed
de plus /15 ne doit pastre reconnu comme horaire.
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

Ferois
Messages : 33
Enregistré le : jeu. 16 mars 2017 09:08

Re: Problème avec crontab

Message par Ferois » sam. 16 sept. 2017 18:42

Oups!
C'est bien :
*/15 * * * * /home/alarme/ventil.py > /dev/null
avec 5 étoiles.
Le */15 est parfaitement reconnu et me sort bien "/bin/sh: 1: /home/alarme/ventil.py: not found" tous les quarts d'heure !

destroyedlolo
Raspinaute
Messages : 1136
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Problème avec crontab

Message par destroyedlolo » sam. 16 sept. 2017 19:16

Salut,

Est-ce que l'utilisateur a bien acces à ton fichier ? que dit

Code : Tout sélectionner

ls -l /home/alarme/ventil.py
Quel est l'interpréteur de ton fichier .py ? Est-il lui aussi accessible ?

Code : Tout sélectionner

head 1 /home/alarme/ventil.py
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

destroyedlolo
Raspinaute
Messages : 1136
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Problème avec crontab

Message par destroyedlolo » sam. 16 sept. 2017 19:19

Salut,

Est-ce que le fichier est bien accessible à ton user ? Que donne

Code : Tout sélectionner

ls -l /home/alarme/ventil.py
Quel est l'interpréteur utilisé et est-il accessible ?

Code : Tout sélectionner

head -1 /home/alarme/ventil.py
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Ferois
Messages : 33
Enregistré le : jeu. 16 mars 2017 09:08

Re: Problème avec crontab

Message par Ferois » sam. 16 sept. 2017 19:43

Merci à tous !
A la lecture du message de Fred (télémaintenance) j'ai ajouté "python", et là, miracle, ça marche !
Mais pourquoi la première ligne, sans python marche aussi ???

Korhm
Raspinaute
Messages : 218
Enregistré le : ven. 19 sept. 2014 08:13
Localisation : Val de Marne

Re: Problème avec crontab

Message par Korhm » dim. 17 sept. 2017 12:40

Pour réponse à "pourquoi ca marche pour la 1ère ligne", regardes les indices laissés par destroyedlolo juste au dessus, et regarde du côté de "Shell bang"
En gros, le mot "Python" que tu mets devant le nom du script, en général ça se met plutôt en toute première ligne du script. Par exemple

Code : Tout sélectionner

#!/bin/python
Pour indiquer à ton Shell quel interpréter utiliser.

Ferois
Messages : 33
Enregistré le : jeu. 16 mars 2017 09:08

Re: Problème avec crontab

Message par Ferois » lun. 18 sept. 2017 13:57

Korhm a écrit :en général ça se met plutôt en toute première ligne du script. Par exemple
Bien d'accord avec toi, la première ligne des deux programmes est :

Code : Tout sélectionner

#!/usr/bin/python
"python" renvoyant à "python2.7" dans le même dossier.

Avatar du membre
zeb
Raspinaute
Messages : 261
Enregistré le : ven. 19 sept. 2014 11:04

Re: Problème avec crontab

Message par zeb » mer. 20 sept. 2017 11:51

plop,

Ah, un problème UNIX classique !
le crond de Ferois a écrit :

Code : Tout sélectionner

/bin/sh: 1: /home/alarme/ventil.py: not found
Hum, ça ressemble à un problème d'exécution.

Première chose à faire, lancer le programme directement dans un shell.
On devrait avoir les mêmes symptômes.

Vérifier :
  1. Les droits d'exécution

    Code : Tout sélectionner

    $> chmod +x /home/alarme/ventil.py
  2. Les droits des différents acteurs, user (propriétaire), exécuteur (quel cron, user ou root ?), etc.
  3. Le hashbang

    Code : Tout sélectionner

    #!/usr/bin/python
  4. L'encodage du fichier. Un grand classique, c'est d'avoir un caractère ^M (0x13) en fin de hashbang quand on a écrit le programme sous Windows. Pour s'en convaincre :

    Code : Tout sélectionner

    $> head -1 /home/alarme/ventil.py | cat -vte
  5. Ça semble ne pas être le cas, mais souvent les différences de fonctionnement entre un lancement à la main et un lancement par cron viennent de l'environnement. L'utilisateur utilise le bash ou le kornshell avec ses variables personnelles, et cron utilise le bourne shell (sh) sans fioriture.
Dans mon panier : rpi1A+ : »:: »:: | rpi1B : »:: »:: | rpi1B+ : »:: »:: | rpi2B : »:: »:: | rpi3B : »:: »:: | rpi0 : »::

Ferois
Messages : 33
Enregistré le : jeu. 16 mars 2017 09:08

Re: Problème avec crontab

Message par Ferois » jeu. 21 sept. 2017 14:11

Putain de line feed !
zeb a écrit : lancer le programme directement dans un shell
Je l'ai lancé dans la console et là j'obtiens :

Code : Tout sélectionner

/home/alarme/ventil.py^M : mauvais interpréteur : aucun fichier ...
Sous mc, et en hexa j'ai remplacé 0A par 00 et c'est tout bon !
Toujours sous mc, on voit le ^M avec Modif (f4) mais avec Voir (f3) on voit rien :lol:

Verrouillé

Retourner vers « Les commandes Linux »