IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Tache crontab utilisateur non logué


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut Tache crontab utilisateur non logué
    Bonjour,

    J'ai configuré une tache crontab

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    30 10 * * * /home/user/script.sh >/home/user/log_crontab45.log
    La tache fonctionne bien si je suis logué. Cependant, il ne se passe rien lorsque je suis déconnecté.

    Je ne vois pas trop pourquoi elle ne se lance pas.

    Je suis sous ubuntu server 12.04LTS

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 139
    Par défaut
    Lors de l'exécution d'une tache par crontab, le fichier .profile n'est pas exécuté; aucune des variables initialisées dans ce fichier de profil n'est donc renseignée.
    Tu dois initialiser les variables dont tu as besoin dans ton fichier de script (y compris le PATH, ou préciser le chemin d'accès de chaque commande que tu lances)
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Hello,

    Envoyer les erreurs dans ton log devrait t'aider à y voir plus clair.

    Pour cela edite à nouveau la crontab et ajoute ce qui est en gras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    30 10 * * * /home/user/script.sh >/home/user/log_crontab45.log 2>&1

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut
    Merci,

    j'ai passé PATH et SHELL dans le crontab sans succès, même avec une commande simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    30 14 * * * /bin/df > /home/user/df.log
    ??

    Mygalle1978 :
    J'ai testé cette solution sans résultat. Le fichier de log n'est même pas créé !?!

  5. #5
    Invité
    Invité(e)
    Par défaut
    Peux-tu vérifier dans /var/log/syslog si tu as des erreurs relatives à ta tâche cron?

  6. #6
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut
    Voila quelque chose issu de /var/syslog

    Jul 1 14:55:01 serveur CRON[9242]: (root) CMD (/home/user/script_reseaux.sh > /home/user/log_crontab.log 2>$1)
    Jul 1 14:55:01 serveur CRON[9241]: (CRON) info (No MTA installed, discarding output)
    Jul 1 14:57:57 serveur sudo: pam_ecryptfs: pam_sm_authenticate: /home/user is already mounted

    Merci

  7. #7
    Invité
    Invité(e)
    Par défaut
    2>$1)
    Ce n'est pas un $(dollar) qu'il faut mettre mais l'esperluette &

  8. #8
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut
    oups faute d'inattention,

    Mais du coup c'est pas mieux :

    Jul 1 15:26:01 serveur CRON[9968]: (root) CMD (/home/user/script_reseaux.sh > /home/user/log_crontab.log 2>&1)
    Voici le crontab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    SHELL=/bin/sh
    26 15 * * * /home/user/script_reseaux.sh > /home/user/log_crontab.log 2>&1

  9. #9
    Invité
    Invité(e)
    Par défaut
    Tu as un fichier log /home/user/log_crontab.log qui a été créé?

    Si oui, quel est sont contenu?

  10. #10
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut
    Tu as un fichier log /home/user/log_crontab.log qui a été créé?
    Non même pas. C'est bizarre quand même.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Peux-tu modifier ta tâche pour créer le fichier log dans le répertoire /tmp?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /home/user/script_reseaux.sh > /tmp/log_crontab.log 2>&1

  12. #12
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut
    ca avance, j'ai un fichier /tmp/log_crontab.log avec une erreur malheureusement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /bin/sh: 1: /home/user/script_reseaux.sh: not found
    Il n'a pas l'air de pouvoir accéder au répertoire /home/user/

  13. #13
    Invité
    Invité(e)
    Par défaut
    Salut,

    peux-tu spécifier le shell bash dans ton script => ajouter la ligne #!/bin/bash au début de ton script script_reseaux.sh

    Retirer également la ligne SHELL de la crontab.

  14. #14
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 731
    Par défaut
    Bonjour,

    le script est bien exécutable, n'est-ce pas ?

  15. #15
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 422
    Par défaut
    Bonjour,

    Tu n'arrives pas à avoir un fichier de log dans /home/user mais pas de souci dans /tmp

    Tu n'aurais pas oublié dans le chemin d'acces au fichier, le nom de l'utilisateur tout simplement ?

  16. #16
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut
    Bonjour,

    Merci pour vos messages.

    En placant le script dans un autre dossier et le log dans tmp, cela fonctionne. Cependant les fichiers de log restent vide (df > /tmp/df.log)

    Il doit en effet y avoir une incohérence au niveau de l'utilisateur. Pour specifier l'utilisateur, il faudrait que j’exécute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo crontab -u user -e ou crontab -e (si je suis logué avec user)
    Cependant, user n'a pas assez de droit pour exécuter certaines commandes du script. Cela veut dire que root ne peux pas exécuter un script stocké dans un dossier utilisateur ???

  17. #17
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 422
    Par défaut
    C'est fort possible, selon l'erreur que l'on voit dans ton syslog:
    Jul 1 14:57:57 serveur sudo: pam_ecryptfs: pam_sm_authenticate: /home/user is already mounted
    A priori, ton /home/user est un file system qui est monté automatiquement quand tu te logue et de plus il semble crypté...

  18. #18
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut
    Finalement les logs sont renseignés.

    Merci beaucoup pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/12/2006, 10h22
  2. Message erreur Type défini par l'utilisateur non défini
    Par Michel DELAVAL dans le forum Access
    Réponses: 2
    Dernier message: 27/06/2006, 17h37
  3. Réponses: 10
    Dernier message: 07/06/2006, 13h56
  4. fonction utilisateur non reconue par sql server 2000
    Par ouedmouss dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/09/2005, 08h46
  5. lancer serveur FB en tant qu'utilisateur non administrateur
    Par didier.cabale dans le forum Débuter
    Réponses: 1
    Dernier message: 01/03/2005, 19h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo