Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2181 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Résolu] Pb avec une commande inconnue quand elle est lancée par cron

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Pb avec une commande inconnue quand elle est lancée par cron

n°1361628
otobox
Maison fondée en 2005
Posté le 29-07-2014 à 12:02:15  profilanswer
 

Salut à tous,
 
j'ai fais un petit script qui prend une photo avec une webcam puis la copie dans un répertoire sur mon compte OneDrive avec la commande onedrive-cli. Ce script fonctionne très bien quand il est lancé manuellement mais quand je le lance avec cron, j'ai une erreur d'exécution, commande introuvable...
 
Le script trpic.sh :


    #!/bin/bash
    #Prendre une photo avec fswebcam :
    echo "Capture photo"
    fswebcam -q -c ~/.fswebcam.conf
    echo "Fin capture"
    #Transfert du dernier fichier cam (cam_yymmdd-HHMMSS.jpg) vers OneDrive
    fic=`find . -name "cam_*.jpg" -cmin -1`
    if [ -n "$fic" ]
    then
      echo "Fichier trouvé : $fic"
      echo "Transfert vers OneDrive"
      onedrive-cli put "$fic" Documents/Raspi/
      echo "Transfert terminé"
    else
      echo "Aucun fichier trouvé. Transfert annulé"
    fi
    exit 0


 
la ligne dans crontab :

*/2 * * * * /home/pi/cam/trpic.sh >> /home/pi/cam/test.log #Test : script lancé toutes les 2 minutes


 
et le message d'erreur :

/home/pi/cam/trpic.sh: ligne18: onedrive-cli : commande introuvable


 
Auriez vous un début d'explication de pourquoi ça fonctionne manuellement et pas avec cron ? Je lance le script manuellement sans être su. Mais le cron ?
 
Merci

Message cité 1 fois
Message édité par otobox le 29-07-2014 à 12:27:12

---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
mood
Publicité
Posté le 29-07-2014 à 12:02:15  profilanswer
 

n°1361629
Fork Bomb
Obsédé textuel
Posté le 29-07-2014 à 12:09:07  profilanswer
 

otobox a écrit :

Salut à tous,
 
j'ai fais un petit script qui prend une photo avec une webcam puis la copie dans un répertoire sur mon compte OneDrive avec la commande onedrive-cli. Ce script fonctionne très bien quand il est lancé manuellement mais quand je le lance avec cron, j'ai une erreur d'exécution, commande introuvable...
 
Le script trpic.sh :


    #!/bin/bash
    #Prendre une photo avec fswebcam :
    echo "Capture photo"
    fswebcam -q -c ~/.fswebcam.conf
    echo "Fin capture"
    #Transfert du dernier fichier cam (cam_yymmdd-HHMMSS.jpg) vers OneDrive
    fic=`find . -name "cam_*.jpg" -cmin -1`
    if [ -n "$fic" ]
    then
      echo "Fichier trouvé : $fic"
      echo "Transfert vers OneDrive"
      onedrive-cli put "$fic" Documents/Raspi/
      echo "Transfert terminé"
    else
      echo "Aucun fichier trouvé. Transfert annulé"
    fi
    exit 0


 
la ligne dans crontab :

*/2 * * * * /home/pi/cam/trpic.sh >> /home/pi/cam/test.log #Test : script lancé toutes les 2 minutes


 
et le message d'erreur :

/home/pi/cam/trpic.sh: ligne18: onedrive-cli : commande introuvable


 
Auriez vous un début d'explication de pourquoi ça fonctionne manuellement et pas avec cron ? Je lance le script manuellement sans être su. Mais le cron ?
 
Merci


Si la commande n’est pas trouvée, donne le PATH complet, soit :

Code :
  1. $(which fswebcam)


soit

Code :
  1. /usr/bin/fswebcam


Je suppose que ça règlera ton problème.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1361632
otobox
Maison fondée en 2005
Posté le 29-07-2014 à 12:26:34  profilanswer
 

ce n'est pas fswebcam qui déconne, ça fonctionne bien, c'est onedrive. J'ai donc fais un which onedrive-cli, cela m'a indiqué le chemin /usr/local/bin/onedrive-cli.
 
J'ai modifié mon script et rajouté le chemin complet et bingo :) ça fonctionne !
 
Merci pour cette aide rapide et efficace :jap:


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1361654
Profil sup​primé
Posté le 29-07-2014 à 18:18:03  answer
 

salut,
 
`find' est inutile : renseigne le nom du fichier de sortie dans la commande `fswebcam', et réutilise ce nom.
de plus, si la capture a échouée, je suppose que `fswebcam' retourne un code d'erreur supérieur à zéro

Code :
  1. #!/bin/bash
  2. PATH=$PATH:/usr/bin
  3. nomFichier=fichier_$(date +%s)
  4. if fswebcam -q -c ~/.fswebcam.conf "$nomFichier"
  5. then
  6.    onedrive-cli put "$fic" Documents/Raspi/
  7. else
  8.    echo "Aucun fichier trouvé. Transfert annulé"
  9.    exit 1
  10. fi

n°1361656
otobox
Maison fondée en 2005
Posté le 29-07-2014 à 19:02:44  profilanswer
 


Salut,
 
oui, je sais, mon script est loin d'être parfait. Je débute !
 
Ce que tu dis m'intéresse car récupérer le nom du fichier de sortie est quelque chose que j'ai essayé de faire en vain, tout comme essayer d'intercepter un message d'erreur qui se produit une fois sur 20 en moyenne (Corrupt jpg data).
 
Comment tu fais pour renseigner le nom du fichier de sortie de fswebcam ? En faisant un echo > ?
C'est le fichier .fswebcam.conf qui donne le nom du fichier de sortie. Est-il possible de mettre des variables dans un tel fichier ?


pi@raspberrypi ~ $ cat .fswebcam.conf
resolution 640x480
jpeg 95
delay 1
font sans:10
title "Yo!"
timestamp "%d-%m-%Y %H:%M:%S"
save ./cam_%y%m%d-%H%M%S.jpg


En fait, ce que je crains, c'est que si pour une raison ou une autre, le temps de faire un save ./cam_%y%m%d-%H%M%S.jpg et un echo > ./cam_%y%m%d-%H%M%S.jpg
il se passe une seconde et que le nom du fichier enregistré et le nom renvoyé soit différent...
Je n'ai pas testé en mettant une variable dans ce fichier conf, mais dans la mesure où ce n'est pas un fichier exécutable, ça m'étonnerait que ça fonctionne...
 
 
 
 
En ce qui concerne le message signalant un fichier jpg corrompu, j'ai essayé d'intercepter ce message afin de refaire une capture, mais j'y ai passé une bonne partie de mon après-midi hier sans succès
 
Que je fasse :
fswebcam -q -c ~/.fswebcam.conf > Erreur.log
ou
fswebcam  -c ~/.fswebcam.conf > Erreur.log #-q enlevé = pas de mode quiet
le log renvoie les opérations faits par la webcam mais pas le message d'erreur qui s'affiche à l'écran mais pas dans le log.
 
Mais c'est une autre histoire.


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1361658
Profil sup​primé
Posté le 29-07-2014 à 19:59:02  answer
 

pourquoi utiliser un fichier de conf externe ?
tout cela peut se configurer avec des options, il me semble.
tu en fais une fonction :

Code :
  1. capture() {
  2.    fswebcam nomFichier_$(date +%format) \
  3.                    -q \
  4.                    -<taille> 640X480 \
  5.                    -autresOptions
  6. }
  7. if capture
  8. ...


Message édité par Profil supprimé le 30-07-2014 à 02:56:59
n°1361660
otobox
Maison fondée en 2005
Posté le 29-07-2014 à 23:27:10  profilanswer
 

Ah ben oui sans doute, mais tu parles à un débutant là ! J'ai bidouillé une solution pour que ça marche, mais je sais qu'elle n'est pas élégante !
 
Je vais essayer de faire quelque chose qui marche et je poste ma solution à partir de ce que tu as commencé ;)
 
Merci pour ton aide et les pistes :jap: . C'est comme ça qu'on apprend :)


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Résolu] Pb avec une commande inconnue quand elle est lancée par cron

 

Sujets relatifs
Problème de carte SATA en PCI sous DebianInstallation Gummi et utilisation de ModernCV : problème de polices
CRON : Executer une page php en CRONproblème sur mon serveur tacacs+
Commande sed sous HPUX[RSYNC] Problème répertoire et fichier exclusion
Bash dans cron ?Débutant sur Linux : problème avec lancement de Gparted [Résolu]
[Résolu]Problème réception LDAP/Postfix/Dovecot 
Plus de sujets relatifs à : [Résolu] Pb avec une commande inconnue quand elle est lancée par cron


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR