Bonjour,
j'ai un script (pg-retart.sh) qui marche normalement lors de son exécution manuelle.
Ce script comporte les 4 lignes suivantes :
#!/bin/bash
/usr/sbin/pg-stop.sh
/usr/sbin/pg-start.sh
/usr/sbin/pg-status.sh
mais lorsque je planifie l'exécution du script sur le crontab, le crontab lance le script à l'heure précisée mais rien ne se passe.
la ligne ajoutée sur le crontab :
35 13 * * * /usr/sbin/pg-restart.sh
Pouvez-vous m'aider pour ce problème.
Merci d'avance
# Gérer les logs ...
Posté par totof2000 . Évalué à 2. Dernière modification le 20 octobre 2019 à 17:24.
Pour voir ce qui se passse, il te faut aller voir les logs générées par cron. Si elles ne sont pas activées, il faut le faire. Ensuite tu auras certainement plus d'infos sur ce qui se passe.
Sinon tu peux tenter de rediriger les logs de tes scripts dans un fichier dédié. Mais sans logs on ne pourra pas vraiment t'aider (nous ne sommes pas devins).
[^] # Re: Gérer les logs ...
Posté par totof2000 . Évalué à 2.
Ah et j'ai oublié … Essaie de mettre un truc comme ça en cron pour rediriger la sortie d'erreur vers la sortie standard:
/usr/sbin/pg-restart.sh 2>&1
[^] # Re: Gérer les logs ...
Posté par totof2000 . Évalué à 2.
Si tu veux rediriger les logs de ton script :
/usr/sbin/pg-restart.sh >/chemin_vers_fichier_log.log 2>&1
Tu peux le rediriger vers /tmp pour le debug dans un premier temps et voir ensuite pour les envoyer vers un autre endroit (avec si besoin horodatage et gestion de logrotate).
# environnement de travail
Posté par NeoX . Évalué à 3.
quand tu lances le script a la main il s'execute avec l'environnement courant
mais pas avec cron
il faut parfois preciser cet environnement par un utilisateur ou des variables
[^] # Re: environnement de travail
Posté par Anonyme . Évalué à 2. Dernière modification le 20 octobre 2019 à 21:29.
parfois c'est assez pénible à faire, les script un peu lourd j'ai toujours du mal à les faire partir avec cron, parfois meme avec l'environnement ca ne passe pas, du coup je mets les liens en dur depuis la racine dans le scripts vers tous les fichiers et les programmes et cela passe mieux. :/
# pas d'extension dans noms de scripts cron
Posté par François GUÉRIN (Mastodon) . Évalué à -1.
[^] # Re: pas d'extension dans noms de scripts cron
Posté par AncalagonTotof . Évalué à 1.
Faux ! J'en ai plein en .sh ! Et ça fonctionne très bien !
Plutôt un problème d'environnement comme évoqué plus haut je pense.
# Problèmes de chemin ou variable d'environnement ?
Posté par alfafa . Évalué à 1.
Bonjour,
Tes scripts font peut-être référence à un chemin soit :
- non accessible pour l'utilisateur cron
- qui fait référence à une variable d'environnement style ~
A vérifier !
Alfafa
[^] # Re: Problèmes de chemin ou variable d'environnement ?
Posté par totof2000 . Évalué à 2.
D'ou l'intéret d'avoir des logs qui en diront plus.
[^] # Re: Problèmes de chemin ou variable d'environnement ?
Posté par AncalagonTotof . Évalué à 1.
Logiquement, l'utilisateur sous lequel se lancent les scripts (root ici ?) reçoit des mails si ces scripts écrivent sur la sortie standard (
stdio
, avececho
par exemple) ou d'erreur (stderr
, en cas de problème d'exécution).Est-ce que root a reçu des mails ?
[^] # Re: Problèmes de chemin ou variable d'environnement ?
Posté par totof2000 . Évalué à 2.
Ne sachant pas comment est configuré la machine, je n'ai pas suggéré cette piste. Mais en théorie, exécuter la commande mail ou mailx depuis root devrait effectivement donner des infos.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.