Aller au contenu

Cron


Sebastien Sct

Messages recommandés

Bonjour ,

je viens a vous car je rencontre un soucis pour lancer un script bash qui pointe vers une API ,j ai lancer pas mal de recherche sur Google mais problème c est que bien souvent les sujets remonte a 2011 voir 2016 ou se sont des scripts different enfin bref je tourne en rond 

en gros c est un script qui requiert HTTPIE ,problème le planificateur de tache apperement  ne reconnait pas http ,au départ mon scrypt ne se lançait pas via Terminal ,j ai donc installer PY3 plus tous les packages et la c est bon le script se lance via une connection SSH au Syno ,donc avant de rentrer dans une pataugeoire Cron crontab vim etc etc , j installe config file editor j édite Cron je met ma ligne 00 */2 * * * root /volume1/homes/MONNOM/Scripts/MONSCRIPT.sh mais rien ne se passe

donc ma question dans config file editor vaut mieux que je mette ma ligne dans "Crontab" ou dans Crontab-defaults" , 

En vous remerciant par avance 

Seb

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

On apprécie que les nouveaux membres se présentent avant de poser leurs questions, il y a une section dédiée à cela 🙂 

Pour ton problème, le planificateur remplace Cron, tout ce qui peut être fait par SSH peut être fait par le planificateur.
Es-tu sûr d'avoir choisi le bon utilisateur ?

Lien vers le commentaire
Partager sur d’autres sites

 pardon je file a la presentation et désolé pour la section je pensai être au bonne endroit 😞 😄 

bah a ce jour je t assure que le planificateur me renvoie des erreurs par rapport au scrypt qui  passe très bien en Ssh ,j ai beau choisir n importe qu elle utilisateur rien n y fait 

que je copie le scrypt directement dans le planificateur ou lui indique le chemin de celui ci c est toujours les memes messages d erreur "sh: http: command not found" je mets les lignes du scrypt au cas ou 

TOKEN=`http --ignore-stdin --form  POST https://api.fullup.be/auth/generate language=fr email=MAIL password=MDP | grep \"result\" | jq '.result.token' | cut -d '"' -f2`
TEMP=`http --ignore-stdin GET https://api.fullup.be/tanks/search 'Authorization:Bearer '$TOKEN | jq '.result[0].last_hist.temperature'`
 curl 'http://IDENTIFIANT:MDP@127.0.0.1:8084/json.htm?type=command&param=udevice&idx=245&svalue='$TEMP

merci pour ton aide 

je file me presenter

Lien vers le commentaire
Partager sur d’autres sites

Alors je suis intéressé de savoir de quoi tu parles, j'ai déjà cherché à l'occasion l'équivalent de Cron je n'ai pas trouvé. J'ai trouvé synocrond et crond, qui sont les démons et qui ne m'aident pas à définir des tâches.

J'en avais déduit que seul le GUI permettait de programmer des tâches, sans plus chercher que ça je t'avoue, ce n'était pas un besoin impérieux à ce moment-là.

Lien vers le commentaire
Partager sur d’autres sites

Je ne comprend pas le planificateur ,on lui demande de lancer une tache pas d interpreter ce qu il y a dedans ,surtout qu il me ramène un "état actuel :Normal (0)" ,il me ramène une erreur sur le Statut de la sonde parcontre quand je remplace http --ignore-stdin --form POST par curl POST   ,le retour est  ok update ok ,mais les valeurs reste a 0 ,y a t il un argument a rajouter ?

 

Lien vers le commentaire
Partager sur d’autres sites

Pour bien comprendre : si tu lances ton script manuellement en SSH, il fonctionne, et quand tu le lance via le planificateur de tache, il ne fonctionne pas ?

Si c'est ça le problème vient sans doute de la manière dont est écrit le script.

En effet quand tu te connectes en SSH, tu as automatiquement l'exécution du .profile qui peut venir initialiser des variables d'environnement (en particulier le path). Par contre, quand un script est lancé par le planificateur, il n'y a pas d'exécution du .profile. Donc des chemin qui peuvent être connus en ssh ne le sont pas via le planificateur.

Une règle a respecter quand on veut exécuter un script via cron, c'est soit d'alimenter les variable d’environnement en début de script, soit d'utiliser systématiquement des chemins absolus ...

Lien vers le commentaire
Partager sur d’autres sites

merci pour toutes ces precisions,mais root a tous les droits lui ? quand tu dis chemins absolu , c est dans crontab 0 */1 * * * root /usr/syno/bin/FullUp.sh -- run  ? c est ca ,

car la j en suis a des chmod des chown des redémarrages du nas a tout va des placements du script a tous les endroits des pages de forum ouvertes de tous les cotés  la tete en vrac 😄 et rien ne fonctionne 

pour l instant le seul moyen que j ai , est de lancer le script au démarrage du pc qui envoie tout cela a Domoticz ,c est un peu lourd mais bon 

réécrire le script je n ai pas assez de connaissance la dedans ca va finir par une explosion du NAS , j ai deja eu la chance qu une personne d un autre forum me le partage ,

mais juste une question est ce que la commande curl pourrait remplacer http ,car a la base certaines commande ne sont pas prise en charge par DSM (d après le support Synology) dont je pense le HTTP

en tous cas merci de votre aide

 

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.